感谢支持
我们一直在努力

RHCSA认证培训+考试七天实录(三)

RHCSA认证培训+考试七天实录(三)


第三天(7月21日)


今天的主要内容是对用户和组的管理,以及如何设置权限。


一、管理用户和组


1、先建manager组,创建两个用户natasha、harry,将它们的附属组设为manager,创建第三个用户strlt不允许login,再建一个用户susa,指定UID号为4000。


对用户和组的管理在图形界面下操作非常简单,通过“系统/管理/用户和组群”就可以完成。


先创建manager组:


RHCSA认证,RHCSA


下面再创建用户:


RHCSA认证,RHCSA


默认情况下在Linux中建用户的同时会自动创建一个同名的用户组,题目要求将manager作为用户的附属组,也就是还要将用户加入到manager组中去。这个操作就像在Windows里面一样的简单,打开用户的属性设置界面,选择要加入的组即可。


RHCSA认证,RHCSA


再创建第三个用户strlt,因为这个用户不允许登录,所以将他的登录shell设为/sbin/nologin。


RHCSA认证,RHCSA

再建一个用户susa,并且指定UID为4000,系统默认的UID是从500开始递增的。


RHCSA认证,RHCSA


再用命令完成上述操作,呵呵,感觉还是用命令更干脆利索:


[root@localhost ~]#groupadd manager                #创建manager组


[root@localhost ~]#useradd –G manager natasha        #创建用户,同时指定附属组。


[root@localhost ~]#useradd –G manager harry          #创建用户,同时指定附属组。


[root@localhost ~]#useradd –s /sbin/nologin strlt        #创建用户,但不允许登录。


[root@localhost ~]#useradd –u 4000 susa              #创建用户,并指定UID。


2、创建指定的用户和组。


这里我就全部用命令来做了。


增加usergrp组,GID号为6000。


[root@localhost ~]# groupadd -g 6000 usergrp


新增user1用户,UID为6000,密码为空,附属组为usergrp。


[root@localhost ~]# useradd  -u 6000 -G usergrp user1


新增user2用户,密码为password,将用户的附属组加入root组和usergrp组,用户的主目录指定为/user2目录。


[root@localhost ~]# useradd -d /user2 -G root -G usergrp user2


设密码可以直接使用passwd命令,但需要输入两遍密码进行确认,为了简化操作可以执行下面的命令:


[root@localhost ~]#echo “password” | passwd –stdin user2


新增user3用户,不为用户建立并初始化主目录,用户不允许登录系统shell。


[root@localhost ~]# useradd -M -s /sbin/nologin user3


-M参数不建立主目录。


3、设置用户的密码期限。


这部分操作在图形界面下操作很简单,用命令就很麻烦了。


设置user1用户,在下次登录时必须强制更改密码。


在“用户和组群”管理工具中打开用户属性界面,勾选相应的选项即可。


RHCSA认证,RHCSA


设置user2用户,密码30天必须更改,密码在2012年10月10日过期。


这个操作仍然是要在上面那幅图中的操作界面完成,其中各个设置项目的含义:


“允许更换前的天数”,指密码必须使用的最少天数,比如将这项设为3,那么在3天之内将无法更改密码。设为0,则表示无限制。


“需要更换的天数”,指密码的有效使用期限,按题目要求,这里就是30了。


“更换前警告的天数”,这个好理解,就是密码到期前提前几天警告。


“账号被取消激活前的天数”,这项是设置当密码到期后,用户账号是否还可以继续使用。比如设为3,就表示账号还可以继续使用3天。设为0,表示密码到期后,用户账号也立即失效。这项的默认值为-1,也就是账号永不失效。


密码在2012年10月10日过期,这个要求可以在“账号信息”项里设置,如下图所示。


RHCSA认证,RHCSA

二、设置权限


这部分内容比较麻烦,尤其是设置set位和粘滞位,但又是考试的必考内容,比较重要。


1、新建目录/var/www/user1,并设置如下权限:


将此目录的所有者设为user1,并设置读写执行权限。


[root@localhost tmp]# mkdir /var/www/user1


[root@localhost www]# ll


drwxr-xr-x. 2 root root 4096 7月 20 20:39 user1


#目录user1默认的所有者是root,具有完全控制权限。


[root@localhost www]# chown user1 user1


#改变目录的所有者为user1,并且自动继承了完全控制权限。


将此目录的组设置为usergrp,并设置读、执行权限,将其他用户的权限设置为只读。


[root@localhost www]#chown :usergrp user1    #改变所属组


[root@localhost www]# chmod 754 user1       #设置权限


2、创建/test目录,在此目录中任何用户都可以创建文件或目录,但只有用户自身和root用户可以删除用户所创建的文件或目录。


在此目录中任何用户都可以创建文件或目录,这个要求很好满足,只要将目录的权限设为777即可。麻烦的是后面的那个要求,只有用户自身和root用户可以删除用户所创建的文件或目录,这个要求通过普通的权限设置是无法完成的,这里就必须要用到粘滞位。


粘滞位主要是为公共目录(例如权限为777的)设置,权限字符为“t”,作用是用户不能删除该目录中其他用户的文件。如:


[root@localhost ~]# ls -ld /tmp   /var/tmp


drwxrwxrwt 8 root root 4096 09-09 15:07 /tmp


drwxrwxrwt 2 root root 4096 09-09 07:00 /var/tmp


系统中的这两个目录就设置了粘滞位,粘滞位放在最后一组。


粘滞位的权限数字为1,理解了粘滞位的用途之后,上面的操作就很好完成了:


[root@localhost ~]#mkdir /test


[root@localhost ~]#cd /


[root@localhost ~]#chmod 1777 test     #前面的1就表示要设置粘滞位


[root@localhost ~]#ll


drwxrwxrwt 2 root root 4096 7月 20 21:07 test


3、将/etc/fstab复制到/var/tmp/fstab,设置用户harry可以读写,用户natasha不能做任何操作,其他用户可读,设置manager组为fstab所属组(harry和natasha都是manager组的成员)。


[root@localhost ~]#cp /etc/fstab /var/tmp/


[root@localhost ~]#cd /var/tmp


[root@localhost tmp]#ll         #查看fatab文件的默认权限


-rw-r—r– 1 root root 779 7月 19 21:07 fstab


[root@localhost tmp]#chown :manager fstab    #改变fstab的所属组


[root@localhost tmp]#ll         #再次查看fatab文件的权限


-rw-r—r– 1 root manager 779 7月 19 21:07 fstab


此时因为harry和natasha都属于manager组的成员,所以他们都具有只读权限。而题目中要求harry可以读写、natasha没有任何权限,这属于对某些用户进行细部权限设置,用传统的权限设置方法也是无法完成的,所以这里必须要用到权限控制列表ACL。ACL的主要作用就是针对某些用户或某些组进行细部权限设置。


[root@localhost tmp]#setfacl -m u:harry:6 fstab


[root@localhost tmp]#setfacl -m u:natasha:0 fstab


setfacl命令用于设置或修改ACL,-m参数是创建acl,u:指定对哪个用户设置权限,如果要针对某个组设权限,就应改为g:。


4、设置用户natasha对目录/home/cnrts(自己创建)有完全控制权限,在目录中创建的文件自动继承组的权限,设置manager组用户对目录有读写执行权限,其他人没有权限(root除外)。


[root@localhost ~]#mkdir /home/cnrts


[root@localhost ~]#cd /home


[root@localhost home]#ll


drwxr-xr-x. 2 root root 4096 7月 20 20:39 cnrts


[root@localhost home]#chown :manager cnrts   #将所属组改为manager


再下面的操作就有点麻烦了。因为题目中要求manager组对目录有读写执行权限,而natasha是manager组的成员,在上面的操作中又已经将manager设置为了cnrts的所属组,所以只要为cnrts的所属组设置读写执行权限就可以满足这两个要求了。麻烦的是这个要求:在目录中创建的文件要自动继承组的权限。也就是说,无论什么用户在这个目录中创建的文件,manager组都要对它具有读写执行权限。我们知道,默认情况下,用户创建的文件默认的所有者和所属组都是自己,比如我们执行下面的操作:


[natasha@localhost home]$ touch natasha    #以natasha用户的身份创建一个文件


-rw-rw-r–. 1 natasha natasha  0 7月 20 22:05 natasha


这个文件的所属组是natasha,manager组的成员对它只有读权限。要实现上面的要求,方法是让cnrts目录的所属组继承下去,即无论谁在cnrts目录里创建的文件,它的所属组都继承cnrts目录的所属组,也就是manager。这就要用到set位。


set位的权限字符为“s”,它可以对文件设置,也可以对目录设置。当对文件设置时,set位放在第一组权限,当对目录设置时,set位放在第二组权限。如:


[root@localhost ~]# ls -l /usr/bin/passwd


-rwsr-xr-x 1 root root 19876 2006-07-17 /usr/bin/passwd


rwsr-xr-x,set位设在第一组,表示当其他用户要执行这个文件时,会自动使用文件所有者也就是root用户的身份去执行。


[root@localhost ~]# ls -l /tmp/test


-rw-rwsr-x 1 harry root 19876 2008-07-17 /tmp/test


rw-rwsr-x,set位设在第二组,表示无论哪个组的用户在/tmp/test目录中创建的文件都将属于root组。


set位的设置仍然使用chmod命令,4对应第一组中的set位,2对应第二组中的set位,1对应最后一组中的粘滞位,这三种特殊权限可叠加。


明白了道理之后,上面的要求用一条命令就可以完成:


[root@localhost home]#chmod -R 2770 /home/cnrts


2770表示在第二组设置set位,也就是继承所属组,同时将目录所有者和所属组的权限设为完全控制,其它用户没有权限。-R参数表示递归,也就是对cnrts目录中的所有子目录也都执行相同操作。

赞(0) 打赏
转载请注明出处:服务器评测 » RHCSA认证培训+考试七天实录(三)
分享到: 更多 (0)

听说打赏我的人,都进福布斯排行榜啦!

支付宝扫一扫打赏

微信扫一扫打赏