review-exp5--用户和权限管理
本文章主要供班级复习使用,由于时间紧凑,未一一作出解释,敬请谅解!
1. 列出自己的账户、密码、组在系统内 4 个相应文件里的条目
答:命令:sudo less /etc/passwd /etc/shadow /etc/group /etc/gshadow
|grep -n 'weliteh'
2. 列出/etc 目录下与账户有关的 4 个文件的文件权限
答:命令: ll /etc/passwd /etc/shadow /etc/group /etc/gshadow
3. 在系统上建立如下两个组:RnD,ITOperation,注意保持组名的大小写形式
答:命令:sudo groupadd -r RnD sudo groupadd -r ITOperation
4、在系统上建立如下几个账户,要求每个用户的主组为其自己的私有组,并设置各个账户的密码(建立账户时全部用小写字母),并把RnD作为附加组赋予Adam、Bob、Edward,把ITOperation作为附加组赋予Calvin、David:
Adam
Bob
Calvin
David
Edward
答:脚本程序:
#!/bin/bash
#add user and passwd
for users in Adam Bob Calvin David Edward
do
sudo useradd $users
echo 123|sudo passwd --stdin $users
done
#RnD to Adam,Bob,Edward as an additional group
for groupusers1 in Adam,Bob,Edward
do
sudo gpasswd -M $groupusers1 RnD
done
#ITOperation to Calvin,David as an additional group
for groupusers2 in Calvin,David
do
sudo gpasswd -M $groupusers2 ITOperation
done
创建脚本:vim create.sh
赋予执行权限: chmod a+x create.sh
执行脚本:./create.sh
5、把Adam和Edward的shell变更为zsh(如果系统上没有zsh,需要自行安装)
答:命令:chsh –s /bin/zsh Adam 、 chsh –s /bin/zsh Edward
查看Linux当前已安装的shell:cat /etc/shells或者chsh -l,并无zsh,所以先安装zsh,安装zsh:sudo yum –y install zsh
6、要求所有的上述5个账户都需要在上一次密码修改之后至少10天才能再次修改密码、在上一次修改密码之后的第60天必须进行密码修改并提前10天开始进行警告,如果超过60天之后的10天内均没有任何活动(比如登录系统),那么则禁用该帐号的密码。
答:基础命令:sudo chage –m 10 –M 60 –W 10 –I 10 用户
脚本:
#!/bin/bash
for users in Adam Bob Calvin David Edward
do
sudo chage -m 10 -M 60 -W 10 -I 10 $users
done
7、锁定Bob的账号
答:命令:sudo usermod –L Bob 或者sudo usermod Bob –s /sbin/nologin
8、结合pwgen命令,用chpasswd批量更新上述5个账户的密码,需要给出逐行执行脚本的过程。
答:安装pwgen: sudo yum install -y pwgen
脚本:
#!/bin/bash
passwardfile=./passwardfile
>$passwardfile
userlist="Adam Bob Calvin David Edward"
for user in $userlist
do
if ! grep -w ^$user /etc/passwd > /dev/null
then
echo "user $user not exists"
else
passward=$(pwgen 8 1)
sudo echo "$user:$passward">>$passwardfile
fi
done
sudo cat $passwardfile | chpasswd
创建脚本 :vim changepassward.sh
赋予执行权限:chmod a+x changepassward.sh
执行脚本:./ changepassward.sh
9、赋予Adam管理员权限,使得他在必要时可以通过sudo提升为管理员权限(涉及如何在CentOS利用wheel组和用户的关联来赋予某个可以利用sudo来提升自己的的操作权限)
答:命令:sudo usermod -G wheel Adam
10、用Adam的帐号登陆系统,建立一个叫做development_plan.org的文件,用标准的权限管理方式,使得同组的Edward也能读写这个文件,而Calvin和David不能对该文件进行任何操作
答:命令:创建development_plan.org 文件:touch development_plan.org、设置facl权限:setfacl -m u:Edward:rw,u:Calvin:---,u:David:--- development_plan.org、查看facl权限:getfacl --omit-header development_plan.org
##### 开始:以下命令以Adam的身份执行 #####
11、在当前的shell里利用umask命令,使得新建的文件的权限为600
答:对于root用户,系统默认的umask值是0022;对于普通用户,系统默认的umask值是0002。默认情况下,对于目录,用户所能拥有的最大权限是777;对于文件,用户所能拥有的最大权限是目录的最大权限去掉执行权限,即666。要使得新建文件的权限为600,则umask=666-600=066
命令:umask 0066
12、在当前的shell里利用umask命令,使得新建的目录的权限为751
答:对于普通用户,系统默认的umask值是0002。默认情况下,对于目录,用户所能拥有的最大权限是777;要使得创建目录的默认权限为751,则umask=777-751=026,命令:umask 0026。
13、列出系统里SUID或SGID被设置的程序的详情(各举出一例即可)
答:如果另一个普通账号需要修改自己的密码,就要访问 /etc/shadow 这个文件。但是明明只有 root 才能访问 /etc/shadow 这个文件,这究竟是如何做到的呢?事实上,普通用户是可以修改 /etc/shadow 这个文件内的密码的,就是通过 SUID 的功能。
SUID(chage、chfn、chsh、crontab、gpasswd、mount、newgrp、passwd、su、sudo、umount)
SGID(wall、write)
14、列出系统里sticky-bit被设置的目录自身的详情(举出一例即可)
答:sticky-bit目前只对目录有效,用来阻止非文件的所有者删除文件。比较常见的例子就是 /tmp 目录:权限信息中最后一位 t 表明该目录被设置了 SBIT 权限。SBIT 对目录的作用是:当用户在该目录下创建新文件或目录时,仅有自己和 root 才有权力删除。
15、文件扩展属性:
15.1在主目录建立一个以当前日期为名字的文件,并设置它的不可变属性(Immutable),要求只用一行命令完成
答:命令:currtime=$(date)&&touch $currtime&&sudo chattr +i $currtime&&lsattr $currtime
15.2去掉该文件的不可变属性
答:命令:sudo chattr -i $currtime && lsattr $currtime
##### 结束:以上命令以Adam的身份执行 #####
##### 开始:以Edward的身份登陆系统,执行下列操作 #####
16、在/tmp目录下建立一个叫做operation_notes_for_version_3.1.org 的文件,并让David拥有读写权限,而Adam和Calvin只能查看该文件的内容
##### 结束:以Edward的身份登陆系统,执行上述操作 #####
##### 开始:用David的身份登陆系统,执行下列操作 #####
17、利用vim命令编辑/tmp目录下的operation_notes_for_version_3.1.org 文件,往文件里写如如下2行字:
Version 3.1 is scheduled to be released on the coming 10th, April.
We the operation team need to prepare the rollback plan to ensure a safe fallback in case there were any problems in this new version.
##### 结束:用David的身份登陆系统,执行上述操作 #####
##### 开始:用Adam的身份登陆系统,执行下列操作 #####
18、查看/tmp目录下的operation_notes_for_version_3.1.org 文件的内容
19、用vim编辑/tmp目录下的operation_notes_for_version_3.1.org 文件,注意 vim的警告消息并截取整个vim窗口的图
##### 结束:用Adam的身份登陆系统,执行上述操作 #####
##### 开始:用Calvin的身份登陆系统,执行下列操作 #####
20、查看/tmp目录下的operation_notes_for_version_3.1.org 文件的内容
##### 结束:用Calvin的身份登陆系统,执行上述操作 #####