一、解释 Linux 文件系统权限

1、Linux 文件系统权限

fixAwwQa-1.png

2、查看文件和目录的权限及所有权

ls -l :显示文件的权限和所有权,长列表的第一个字符表示文件类型

  • - :常规文件
  • d :目录
  • l :符号链接
  • c :字符设备文件
  • b :块设备文件
  • p :命名管道文件
  • s :本地套接字文件

接下来九个字符代表文件权限。这些字符解释为三组,每组三个字符:第一组是适用于文件所有者的权限,第二组用于文件的组所有者,最后一组则适用于所有其他(全局)用户。如果一组是 rwx,说明该组具有读取、写入和执行全部三种权限。如果一个字母被替换为 - 则表示该组没有这个权限。

在第二列(链接数)之后,第一个名称指定文件的所有者,第二个名称是文件的组所有者。

fixAwwQa-2.png

二、从命令行管理文件系统权限

1、使用符号法更改权限

chmod [Who][What][Which] [file]/[directory] :修改文件或目录的权限

fixAwwQa-3.png

fixAwwQa-4.png

fixAwwQa-5.png

chmod go-r [test] :对于 [test] 文件,为组和其他删除读取权限

fixAwwQa-6.png

chmod a+r [test] :对于 [test] 文件,为所有人添加执行权限

fixAwwQa-7.png

chmod -R g+rwx [Test] :对于 [Test] 目录,以递归方式为拥有 [Test] 目录的组的成员以及其中的文件和目录添加读取、写入和执行权限

fixAwwQa-8.png

2、使用八进制法更改权限

chmod ### [file]/[directory] :修改文件或目录的权限,每个数字代表一个访问级别的权限,从左到右分别是:用户、组和其他

下图解释了 644 表示的权限

fixAwwQa-9.png

chmod 644 [test] :对于 [test] 文件,为用户设置读取和写入权限,并组和其他人设置读取权限

fixAwwQa-10.png

chmod 750 [Test] :对于 [Test] 目录,为用户设置读取、写入和执行权限,为组设置读取和执行权限,而为其他设置无权限

fixAwwQa-11.png

3、更改文件和目录的用户或组所有权

chown [Ezekielx] [test] :将文件 [test] 的用户所有权更改为 [Ezekielx] (这个 [Ezekielx] 是用户)

fixAwwQa-12.png

chown :[Ezekielx] [test] :将文件 [test] 的组所有权更改为 [Ezekielx] (这个 [Ezekielx] 是与用户同名的组)

fixAwwQa-13.png

chown -R [Ezekielx]:[Ezekielx] [Test] :将目录 [Test] 及其子目录的用户和组的所有权分别更改为 [Ezekielx] 和 [Ezekielx] (使用 [owner]:[group] 语法可让 chown 命令同时更改所有者和组)

fixAwwQa-14.png

4、对个别用户和组单独设置权限

setfacl -m u:[Ezekielx]:r-- [test] :对于文件 [test],给 [Ezekielx] 这个用户单独添加 r 权限

fixAwwQa-15.png

setfacl -m g:[Ezekielx]:r-- [test] :对于文件 [test],给 [Ezekielx] 这个组单独添加 r 权限

fixAwwQa-16.png

getfacl [test] :察看给文件 [test] 单独设置的权限

fixAwwQa-17.png

setfacl -b [test] :删除给文件 [test] 单独设置的权限

fixAwwQa-18.png

三、特殊权限设置和管理默认权限

1、特殊权限

特殊权限对文件和目录的影响

fixAwwQa-19.png

设置特殊权限

  • 用符号表示setuid = u+ssetgid = g+ssticky = o+t
  • 用数字表示setuid = 4setgid = 2sticky = 1

chmod u+s [HelloWorld] / chmod 4[644] [HelloWorld] :对于 [test] 文件,设置 SUID 权限(如何用户有执行权限则显示 rws 没有则显示 rwS)

fixAwwQa-20.png

chmod g+s [grandfather] / chmod 2[777] [grandfather] :对于 [grandfather] 目录,设置 SGID 权限

fixAwwQa-21.png

chmod o+t [grandfather] / chmod 1[777] [grandfather] :对于 [grandfather] 目录,设置 STICKY 权限

fixAwwQa-22.png

2、默认文件权限

在创建时,文件被分配初始权限,有两个因素会影响这些初始权限:其一是您要创建常规文件还是目录;其二是当前的 umask,它代表用户文件创建掩码。

如果创建目录,则其初始八进制权限为 0777(drwxrwxrwx),如果您创建常规文件,则其初始八进制权限为 0666(-rw-rw-rw-)。必须始终为常规文件显式添加执行权限,这一步可使攻击者更难以破坏系统,创建和运行恶意文件。

umask :查看当前用户的 umask 值

fixAwwQa-23.png

umask [0022] :临时修改 umask 值为 [0022],重启或重新登陆后失效

fixAwwQa-24.png

vim /home/[Ezekielx]/.bashrc :永久修改该用户的 umask 值

fixAwwQa-25.png

创建目录默认权限(0755)= 目录初始八进制权限(0777)- umask值(0022)

fixAwwQa-26.png

创建文件默认权限(0644)= 文件初始八进制权限(0666)- umask值(0022)

fixAwwQa-27.png