
Linux-红帽认证 RHCSA-05-控制对文件的访问
一、解释 Linux 文件系统权限
1、Linux 文件系统权限
2、查看文件和目录的权限及所有权
ls -l
:显示文件的权限和所有权,长列表的第一个字符表示文件类型
-
:常规文件d
:目录l
:符号链接c
:字符设备文件b
:块设备文件p
:命名管道文件s
:本地套接字文件
接下来九个字符代表文件权限。这些字符解释为三组,每组三个字符:第一组是适用于文件所有者的权限,第二组用于文件的组所有者,最后一组则适用于所有其他(全局)用户。如果一组是 rwx,说明该组具有读取、写入和执行全部三种权限。如果一个字母被替换为 - 则表示该组没有这个权限。
在第二列(链接数)之后,第一个名称指定文件的所有者,第二个名称是文件的组所有者。
二、从命令行管理文件系统权限
1、使用符号法更改权限
chmod [Who][What][Which] [file]/[directory]
:修改文件或目录的权限
chmod go-r [test]
:对于 [test] 文件,为组和其他删除读取权限
chmod a+r [test]
:对于 [test] 文件,为所有人添加执行权限
chmod -R g+rwx [Test]
:对于 [Test] 目录,以递归方式为拥有 [Test] 目录的组的成员以及其中的文件和目录添加读取、写入和执行权限
2、使用八进制法更改权限
chmod ### [file]/[directory]
:修改文件或目录的权限,每个数字代表一个访问级别的权限,从左到右分别是:用户、组和其他
下图解释了 644 表示的权限
chmod 644 [test]
:对于 [test] 文件,为用户设置读取和写入权限,并组和其他人设置读取权限
chmod 750 [Test]
:对于 [Test] 目录,为用户设置读取、写入和执行权限,为组设置读取和执行权限,而为其他设置无权限
3、更改文件和目录的用户或组所有权
chown [Ezekielx] [test]
:将文件 [test] 的用户所有权更改为 [Ezekielx] (这个 [Ezekielx] 是用户)
chown :[Ezekielx] [test]
:将文件 [test] 的组所有权更改为 [Ezekielx] (这个 [Ezekielx] 是与用户同名的组)
chown -R [Ezekielx]:[Ezekielx] [Test]
:将目录 [Test] 及其子目录的用户和组的所有权分别更改为 [Ezekielx] 和 [Ezekielx] (使用 [owner]:[group] 语法可让 chown 命令同时更改所有者和组)
4、对个别用户和组单独设置权限
setfacl -m u:[Ezekielx]:r-- [test]
:对于文件 [test],给 [Ezekielx] 这个用户单独添加 r 权限
setfacl -m g:[Ezekielx]:r-- [test]
:对于文件 [test],给 [Ezekielx] 这个组单独添加 r 权限
getfacl [test]
:察看给文件 [test] 单独设置的权限
setfacl -b [test]
:删除给文件 [test] 单独设置的权限
三、特殊权限设置和管理默认权限
1、特殊权限
特殊权限对文件和目录的影响
:
设置特殊权限
:
用符号表示
:setuid = u+s
;setgid = g+s
;sticky = o+t
用数字表示
:setuid = 4
;setgid = 2
;sticky = 1
chmod u+s [HelloWorld] / chmod 4[644] [HelloWorld]
:对于 [test] 文件,设置 SUID 权限(如何用户有执行权限则显示 rws 没有则显示 rwS)
chmod g+s [grandfather] / chmod 2[777] [grandfather]
:对于 [grandfather] 目录,设置 SGID 权限
chmod o+t [grandfather] / chmod 1[777] [grandfather]
:对于 [grandfather] 目录,设置 STICKY 权限
2、默认文件权限
在创建时,文件被分配初始权限,有两个因素会影响这些初始权限:其一是您要创建常规文件还是目录;其二是当前的 umask,它代表用户文件创建掩码。
如果创建目录,则其初始八进制权限为 0777(drwxrwxrwx),如果您创建常规文件,则其初始八进制权限为 0666(-rw-rw-rw-)。必须始终为常规文件显式添加执行权限,这一步可使攻击者更难以破坏系统,创建和运行恶意文件。
umask
:查看当前用户的 umask 值
umask [0022]
:临时修改 umask 值为 [0022],重启或重新登陆后失效
vim /home/[Ezekielx]/.bashrc
:永久修改该用户的 umask 值
创建目录默认权限(0755)= 目录初始八进制权限(0777)- umask值(0022)
创建文件默认权限(0644)= 文件初始八进制权限(0666)- umask值(0022)