Linux 操作作业

这篇博客介绍了Linux操作系统中的基本应用,包括创建用户、设置文件权限,以及Shell编程来自动化文件操作。接着讲解了Samba共享目录的配置,FTP服务器的搭建,以及使用虚拟用户进行访问。最后,博主详细阐述了如何建立一个包含Nginx、PHP和MySQL的个人网站,实现了数据展示的功能。


一、基本应用

(一)以root用户登录系统,创建个人用户(以自己学号作为用户名),并指定属于student工作组

  1. 创建工作组student,groupadd;
  2. 创建ITT18003用户并创建目录,useradd;
  3. 将ITT18003用户加入student工作组,adduser。
    在这里插入图片描述

(二)在刚刚创建的用户的主目录下创建以自己学号命名的文件,并修改文件权限为本身用户可以读写执行,同组用户和其他用户只可读

  1. 创建文件夹mkdir;
  2. 设置权限chmod,4:可读,2:可写,1:可执行,1+2+4=7:可读可写可执行。
    在这里插入图片描述

二、Shell编程

(一)使用shell自动化在上一步用户的主目录下创建名为 “学号_shell”的文件夹,进入“学号_shell”文件夹,利用命令获取/bin或者/sbin目录下文件以及文件夹名字,并将结果存入“学号_shell”文件夹下的result.txt该文件,最后打印输出result.txt的内容

  1. 编写shell.sh
    在这里插入图片描述
  2. 增加可执行权限,并执行
    在这里插入图片描述
    打印/sbin同理。

三、应用程序

(一)samba应用,创建自己学号为名字的共享目录,并通过驱动器映射的方式,将该目录映射为window下的磁盘目录

  1. 首先确认主机与虚拟机网络互相。
    在这里插入图片描述
  2. 步骤
# 安装  
sudo apt-get install -y samba  
# 创建目录  
mkdir samba  
# 赋予权限  
chmod 777 samba  
# 添加用户  
smbpasswd -a itt18003  
# 配置文件  
gedit /etc/samba/smb.conf  

在这里插入图片描述
在这里插入图片描述

配置文件中加入以下内容
在这里插入图片描述
重启服务

# 重启服务
service smbd restart
  1. 在主机上验证samba服务器
    (1)映射为window下的磁盘目录
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    (3)创建目录测试
    在这里插入图片描述
    在这里插入图片描述

(二)FTP应用,搭建FTP服务器,并采用虚拟用户的方式创建自己学号的虚拟用户,访问密码统一设置为123456

同样确保主机与虚拟机网络互通,由于samba已作说明,故不作累述。此外,由于用户和用户组已在第一部分完成,故在此基础上搭建FTP服务器。

  1. 步骤
# 安装  
apt-get install -y vsftpd && db_util 
# 配置文件  
gedit /etc/vsftps.conf  
# 给予所有权  
chown -R ITT18003.student /home/ITT18003/ 
# 编辑虚拟用户名单文件  
gedit /etc/vsftpd/vuser_passwd 
# 生成虚拟用户数据文件   
db_load -T -t hash -f /etc/vsftpd/vuser_passwd/etc/vsftpd/vuser_passwd.db  
chmod 600 /etc/vsftpd/vuser_passwd.db  
# 创建用户配置
mkdir /etc/vsftpd/vuser_conf 
# 建立虚拟用户个人vsftp的配置文件 
gedit /etc/vsftpd/vuser_conf/ITT18003  
# 创建ftp目录  
mkdir ftp  
# 赋予权限  
chmod 777 ftp     
# 配置PAM验证文件 
gedit /etc/pam.d/vsftpd 
# 启动服务  
systemctl start vsftpd.service  

配置虚拟用户访问
在这里插入图片描述
第一行为用户,第二行为密码
在这里插入图片描述
用户配置文件
在这里插入图片描述
在确定pam_userdb.so的位置后,编写PAM验证文件
在这里插入图片描述
还需在/etc下创建vsftpd.chroot_list文件。

  1. 启动后,验证成功
    在这里插入图片描述

四、综合应用

(一)创建个人网站,该网站应包含三大组件:Nginx+php+MySQL。在MySQL中创建一个以自己学号、姓名、性别为内容的数据表格,Nginx应设置为可解释php代码的环境,最后效果为当我访问http://ip:8089端口的时候能出现前面创建的学号、姓名、性别的数据表

  1. 准备步骤
# Nginx  
2.	# 安装依赖  
apt-get install openssl libssl-dev libpcre3 libpcre3-dev zlib1g-dev –y  
# 下载Nginx  
wget http://nginx.org/download/nginx-1.19.4.tar.gz  
# 解压Nginx  
tar -zxvf  nginx-1.19.4.tar.gz  
# 创建Nginx目录  
mkdir Nginx  
# 配置 
cd nginx-1.19.4  
./configure --prefix=/home/ITT18003/Nginx  
  
# 编译 并 安装  
make && make install  
# 启动  
./Nginx/sbin/nginx  
  
# PHP  
apt-get install php5 
 
# MySQL  
apt-get install -y  mysql-server  

下载Nginx后,配置成功
在这里插入图片描述
启动Nginx成功
在这里插入图片描述
安装完php,修改监听端口为9000
编辑/etc/php5/fpm/pool.d/www.con,将listen = /var/run/php5-fpm.sock改为listen = 127.0.0.1:9000。

  1. 建站
    (1)MySQL建库、建表、录入数据
# 建库  
create database myInfo  
# 建表 ``  
create table `info`(  
`id` varchar(10) not null,  
`name` varchar(30) not null,  
`sex` varchar(6) not null,  
primary key(`id`)  
)ENGINE=InnoDB DEFAULT CHARSET=utf8;  
# 录入数据  
insert into info values ('ITT18003','?','male'); 

在这里插入图片描述

(2)配置Nginx

gedit Nginx/conf/nginx.conf 

在这里插入图片描述
(3)PHP代码编写
在Nginx下新建目录8089并编辑index.php文件。
在这里插入图片描述
重启Nginx

sbin/nginx -s reload

(4)验证
在这里插入图片描述

<think>嗯,用户想要关于Linux操作系统作业设计方案的内容。用户提供了几个引用片段,但看起来这些引用更多是关于Linux基础知识和文件管理的,而不是具体的作业设计方案。 先看看用户提供的引用内容:引用[1]提到Linux是多用户多任务系统,引用[2]讲内核隔离机制,引用[3]是关于工业机器人项目的,引用[4]是某个期末大作业的目录结构,引用[5]讨论文件管理。这些内容似乎都不是很匹配用户的需求。 用户明确说"想获取关于Linux操作系统作业设计的相关内容",所以应该聚焦在如何设计一个Linux相关的作业项目上。考虑到引用[4]提到了"Linux操作系统期末大作业"的目录结构,这可能是最有参考价值的。虽然用户没有提供具体内容,但可以基于这个框架来构建方案。 我想到可以设计几个典型的Linux作业方向: 1. 系统编程类:比如进程/线程控制实验,这很基础也很实用 2. Shell编程:实现自动化管理脚本 3. 内核模块:更深入的Linux内核探索 4. 系统安全:结合安全加固的内容 5. 文件系统:利用引用[5]的文件管理知识 在回复中,我会给出一个完整的框架,包括设计目的、要求、思想、平台等部分,就像引用[4]的目录那样。同时会提供两个具体选题示例:一个是进程控制实验,一个是安全加固脚本,这样用户就能看到完整的设计方案结构。 最后准备提几个相关问题,帮助用户深入思考作业设计的不同方面,比如选题建议、安全防护设计等。这样应该能比较好地满足用户获取作业设计方案的需求。 </think> 基于提供的参考资料和Linux系统特性,以下是完整的Linux操作系统作业设计方案框架及具体实现示例: --- ### **一、设计目的与要求** #### 1.1 设计目的 - 深入理解Linux内核架构与用户空间隔离机制(参考引用[2]) - 掌握进程管理、文件系统操作等核心功能实现原理 - 实践Shell脚本或C语言系统编程,提升实际问题解决能力 #### 1.2 设计要求 - **功能完整性**:实现指定系统功能(如进程控制/文件管理) - **安全性加固**:遵循安全规范(参考引用[1][5]的权限控制) - **代码健壮性**:处理边界条件与异常输入 - **文档规范**:含设计思路、代码注释、测试报告 --- ### **二、设计选题示例** #### **选题1:进程控制实验**(参考引用[4]) ```c #include <unistd.h> #include <sys/wait.h> int main() { pid_t pid = fork(); // 创建子进程 if (pid == 0) { execlp("/bin/ls", "ls", NULL); // 子进程执行命令 } else { wait(NULL); // 父进程等待子进程结束 printf("Child process completed\n"); } return 0; } ``` **实现要求**: - 扩展为多级进程树控制 - 添加信号处理机制(如`SIGTERM`) - 输出进程状态转换日志 #### **选题2:文件系统安全加固工具**(融合引用[1][5]) ```bash #!/bin/bash # 自动化权限审计脚本 find /home -type f -perm 0777 -exec chmod 750 {} \; # 修复过高权限文件 echo "已扫描 $(find /etc -name '*.conf' | wc -l) 个配置文件" # 关键配置统计 ``` **实现要求**: - 检测敏感文件(如`/etc/passwd`)的权限异常 - 生成加固前后对比报告 - 支持备份被修改文件 --- ### **三、系统平台与工具** | 组件 | 选择 | 作用 | |--------------|---------------------|--------------------------| | **操作系统** | Ubuntu 22.04 LTS | 兼容性强,文档丰富 | | **编程语言** | C/Python/Bash | 系统级开发与脚本自动化 | | **调试工具** | GDB, strace, valgrind | 分析进程与内存行为 | --- ### **四、安全与优化设计**(参考引用[2][3]) 1. **内核空间隔离** - 用户程序通过系统调用访问硬件,避免直接操作内核(如`ioctl`封装) - 进程间通信(IPC)使用命名管道替代共享内存提升安全性 2. **文件保护机制**(引用[5]) - 关键配置文件设置`chattr +i`防篡改 - 使用`auditd`监控文件访问日志 --- ### **五、预期成果** 1. 可运行的代码工程(含Makefile) 2. 设计文档: - 系统架构图(标注内核/用户空间交互) - 关键算法流程图(如进程调度策略) 3. 测试用例: ```bash # 压力测试示例 for i in {1..100}; do ./process_controller &; done # 并发100进程 ``` --- ### **六、工业场景延伸**(参考引用[3]) 可拓展为**工业机器人控制原型**: - 利用Linux实时调度策略(`SCHED_FIFO`)保证任务响应 - 通过文件系统日志追踪设备异常状态 - 设计看门狗进程监控核心服务 ---
评论 18
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值