资讯详情

资讯详情

Linux文件权限详解:chmod、chown、chgrp全解析

一、Linux 用户分类Linux 下有两种用户超级用户root拥有系统最高权限可执行任何操作命令提示符为#。普通用户权限受限只能执行有限操作命令提示符为$。切换用户命令susu 用户名从 root 切换到普通用户su user从普通用户切换到 rootsu root可省略 root需要输入 root 密码。二、文件访问者分类三类身份身份代号含义拥有者uUser文件或目录的创建者或拥有者所属组gGroup拥有者所在的用户组其他人oOthers除拥有者和所属组之外的所有用户三、文件类型与权限表示文件类型常用符号类型-普通文件d目录l软链接文件b块设备文件c字符设备文件p管道文件s套接字文件基本权限权限符号数字文件含义目录含义读r4可读取文件内容可浏览目录信息写w2可修改文件内容可创建/删除目录内文件执行x1可执行文件可进入目录注意目录的x权限决定了能否cd进入该目录即使有r权限也无法进入。四、权限设置命令1.chmod—— 修改文件权限格式chmod [选项] 权限 文件名两种权限表示方式符号表示法u/g/o/a/-/r/w/xchmod uw file # 拥有者添加写权限 chmod o-x file # 其他人移除执行权限 chmod ax file # 所有用户设置为仅执行权限八进制表示法chmod 664 file # rw-rw-r-- chmod 640 file # rw-r-----常用选项-R递归修改目录下的所有文件权限注意只有文件的拥有者和root才可以改变文件的权限2.chown—— 修改文件拥有者chown user1 file chown -R user1 directory3.chgrp—— 修改文件所属组chgrp group1 file chgrp -R group1 directory4.umask—— 默认权限掩码新建文件默认权限0666新建目录默认权限0777实际权限 默认权限 ~umaskumask # 查看当前掩码 umask 044 # 设置掩码root 默认 umask 为 0022普通用户为 0002。五、目录权限的特殊说明只要用户对目录有写权限就可以删除目录中的文件无论该文件本身是否有写权限。为了解决这个问题Linux 引入了粘滞位sticky bit常用于/tmp目录防止非拥有者删除文件。六、使用sudo分配权限通过修改/etc/sudoers文件可以授权普通用户执行特定命令。格式用户名 主机(执行用户) 命令使用方式sudo -u root 命令示例sudo -u root /usr/sbin/useradd u2七、file命令 —— 识别文件类型在 Linux 中文件扩展名并不像 Windows 那样严格文件类型是由文件内容决定的。file命令用于识别文件的真实类型。语法格式file [选项] 文件或目录...常用选项选项说明-c详细显示指令执行过程便于排错或分析-z尝试解读压缩文件的内容-i显示 MIME 类型如text/plain、image/png示例$ file test.txt test.txt: ASCII text $ file /bin/ls /bin/ls: ELF 64-bit LSB executable, x86-64, ... $ file -z myfile.gz myfile.gz: gzip compressed data, from original file ...file命令非常适合在不确定文件内容时使用尤其是在处理无扩展名或未知来源的文件时。八、粘滞位Sticky Bit—— 解决目录“删除权限”问题问题场景如果目录有写权限任何用户都可以删除该目录下的文件即使该文件不属于他们。# root 创建 /home/test 目录并开放所有权限 chmod 0777 /home/test # litao 用户删除了 root 创建的文件 rm /home/test/root.c # 成功删除这显然不合理。为了解决这个问题Linux 引入了粘滞位。粘滞位的作用粘滞位Sticky Bit是一个权限标记专门用于目录。设置了粘滞位的目录只有文件的所有者、目录的所有者或 root才能删除或重命名目录中的文件。设置粘滞位chmod t 目录名查看粘滞位ls -ld /home/test # 输出示例drwxrwxrwt ... # 注意最后的 t 表示粘滞位已设置九、其他问题1. 为什么文件属性中不列出others用户在Linux权限中用户被划分为三个互不相交的集合u (User)特指一个人文件拥有者g (Group)特指一组人所属组的所有成员o (Others)除上述两类之外的剩余所有人所以没有明确归属的用户自动归入此类。2. 什么是所属组为什么要有所属组所属组文件或目录所属的用户组组内的所有成员默认拥有该文件的组权限。为什么要有所属组核心目的实现团队协作场景没有所属组有所属组3个同事需要共享一个项目文件只能逐个给每个人设权限建一个组把3人加进去一次性搞定新同事加入项目要重新给新人设权限直接把新人加进组自动获得权限有人离职要找到所有相关文件取消权限把人从组里移除权限自动失效3. 拥有者和所属组的区别是什么一句话区分拥有者是主人所属组是家人——主人只有一个但可以有很多家人。对比表维度拥有者 (User/Owner)所属组 (Group)身份文件的主人文件主人的亲友团数量只能有1个用户可以有多个用户代表性单个用户一群用户权限粒度最细个人专属中等团队共享修改命令chownchgrp4. 关于文件的相关问题用户只能更改自己的文件权限没有权限系统会拒绝我们访问在Centos下确定权限信息的时候用户角色确定只确定一次顺序是拥有者所属组othersroot用户不受权限约束可执行权限!文件可执行因为有些文件本身不可以执行。系统默认不允许我们把文件给别人想要给别人必须高权限任何用户不能进入其他用户的家目录
觉得有用,分享给同行:

为您的企业打造数字门面

稳重轻奢商务风格,端正雅致视觉,长效耐看不易过时。

立即咨询 →