「RHCSA 红帽系统管理」4、文件权限控制 2023/08/30 21:01 • 学习笔记 • 阅读 1713 目录 Linux 文件系统权限管理文件系统权限特殊权限默认文件权限总结 Linux 文件系统权限 权限对文件的影响对目录的影响r (读取) 可以读取文件内容。可以列出目录的内容。w (写入)可以更改文件内容。可以创建或删除目录中的文件。x (执行)可以作为命令执行文件。可以 cd 目录,但是需要读取权限才能列出内容。 [root@redhat opt]# ll 总用量 0 drwxr-x--x. 2 root root 20 8月 27 18:44 aaa -rw-r--r--. 1 root root 0 8月 27 18:40 1.txt 长列表的第一个字符表示文件类型,- 表示常规文件,d 表示目录,l 表示软链接,b 和 c 表示硬件设备等。 后面的九个字符表示文件权限,分为三组,每组三个字符,分别对应用户权限,组权限和其他用户权限。rwx 对应读取、写入、执行三种权限,如果某个字符用 – 替代,说明该类别下没有这个权限。 链接数后第一个名称表示拥有该文件的用户,第二个名称表示拥有该文件的组。 管理文件系统权限 通过 chmod 命令可以从命令行更改权限。 使用符号更改权限,命令格式为 chmod WhoWhatwhich file | directory。其中 Who 用 u、g、o、a 表示,分别代表用户、组、其他和权限;What 用 +、-、= 表示,分别代表添加、删除和精确设置;Which 用 r、w、x 表示,分别代表读取、写入和执行。 # 为 1.txt 的组添加写入权限 [root@redhat opt]# chmod g+w 1.txt 使用数字更改权限,命令格式为 chmod ### file | directory,每个 # 代表一个数字,三个数字分别代表用户、组和其他的访问级别权限。将每个权限的数值加在一起,即对应该对象的权限。 其中 4 代表读取,2 代表写入,1 代表执行。例如 rwxr-x–x 的用户权限为 4 + 2 + 1 = 7,组权限为 4 + 0 + 1 = 5,其他权限为 0 + 0 + 1 = 1,最终的数值表示为 751。 [root@redhat opt]# chmod 644 1.txt [root@redhat opt]# ll 总用量 0 -rw-r--r--. 1 root root 0 8月 27 18:50 1.txt 在 Linux 上,权限仅适用于设置它们的文件或目录,也就是说目录中的字目录和文件不会自动继承目录的权限。使用 chmod 命令的 -R 选项可以以递归方式对整个目录树中的文件设置权限。 [root@redhat opt]# chmod -R g+rx aaa 使用 chown 命令可以更改文件和目录的用户或组所有权。 # 更改用户所有权 [root@redhat opt]# chown user01 1.txt # 更改组所有权 [root@redhat opt]# chown :group01 1.txt # 同时修改用户和组所有权 [root@redhat opt]# chown user02:group02 1.txt 特殊权限 特殊权限对文件的影响对目录的影响u+s (setUID) 以拥有文件的用户身份,而不是以运行文件的用户身份执行文件。无影响。g+s (setGID)以拥有文件的组身份执行文件。在目录中创建的新文件,其组所有者与当前目录的组所有者匹配。o+t (sticky)无影响。对目录具有写入权限的用户,仅可以删除其拥有的文件,无法删除或编辑其他用户拥有的文件。 对可执行文件文件的 setUID 权限,表示运行文件时以文件所有者 UID,而不是当前用户 UID 执行程序。 通常情况下所有者执行权限的字符为 x,设置 setUID 权限后由小写的 s 取代。如果所有者不具有执行权限,则显示为大写的 S。 典型的文件是 passwd。如果普通用户执行该文件,则在执行过程中该文件可以获得 root 权限,从而可以更改用户的密码。相当于临时拥有文件所有者的身份。s 权限位是一个敏感的权限,容易造成系统的安全问题,请在设置时注意。 [user01@redhat ~]$ ll /usr/bin/passwd -rwsr-xr-x. 1 root root 33544 3月 15 2021 /usr/bin/passwd 对目录的 setGID 权限,表示在该目录中创建的新文件,将自动继承该目录的组所有权。通常用于组协助目录,将文件从默认的专有组更改为共享组。 通常情况下组所有者执行权限的字符为 x,设置 setGID 权限后由小写的 s 取代。如果组所有者不具有执行权限,则显示为大写的 S。 [root@redhat ~]# ll /opt/aaa 总用量 0 -rw-r--r--. 1 user01 group01 0 8月 27 21:35 a1.txt [user01@redhat ~]# ll /opt/aaa 总用量 4 -rw-r--r--. 1 user01 group01 3 8月 27 21:40 a1.txt 对可执行文件文件的 setGID 权限,表示运行文件时以文件所有者 GID,而不是当前用户 GID 执行程序。效果与设置 setUID 权限类似。 [user01@redhat ~]$ ll /usr/bin/locate -rwx--s--x. 1 root slocate 42248 4月 12 2021 /usr/bin/locate 对目录的 sticky 权限,表示文件的所有者才能删除该目录中的文件。 通常情况下其他执行权限的字符为 x,设置 sticky 权限后由小写的 t 取代。然后其他不具有执行权限,则显示为大写的 T。 [user01@redhat ~]$ ll -d /tmp drwxrwxrwt. 8 root root 250 8月 27 21:52 /tmp 使用符号更改特殊权限,setUID 为 u+s,setGID 为 g+s,sticky 为 o+t。 [user01@redhat /]$ chmod g+s /opt/aaa [user01@redhat /]$ ll -d /opt/aaa drwxrwsr-x. 2 user01 group01 20 8月 27 21:40 /opt/aaa 使用数字更改特殊权限,则使用四位数字表示,setUID 为 4,setGID 为 2,sticky 为 1。 [user01@redhat /]$ chmod 2775 /opt/aaa [user01@redhat /]$ ll -d /opt/aaa drwxrwsr-x. 2 user01 group01 20 8月 27 21:40 /opt/aaa 默认文件权限 在创建新文件或目录时,系统会为其分配初始权限。其中有两个因素会影响初始权限,首先是判断要创建的是常规文件还是目录,其次是当前的 umask。 如果创建的是新目录,系统会为其分配 0777 (drwxrwxrwx) 权限;如果创建的是新文件,系统会为其分配 0666 (drw-rw-rw-) 权限。此外,shell 会话还会一个 umask,进一步限制初始设置的权限。 通过 umask 命令可以查看当前 umask 的值。 [root@redhat ~]# umask 0022 如果在 umask 中设置了一个为,则新文件中对应的权限将被清除。 例如新目录的默认权限为 0777 (drwxrwxrwx) 权限,umask 为 0022,清除权限后,新创建的目录权限为 0755(drwxr-xr-x)。 [root@redhat ~]# mkdir aaa [root@redhat ~]# ll 总用量 4 drwxr-xr-x. 2 root root 6 8月 27 22:09 aaa 如果希望屏蔽掉其他的所有文件和目录权限,可以将 umask 的值设置为 007。 [root@redhat ~]# umask 007 [root@redhat ~]# mkdir bbb [root@redhat ~]# ll 总用量 0 drwxrwx---. 2 root root 6 8月 27 22:26 bbb 用户的默认 umask 值由 shell 启动脚本设置,默认情况下,如果账户 UID 为 200 以上,并且用户名和主要组名相同,默认 umask 值为 002,否则为为 022。 通过 root 用户,添加名为 /etc/profile.d/local-umask.sh 的 shell 启动脚本,可以更改默认 umask 值。完成后需要注销 shell 并重新登陆,确保全局 umask 值更改生效。 总结 文件具有三个应用权限的类别。文件由用户、单个组和其他用户拥有。应用最具体的权限。用户权限覆盖组权限,组权限又覆盖其他权限。 chmod 命令可从命令行更改文件权限,有符号和数字两种表示权限的方法。 chown 命令可更改文件所有权,-R 选项可以递归更改目录树的所有权。 不带参数运行 umask 命令将显示 shell 的当前 umask 值。系统上的每个进程都有一个 umask。Bash 的默认 umask 在/ etc/profile和/etc/bashrc 文件中定义。 本文为原创文章,著作权归作者所有:来自「KOBIN 技术随笔」作者的原创作品,转载请标明出处。「RHCSA 红帽系统管理」4、文件权限控制https://blog.kobin.cn/notes/2826.html 赞 (0) 0 0 生成海报 发表回复 您的邮箱地址不会被公开。 必填项已用 * 标注*昵称: *邮箱: 网址: 记住昵称、邮箱和网址,下次评论免输入 提交 CAPTCHAis initialing...