第九章 Linux文件系统权限

张开发
2026/4/10 13:53:23 15 分钟阅读

分享文章

第九章 Linux文件系统权限
1. 文件的一般权限1.1. 文件详细信息1.2. 文件权限构成1.2.1. 权限针对三类对象定义owner 所有者缩写ugroup 所属组缩写gother 其他人缩写o1.2.2. 访问者三种权限1.2.3. 组成字符表示二进制表示数字表示---0000--x0011-w-0102-wx0113r--1004r-x1015rw-1106rwx11171.2.4. 文件与目录权限含义权限对文件的影响对目录的影响rread可以读取文件的内容可以列出目录的内容即目录下的文件的文件名wwrite可以更改文件的内 容可以创建或者删除目录中的任一文件只有w权限无法创建删除 文件需要和x权限一起使用x execute可以作为可执行文 件如脚本可以切换到目录如cd命令文件可能出现的权限目录可能出现的权限---、r--、r-x、rw-、rwx---、r-x、rwx1.2.5. 注意root账户不受文件权限的读写限制执行权限受限制1.2.6. 示例例1写出下列文件的字符权限764 : rwxrw-r-642: rw-r---w153: --xr-x-wx731: rwx-wx--x例2写出下列文件的数字权限r-xrw-r-- : 564rw--w--wx : 623rw-r--r-- : 6441.3. chmod命令1.3.1. 作用chmod(change mode)修改文件或目录的权限# 格式1 chmod [选项] [ugoa][-][rwx] 文件或目录... # 格式2 chmod [选项] nnn 文件或目录...1.3.3. 参数-R递归修改指定目录下所有文件、子目录的权限ugoa表示权限设置所针对的用户类别可以是其中字母中的一个或组合u(user)表示文件或目录的属主 (所有者)g(group)表示属组内的用户o(others)表示其他用户a(all)表示所有用户(即ugo)或-或表示设置权限的操作动作代表添加-代表取消表示只赋予给定的权限并取消原有的权 限。rwx用字符形式表示的所设置的权限可以是其中一个字母或组合nnn用数字表示的权限1.3.4. 示例[rootserver ~]# touch t1.txt [rootserver ~]# ll t1.txt-rw-r--r--. 1 root root 0 5月 6 17:29 t1.txt [rootserver ~]# chmod x t1.txt [rootserver ~]# ll t1.txt-rwxr-xr-x. 1 root root 0 5月 6 17:29 t1.txt [rootserver ~]# chmod ow t1.txt [rootserver ~]# ll t1.txt-rwxr-xrwx. 1 root root 0 5月 6 17:29 t1.txt1.4. chown命令1.4.1. 作用 修改文件或目录的所有者和属组1.4.2. 格式修改文件或目录的所属者chown -参数 所有者所属组 文件名或目录名 # 参数-R递归设置1.4.3. 示例[rootserver m2]# cd ~ [rootserver ~]# touch t4.txt [rootserver ~]# ll t4.txt-rw-r--r--. 1 root root 0 5月 6 17:40 t4.txt [rootserver ~]# chown fox:fox t4.txt [rootserver ~]# ll t4.txt-rw-r--r--. 1 fox fox 0 5月 6 17:40 t4.txt2. 特殊权限2.1. 概述在Linux系统中用户对文件或目录的访问权限除了r、w、x三种一般权限外还有SET UID(SUID)、SET GID(SGID)、Sticky Bit(粘滞位)三种特殊权限用于对文件或目录进行更加灵活方便的访问控制。SUID 权限的含义是为了让一般用户在执行某些程序的时候 在程序的运行期间 暂时获得该程序文件 所属者的权限。2.2. SUID权限2.2.1. 使用场景例如student用户要更改自己的密码student 在执行 passwd 修改自己的密码时 其修改的密码 最终是需要保存到 /etc/shadow 这个文件 中 而这个文件的权限是 --------- 它的拥有者是 root 也只有 root 可以“ 强制” 存储 其他用户连看都 不行可偏偏 student 去执行 passwd /usr/bin/passwd) 却可以更新自己的密码这就是因为有 s 权限的存在当 s权限在拥有者的权限位上时 即如-rwsr-xr-x 这样时 称为 SUID 。 SUID 即 Set UID UID 指的是拥有者的的 ID 而这个程序 (/usr/bin/passwd) 的拥有者为root) 。[rootserver ~]# ll /usr/bin/passwd-rwsr-xr-x. 1 root root 32648 8月 10 2021 /usr/bin/passwd2.2.2. 注意suid仅对二进制文件有效在执行过程中调用者会暂时获得该文件的所有者权限该权限只在程序执行的过程中有效2.3. SGID 权限2.3.1. SGID 可以用在两个方面文件 如果 SGID 设置在二进制文件上 则不论用户是谁在执行该程序的时候程序的所属组将会变成 该程序文件的所属组。目录如 果 SGID 是设置在 A 目录上 则在 A 目录内所建立的文件或目录的所属组 将会是此 A 目录的 所属组2.3.2. 注意一般SGID 多用在特定的多人团队的项目开发上在系统中用的很少2.4. Sticky Bit权限Sticky Bit (SBit) 当前只针对目录有效 对文件没有效果。其对目录的作用在 具 有 SBit 的目录下 用户若在该目录下具有 w 及 x 权限 则当用户在该目录下建立文件或目录 时 只有文件拥有者与 root 才有权力删除。例如当 student 用户属于 A 目录的组成员或属于 other 且拥有 wx 权限时 可以对该目录内任何 人建立的目录或文件进行“ 删除/重命名/移动” 等操作。 如果将 A 目录加上了 Sticky Bit 权限 则 student用户只能针对自己建立的文件或目录进行“ 删除/重命名/移动” 等操作。2.5. 设置特殊权限为文件或目录添加三种特殊权限同样可以通过chmod命令来实施,使用“u±s”、“g±s”、“o±t”的字符权限模式 分别用于添加和移除SUID、GUID、sticky权限。若使用数字形式的权限模式,可采用“nnnn”格式的四位八进制数字表示其中后面三位是一般权限的数字 表示前面第一位则是特殊权限的标志数字3. ACL权限3.1. 作用给指定的用户指定目录分配指定的权限。3.2. ACL权限管理命令3.2.1. 查看ACL权限格式getfacl 文件名[rootserver ~]# touch temp.cfg [rootserver ~]# getfacl temp.cfg # getfacl命令 # file: temp.cfg # owner: root # group: root user::rw group::r-- other::r--3.2.2. 设定ACL权限setfacl -参数 文件名 -m设定 ACL 权限 给用户设定 ACL 权限setfacl -m u:用户名:权限 指定文件名 给用户组设定 ACL 权限setfacl -m g:组名:权限 指定文件名-x删除指定的 ACL 权限-b删除所有的 ACL 权限-k删除默认 ACL 权限-d设定默认 ACL 权限。只对目录生效指目录中新建立的文件拥有此默认权限-R递归设定 ACL 权限。指设定的 ACL 权限会对目录下的所有子文件生3.3. 删除acl权限# 删除指定用户的 ACL 权限 setfacl -x u:用户名 文件名 # 删除指定用户组的 ACL 权限 setfacl -x g:组名 文件名 # 删除文件的所有 ACL 权限 setfacl -b 文件名4. 权限掩码umask4.1. 新建文件权限与umask关系在Linux系统中当用户创建一个新的文件或目录时系统都会为新建的文件或目录分配默认的权限该默 认权限与umask值有关新建文件的默认权限0666-umask值 减去新建目录的默认权限0777-umask值4.2. 查看默认umask值[rootserver ~]# umask 0022 0022 [rootserver ~]# touch file1 [rootserver ~]# mkdir dir1 [rootserver ~]# ll -d file1 dir1 drwxr-xr-x. 2 root root 6 5月 6 18:23 dir1 # 755-rw-r--r--. 1 root root 0 5月 6 18:23 file1 # 6444.3. 修改默认umask[rootserver ~]# umask 000 # 临时修改 [rootserver ~]# touch file2 [rootserver ~]# mkdir dir2 [rootserver ~]# ll -d file2 dir2 drwxrwxrwx. 2 root root 6 5月 6 18:26 dir2-rw-rw-rw-. 1 root root 0 5月 6 18:25 file2

更多文章