答案:
https://laowangall.oss-cn-beijing.aliyuncs.com/studentall.pdf
实验学时:2
实验类型:设计
实验要求:实践CentOS Linux上的 Shell 基本编程、用户和组群管理、磁盘分区和文件系统管理、软件包管理、权限设置和管理,从而能够熟悉CentOS Linux的常用功能以便对其进行管理。
一 . 实验目的
1.掌握Bash Shell的基本编程
2.掌握用户和组群管理
二.实验内容
尽量在64位CentOS操作系统上实现以下操作。假定当前的shell具有所需的权限。
- 依次循环遍历从1到100的整数(包括1和100),针对上述每一个整数index,在/tmp/目录里建立一个对应的文件叫做new_file<index>,比如new_file100,且该文件new_file100的内容为100这个数字的字符串形式,如果有任何多余的字符均为不合格(比如换行符 ‘\n’)。
- 用ls的长格式列出/etc目录下与账户和群组有关的4个文件的文件权限并按字典顺序排序
- 筛选出通过$1给定的账户名在/etc/passwd、/etc/shadow两个文件里的条目并对结果按字典顺序排序输出
- 筛选出通过$1给定的组群名在/etc/group、/etc/gshadow两个文件里的条目并对结果按字典顺序排序输出
- 在系统上建立如下两个组:rnd,itoperation,必须保持组名的大小写形式
- 在系统上建立如下5个账户(建立账户时全部用小写字母):Adam、Bob、Calvin、David、Edward,并把rnd作为附加组(supplementary group)赋予Adam、Bob、Edward,把itoperation作为附加组赋予Calvin、David:
- 把Adam和Edward的shell变更为/usr/bin/sh。
- [TODO] 要求所有的上述5个账户都需要在上一次密码修改之后至少10天才能再次修改密码、在上一次修改密码之后的第60天必须进行密码修改并提前10天开始进行警告。
- 从位置参数读入5个作为密码的字符串,按照Adam、Bob、Calvin、David、Edward 的顺序用chpasswd命令更新这5个账户的密码(自行学习chpasswd的用法。请勿使用passwd命令来设置这5个用户的密码)。
提示:
usernames=(adam bob calvin)
echo ${usernames[0]}
echo ${usernames[1]}
echo ${usernames[2]}
echo ${usernames[$(( $i-1 ))]}
function test_func() {
for i in $(seq 1 5); do
echo ${!i}
echo $(( $i-1 ))
done
}
- [TODO] 禁止Bob用密码登陆系统。
- 将Adam加入wheel组,使得Adam这个账户在必要时可以通过sudo提升为管理员权限。
- 将第1步操作里建立的100个文件里编号为3的整数倍的文件(比如new_file3, new_file6, new_file9,……,new_file99)的权限改为所有者可读写但不能执行、归属组群内用户可读不能写不能执行、其他用户不能读不能写不能执行。
根据上述要求,在代码仓库的lab3/lab3.sh里实现对应如下命名的函数并提交、推送到服务器:
s1_generate_a_series_of_files
s2_list_4_files_in_long_format_about_account_and_group
s3_find_items_related_to_given_username
s4_find_items_related_to_given_group_name
s5_create_groups_for_given_group_names
s6_create_users_and_set_their_group_as_required
s7_change_users_shell
s8_set_password_change_policy
s9_set_password_for_five_users
s10_lock_bobs_password
s11_include_adam_into_wheel_group
s12_change_files_permission
三、实验组织运行要求
以组做实验,每人交一份实验报告。
四、实验条件
PC、Linux虚拟机、Linux远程连接工具
五、思考题
本实验中用到的Linux命令和windows中的操作有哪些相似之处?
六、实验报告
1. 自行学习实验中所需的新知识。
2. 写出自己对本次实验的经历和感受。