共计 4154 个字符,预计需要花费 11 分钟才能阅读完成。
目的
熟练使用 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
文章来源于网络,侵删!