【用户与进程】
文章目录
- 一、实验目的
- 二、实验环境
- 三、实验内容与实现
- 1. 创建用户登录脚本模板
- 2. 设置用户默认文件权限
- 3. 修改用户默认属性
- 4. 设计用户登录ASCII图案
- 5. 编写自动下载Shell脚本
- 四、总结
一、实验目的
学习用户管理和进程管理
二、实验环境
- 虚拟机软件:VMWare
- 操作系统:Linux
三、实验内容与实现
1. 创建用户登录脚本模板
首先需要创建一个用户登录脚本模板,命名为/etc/skel-net22
,并在其中添加用户须知文件。
# 创建模板目录
mkdir /etc/skel-net22# 创建用户须知文件
echo "欢迎使用系统,请注意遵守网络安全规定。" > /etc/skel-net22/网安22用户须知# 创建用户(以姓名拼音首字母为例,假设用户名为hyy)
useradd -k /etc/skel-net22 hyy# 切换到用户家目录检查文件
su - hyy
ls ~
2. 设置用户默认文件权限
设置用户默认创建文件的权限为610(即-rw–x-----),并验证设置是否生效。
# 编辑用户环境配置文件
echo "umask 067" >> ~/.bashrc# 使配置生效
source ~/.bashrc# 创建测试文件
touch test_file# 检查文件权限
ls -l test_file
3. 修改用户默认属性
修改用户的家目录和默认shell,并验证修改效果。
# 修改用户属性
usermod -d /home/20xxxxx007 -s /bin/csh hyy# 查看用户信息
id hyy# 恢复默认设置
usermod -d /home/hyy -s /bin/bash hyy
4. 设计用户登录ASCII图案
设计一个包含多种颜色和背景的ASCII欢迎图案,增强用户体验。
# 创建登录欢迎文件
nano ~/.bashrc# 添加以下内容(示例图案)
echo -e "\e[1;31;40m _ _ _ \e[0m"
echo -e "\e[1;32;40m | \ | | ___| |_ __ _ ___ \e[0m"
echo -e "\e[1;33;40m | \| |/ _ \ __/ _\` |/ _ \e[0m"
echo -e "\e[1;34;40m | |\ | __/ || (_| | __/\e[0m"
echo -e "\e[1;35;40m |_| \_|\___|\__\__,_|\___|\e[0m"
echo -e "\e[1;36;40m \e[0m"
echo -e "\e[1;37;40m 欢迎,$(whoami)!当前时间:$(date)\e[0m"
5. 编写自动下载Shell脚本
编写一个支持前台和后台下载的脚本,使用-d参数控制下载模式。
#!/bin/bash# 自动下载脚本
USAGE="Usage: $0 [-d] URL"# 检查是否提供URL参数
if [ $# -lt 1 ]; thenecho $USAGEexit 1
fi# 处理选项参数
BACKGROUND=0
while getopts "d" opt; docase $opt ind)BACKGROUND=1;;\?)echo $USAGEexit 1;;esac
done# 获取URL参数
shift $((OPTIND-1))
URL=$1# 下载函数
download_file() {FILENAME=$(basename $URL)echo "开始下载: $URL"wget -c $URL -O $FILENAMEecho "下载完成: $FILENAME"
}# 根据选项决定下载方式
if [ $BACKGROUND -eq 1 ]; thenecho "后台下载已启动,可安全注销。"nohup download_file > download.log 2>&1 &disown
elsedownload_file
fi
四、总结
- 遇到的问题
最开始提示用户无法创建,没有权限。通过查询getenforce发现它enforcing。
查阅资料,提示:如果输出是 Enforcing,这可能会影响权限。如果 SELinux 在攻击模式,可以临时将其设为 Permissive 模式以测试是否是 SELinux 导致的问题。在root中输入
经过排查,发现是SELinux的强制模式(Enforcing)阻止了用户创建操作。通过临时禁用SELinux的强制模式,成功解决了权限问题。后续可根据实际需求,通过修改/etc/selinux/config
文件永久调整SELinux配置。
通过本次实验,我掌握了Linux系统中用户管理和进程控制的核心技能。
实验中遇到的SELinux权限问题让我深刻认识到Linux系统安全机制的重要性。在实际生产环境中,应谨慎配置SELinux,确保系统安全性的同时不影响正常操作。
此外,通过编写自动下载脚本,我学习了Shell脚本编程的基础知识,包括参数解析、后台进程管理和错误处理等。这些技能对日常系统管理工作非常实用。
总体而言,本次实验不仅加深了我对Linux系统原理的理解,也提升了我的实际操作能力和问题解决能力。