[内容] Linux acl 权限

案例一:给某一个文件或目录添加 acl

1.1 给某一个文件或目录添加一个用户的 acl

# setfacl -m u:zhumingyu:r-x /var

(补充:这里以在 /var 目录上给 zhumingyu 用户设置读和执行的 acl 权限为例)

1.2 给某一个文件或目录添加一个组的 acl

# setfacl -m g:zhumingyu:r-x /var

(补充:这里以在 /var 目录上给 zhumingyu 组设置读和执行的 acl 权限为例)

1.3 递归给某一个目录和目录里的所有内容添加一个 acl

# setfacl -Rm u:zhumingyu:r-x /var

(补充:这里以在 /var 目录上递归给 zhumingyu 组设置读和执行的 acl 权限为例)

案例二:删除某一个文件或目录的 acl

2.1 删除某一个文件或目录一个用户的 acl

# setfacl -x u:zhumingyu /var

(补充:这里以在 /var 目录上删除 zhumingyu 用户的 acl 权限为例)

2.2 删除某一个文件或目录一个组的 acl

# setfacl -x g:zhumingyu /var

(补充:这里以在 /var 目录上删除 zhumingyu 组的 acl 权限为例)

2.3 删除某一个文件或目录的所有 acl

# setfacl -b /var

(补充:这里以在 /var 目录上删除所有 acl 权限为例)

2.4 递归删除某一个文件或目录的 acl

# setfacl -Rx u:zhumingyu:r-x /var

(补充:这里以在 /var 目录上递归删除 zhumingyu 用户的 acl 权限为例)

2.5 递归删除某一个文件或目录的所有 acl

# setfacl -Rb /var

(补充:这里以在 /var 目录上递归删除所有 acl 权限为例)

案例三:显示某一个文件或目录的 acl

# getfacl /var

(补充:这里以显示 /var 目录的 acl 权限为例)

案例四:备份和还原某一个文件或目录的 acl

4.1 备份某一个文件或目录的 acl

# getfacl -R /var > /acl.backup

(补充:这里以备份 /var 目录的 acl 权限为例)

4.2 还原某一给文件或目录的 acl

# setfacl --restore /acl.backup

(补充:这里以还原 /var 目录的 acl 权限为例)

[命令] Linux 命令 chmod (管理权限)

内容一:普通权限的管理

1.1 普通权限的介绍

1.1.1 对于文件而言

1) r 代表读权限
2) w 代表写权限
3) x 代表执行权限

1.1.2 对于目录而言

1) r 代表可以看到目录的权限
2) w 代表可以对目录进行增、删、改、查和在里面创建文件和目录的权限
3) x 代表可以进入目录的权限

(注意:对于目录而言,x 权限必须要和 r 权限配合使用,如果只有 x 权限没有 r 权限,则依旧不能进入目录)

1.1.3 用数字代替权限的方法

1) 0 代表 —
2) 1 代表 –x
3) 2 代表 -w-
4) 3 代表 -wx
5) 4 代表 r–
6) 5 代表 r-x
7) 6 代表 rw-
8) 7 代表 rwx

1.2 管理权限案例

1.2.1 给一个文件或目录添加权限的案例
1.2.1.1 案例一
# chmod u+x test.txt

(补充:这里以给 test.txt 文件的所属主添加执行权限为例)

1.2.1.2 案例二
# chmod u+r,g+w test.txt

(补充:这里以给 test.txt 文件的所属主添加执行权限,给文件的所属组添加写权限为例)

1.2.1.3 案例三
# chmod +x test.txt

(补充:这里以给 test.txt 文件的所属主、所属组和其他用户添加执行权限为例)

1.2.1.4 案例四
# chmod a+x test.txt

(补充:这里以给 test.txt 文件的所属主、所属组和其他用户添加执行权限为例)

1.2.2 给一个文件或目录撤销权限的案例
1.2.2.1 案例一
# chmod u-x test.txt

(补充:这里以给 test.txt 文件的所属主撤销执行权限为例)

1.2.2.2 案例二
# chmod u-r,g-w test.txt

(补充:这里以给 test.txt 文件的所属主撤销执行权限,给文件的所属组撤销写权限为例)

1.2.2.3 案例三
# chmod -x test.txt

(补充:这里以给 test.txt 文件的所属主、所属组和其他用户撤销执行权限为例)

1.2.2.4 案例四
# chmod a-x test.txt

(补充:这里以给 test.txt 文件的所属主、所属组和其他用户撤销执行权限为例)

1.2.3 设定某一个文件或目录的权限的案例
1.2.3.1 案例一
# chmod u=rwx test.txt 

(补充:这里以设置 test.txt 文件的所属主拥有读、写和执行的权限为例)

1.2.3.2 案例二
# chmod u=rw- test.txt

(补充:这里以设置 test.txt 文件的所属主拥有读和写的权限,但是没有执行的权限为例)

1.2.3.3 案例三
# chmod u=--- test.txt

或者:

# chmod u= test.txt

(补充:这里以设置 test.txt 文件的所属主没有任何权限为例)

1.2.3.4 案例四
# chmod u=rw,g=, test.txt

(补充:这里以设置 test.txt 文件的所属主拥有读和写的权限,但是没有执行的权限。设置文件的所属组没有任何权限为例)

1.2.3.5 案例五
# chmod u=rw,g=---,0= test.txt

(补充:这里以设置 test.txt 文件的所属主拥有读和写的权限,但是没有执行的权限。设置文件的所属组没有任何权限。设置文件的其他用户没有任何权限为例)

1.2.3.6 案例六
# chmod 755 test.txt

(补充:这里以设置 test.txt 文件的所属主拥有读、写和执行的权限。设置文件的所属组有读和执行的权限。设置文件的其他用户有读和执行的权限为例)

内容二:特殊权限的管理

2.1 特殊权限 SUID

2.1.1 SUID 介绍

1) SUID:全名 Set UID
2) SUID 的作用:让没有此文件执行权限的用户,可以执行这个文件
3) SUID 的权限数字 4000

2.1.2 SUID 权限的添加的案例
2.1.2.1 添加 SUID 权限的案例
# chmod u+s test.txt

(补充:这里以给 test.txt 文件添加 SUID 权限为例)

或者:

# chmod 4644 test.txt

(补充:这里以设置 test.txt 文件的所属主拥有读和写的权限。设置文件的所属组有读的权限。设置文件的其他用户有读的权限。并添加 SUID 权限为例)

2.1.2.2 显示 SUID 权限的添加情况的案例
2.1.2.2.1 显示有 SUID 权限,但是所属主没有执行权限的文件的案例
# ls -l test.txt 
-rwSr--r-- 1 root root 0 12月  8 05:27 test.txt

(补充:这里以对 test.txt 文件进行操作为例)

2.1.2.2.2 显示有 SUID 权限,并且所属主有执行权限的文件的案例
# ls -l test.txt 
-rwsr--r-- 1 root root 0 12月  8 05:27 test.txt

(补充:这里以对 test.txt 文件进行操作为例)

2.2 特殊权限 SGID

2.2.1 SGID 介绍

1) SGID:全名 Set GID
2) SGID 的作用:在此目录下创建的文件,将都和此目录的所属组一样
3) SGID 的权限数字 2000

2.2.2 SGID 权限的添加的案例
2.2.2.1 添加 SGID 权限的案例
# chmod g+s test

(补充:这里以给 test.txt 文件添加 SGID 权限为例)

或者:

# chmod 2644 test

(补充:这里以设置 test.txt 文件的所属主拥有读和写的权限。设置文件的所属组有读的权限。设置文件的其他用户有读的权限。并添加 SGID 权限为例)

2.2.2.2 显示 SGID 权限的添加情况的案例
2.2.2.2.1 显示有 SGID 权限,但是所属组没有执行权限的目录的案例
# ls -l test
-rw-r-Sr-- 1 root root 0 12月  8 05:27 test

(补充:这里以对 test.txt 文件进行操作为例)

2.2.2.2.2 显示有 SGID 权限,并且所属组有执行权限的目录的案例
# ls -l test
-rw-r-sr-- 1 root root 0 12月  8 05:27 test

(补充:这里以对 test.txt 文件进行操作为例)

2.3 特殊权限 SBIT

2.3.1 SBIT 介绍

1) SBIT:全名 Sticky Bit
2) SBIT 的作用:在此目录下创建的文件,只有创建此文件的用户和 root 用户可以删除
3) SBIT 的权限数字 1000

2.3.2 SBIT 权限的添加的案例
2.3.2.1 添加 SBIT 权限的案例
# chmod o+t test

(补充:这里以给 test.txt 文件添加 SBID 权限为例)

或者:

# chmod 1644 test

(补充:这里以设置 test.txt 文件的所属主拥有读和写的权限。设置文件的所属组有读的权限。设置文件的其他用户有读的权限。并添加 SBID 权限为例)

2.3.2.2 显示 SBIT 权限的添加情况的案例
2.3.2.2.1 显示有 SBIT 权限,但是所属主没有执行权限的目录的案例
# ls -l test
-rw-r--r-T 1 root root 0 12月  8 05:27 test

(补充:这里以对 test.txt 文件进行操作为例)

2.3.2.2.2 显示有 SBIT 权限,并且所属主有执行权限的目录的案例
# ls -l test
-rw-r--r-t 1 root root 0 12月  8 05:27 test

(补充:这里以对 test.txt 文件进行操作为例)

[命令] Linux 命令 sudo (用户提权)

内容一:sudo 简介

sudo 命令可以让非 root 用户,在不知道 root 的密码的情况之下以 root 的身份执行某一些命令
但是要实现这一目标需要提前修改 sodu 的配置文件

内容二:修改 sudo 配置文件的方法

# visudo

(注意:此方法可以在保存退出时检查 sudo 文件有没有语法错误)

或者:

# sudoedit /etc/sudoers

(注意:此方法可以在保存退出时检查 sudo 文件有没有语法错误)

或者:

# vi /etc/sudoers

(注意:此方法不能在保存退出时检查 sudo 文件有没有语法错误)

或者:

# vi /etc/sudoers

(注意:此方法不能在保存退出时检查 sudo 文件有没有语法错误)

内容三:修改 sudo 配置文件的案例

3.1 案例一:让 zhumingyu 用户可以通过 sudo 获取所有 root 权限

# vi /etc/sudoers

添加以下内容:

......
zhumingyu ALL=(ALL)   ALL  
......

(说明:在 “root ALL=(ALL)   ALL” 这一行后面仿照着加入一行就行了)

3.2 案例二:让 zhumingyu 用户可以通过 sudo 获取所有 root 权限,并且免密码

# vi /etc/sudoers

添加以下内容:

......
zhumingyu ALL=(ALL)   NOPASSWD: ALL  
......

(说明:在 “root ALL=(ALL)   ALL” 这一行后面仿照着加入一行就行了)

3.3 案例三:让 zhumingyu 用户可以通过 sudo 获取 firewalld 命令的 root 权限,并且免密码

# vi /etc/sudoers

添加以下内容:

......
zhumingyu ALL=(ALL)   NOPASSWD: firewalld
......

(说明:在 “root ALL=(ALL)   ALL” 这一行后面仿照着加入一行就行了)

3.4 案例四:让 zhumingyu 用户可以通过 sudo 获取 firewalld 和 chmod 命令的 root 权限,并且免密码

# vi /etc/sudoers

添加以下内容:

......
zhumingyu ALL=(ALL)   NOPASSWD: firewalld,chmod
......

(说明:在 “root ALL=(ALL)   ALL” 这一行后面仿照着加入一行就行了)

3.5 案例五:让 zhumingyu 用户可以通过 sudo 获取 passwd 命令的 root 权限,并且免密码,但是不能修改 root 的密码

# vi /etc/sudoers

添加以下内容:

......
zhumingyu ALL=(ALL)   NOPASSWD: !/usr/bin/passwd root
......

(说明:在 “root ALL=(ALL)   ALL” 这一行后面仿照着加入一行就行了)

3.6 案例六:让 zhumingyu 用户可以通过 sudo 获取 passwd 命令的 root 权限,并且免密码,但是不能修改以 a 开头命名用户的密码

# vi /etc/sudoers

添加以下内容:

......
zhumingyu ALL=(ALL)   NOPASSWD: !/usr/bin/passwd a.*
......

(说明:在 “root ALL=(ALL)   ALL” 这一行后面仿照着加入一行就行了)

3.7 案例七:让 zhumingyu 组里的所有用户通过 sudo 获取 passwd 命令的 root 权限,并且免密码

3.7.1 让 zhumingyu 组里的所有用户通过 sudo 获取 passwd 命令的 root 权限,并且免密码
# vi /etc/sudoers

添加以下内容:

......
%zhumingyu ALL=(ALL)    NOPASSWD: /usr/bin/passwd 
......

(补充:% 代表这是一个组而不是一个用户)

(说明:在 “%wheel    ALL=(ALL)    NOPASSWD: ALL” 这一行后面仿照着加入一行就行了)

3.7.2 将相关用户添加到 zhumingyu 组里
# usermod -a -G zhumingyu <user>