目的

熟练使用useradd、groupadd、chown、chmod命令来添加和删除用户、添加和删除组以及设置用户和组的权限、修改文件所属等,passwd、su命令的使用。
useradd命令功能:添加一个新用户或更新默认新用户的信息;
groupadd命令功能:创建一个新组;
chwon命令功能:修改文件是所有者和所属组;
chmod命令功能:修改文件的权限位;
passwd命令功能:修改用户的登录密码;
su命令功能:用替代用户或组id运行一个命令;
setfacl命令功能:设置文件访问控制列表。

熟悉特殊权限suid、sgid、sticky、acl的功能和用法。

前提

了解useradd命令添加用户时使用的参数,如-g设置主组,-G设置基本组,-s这种默认shell,-M不创建家目录等内容。

熟悉rwx权限分别应用在文件和目录上的意义,八进制数子表示权限。

理解什么情况下需要设置特殊权限suid、sgid、sticky、acl。

命令介绍

1、useradd命令:在系统中添加用户或更新用户信息

【例1】添加三个用户名称分别为:liubei、zhangfei、guanyu

[root@Magedu ~]# useradd liubei

[root@Magedu ~]# useradd zhangfei

[root@Magedu ~]# useradd guanyu

[root@Magedu ~]# id liubei

uid=1005(liubei) gid=1005(liubei) groups=1005(liubei)

【例2】在系统上添加一个用户名称为apache的用户,默认shell为/sbin/nolgoin且不创建家目录

[root@Magedu ~]# useradd -s /sbin/nologin -M apache

2、groupadd命令:添加组

【例3】添加develop组

[root@Magedu ~]# groupadd develop

3、chown命令:修改文件所属关系

【例4】设置/home/app/run/apache目录及其子目录和文件属主属组为apache

[root@Magedu ~]# mkdir -p /home/app/run/apache/{log,htdoc,conf}

[root@Magedu ~]# chown -R apache.apache /home/app/run/apache

[root@Magedu ~]# ll /home/app/run/apache

total 0

drwxr-xr-x 2 apache apache 6 May 31 04:07 conf

drwxr-xr-x 2 apache apache 6 May 31 04:07 htdoc

drwxr-xr-x 2 apache apache 6 May 31 04:07 log

[root@Magedu ~]# ll /home/app/run/

total 0

drwxr-xr-x 5 apache apache 42 May 31 04:07 apache

注意:chown -R apache.apache等价于chown -R apache:apache。

4、chmod命令:改变文件权限

【例5】修改权限为属主添加写和执行权限、属组没有读权限其它人有读和执行权限

[root@Magedu ~]# touch 1.sh

[root@Magedu ~]# ll 1.sh 

-rw-r--r-- 1 root root 0 Jun  3 22:16 1.sh

[root@Magedu ~]# chmod u+wx,g-r,o=rx 1.sh 

[root@Magedu ~]# ll 1.sh 

-rwx---r-x 1 root root 0 Jun  3 22:16 1.sh

【例6】递归设置testdir目录权限为:属组添加可读、可写、可执行权限,但其子文件不添加执行权限

[root@Magedu ~]# chmod -R g=rwX testdir/

【例7】设置文件1.sh权限为只有属主有读写权限

[root@Magedu ~]# ll 1.sh 

-rw-r--r-- 1 root root 0 Jun  4 00:28 1.sh

[root@Magedu ~]# chmod 600 1.sh 

[root@Magedu ~]# ll 1.sh

-rw------- 1 root root 0 Jun  4 00:28 1.sh

5、passwd命令:设置用户密码

【例8】修改用户linux的登录密码

[root@Magedu ~]# passwd linux

Changing password for user linux.

New password: 

BAD PASSWORD: The password is shorter than 8 characters

Retype new password: 

passwd: all authentication tokens updated successfully.

6、su命令:切换用户

【例9】完全切换linux用户身份

[root@Magedu ~]# su - linux

Last login: Wed May 23 07:56:53 EDT 2018 on pts/1

[linux@Magedu ~]$ id

uid=1004(linux) gid=1004(linux) groups=1004(linux)

【例10】不完全切换到linux用户身份

[root@Magedu ~]# su linux

[linux@Magedu root]$ id

uid=1004(linux) gid=1004(linux) groups=1004(linux)

7、SUID权限设置

【例11】设置二进制可执行程序文件chmod拥有suid权限

[linux@Magedu root]$ cp /usr/bin/chmod ./

[root@Magedu ~]# ll chmod

-rwxr-xr-x 1 root root 58584 Jun  4 02:57 chmod

[root@Magedu ~]# chmod u+s chmod

[root@Magedu ~]# ll chmod 

-rwsr-xr-x 1 root root 58584 Jun  4 02:57 chmod

【例12】取消二进制可执行程序文件chmod拥有的suid权限

[root@Magedu ~]# chmod u-s chmod 

[root@Magedu ~]# ll chmod

-rwxr-xr-x 1 root root 58584 Jun  4 02:57 chmod

8、SGID权限设置

【例13】设置二进制可执行程序文件chmod拥有sgid权限

[root@Magedu ~]# chmod g+s chmod 

[root@Magedu ~]# ll chmod

-rwxr-sr-x 1 root root 58584 Jun  4 02:57 chmod

【例14】取消二进制可执行程序文件chmod拥有的sgid权限

[root@Magedu ~]# chmod g-s chmod 

[root@Magedu ~]# ll chmod

-rwxr-xr-x 1 root root 58584 Jun  4 02:57 chmod

【例15】对testdir目录设置sgid权限,作为协作目录

[root@Magedu ~]# ll -d testdir/

drwxrwxr-x 2 root root 37 May 23 04:09 testdir/

[root@Magedu ~]# chmod g+s testdir/

[root@Magedu ~]# ll -d testdir/

drwxrwsr-x 2 root root 37 May 23 04:09 testdir/

【例16】取消testdir目录sgid权限

[root@Magedu ~]# chmod g-s testdir/

[root@Magedu ~]# ll -d testdir/

drwxrwxr-x 2 root root 37 May 23 04:09 testdir/

9、Sticky权限设置

【例17】对testdir目录设置sticky权限,实现只有文件的所有者或root才能删除该目录下的文件

[root@Magedu ~]# ll -d testdir/

drwxrwxr-x 2 root root 37 May 23 04:09 testdir/

[root@Magedu ~]# chmod o+t testdir/

[root@Magedu ~]# ll -d testdir/

drwxrwxr-t 2 root root 37 May 23 04:09 testdir/

【例18】取消testdir目录的sticky权限

[root@Magedu ~]# chmod o-t testdir/

[root@Magedu ~]# ll -d testdir/

drwxrwxr-x 2 root root 37 May 23 04:09 testdir/

10、acl特殊权限

【例19】在/testdir/dir里创建的新文件自动属于g1组,组g2的成员如:alice能对这些新文件有读写权限,组g3的成员如:tom只能对新文件有读权限,其它用户(不属于g1,g2,g3)不能访问这个文件夹。

[root@Magedu ~]# setfacl -Rm g:g1:rwx /testdir/dir

[root@Magedu ~]# setfacl -m d:g:g1:rwx /testdir/dir/

[root@Magedu ~]# setfacl -m d:u:alice:rw- /testdir/dir

[root@Magedu ~]# setfacl -m d:u:tom:r-- /testdir/dir

[root@Magedu ~]# chmod o= /testdir/dir

【例20】备份/testdir/dir里所有文件的ACL权限到/root/acl.txt中,清除/testdir/dir中所有ACL权限,最后还原ACL权限

[root@Magedu ~]# tar -cvf dir.tar /testdir/dir

[root@Magedu ~]# getfacl -R /testdir/dir > /root/acl.txt

删除全部acl权限:

[root@Magedu ~]# setfacl -b /testdir/dir

还原全部acl权限:

[root@Magedu ~]# tar -xvf dir.tar -C /var/tmp

[root@Magedu ~]# cp ac1.txt /var/tmp

[root@Magedu ~]# setfacl --restore /root/ac1.txt

文章来源于网络,侵删!