从权限字符串看懂谁能访问
部署脚本里常见chmod 755,文件列表里却是rwxr-xr-x。两者描述的是同一组权限。先按所有者、所属组、其他用户分成三段,再核对每一类需要哪些操作,比直接套用一个数字更清楚。
可以勾选读、写、执行,也可以输入3位或4位八进制数。粘贴ls -l时只保留权限字段,不要带所有者名称、时间和文件名。填好目标路径后复制命令;整个计算过程不连接服务器。
4、2、1怎样组成755?
读取是4,写入是2,执行是1;未勾选的位计0。rwx为7,r-x为5,r--为4,因此rwxr-xr--对应754。数字顺序固定为所有者、组、其他用户,不是把三类权限加在一起。
若带有特殊权限,最前面再加一位:setuid为4,setgid为2,sticky为1。4755表示755加上setuid;计算结果中的0755与755普通权限相同。
| 八进制值 | rwx | 权限 |
|---|---|---|
0 | --- | 无权限 |
1 | --x | 执行 |
2 | -w- | 写入 |
3 | -wx | 写入 + 执行 |
4 | r-- | 读取 |
5 | r-x | 读取 + 执行 |
6 | rw- | 读取 + 写入 |
7 | rwx | 读取 + 写入 + 执行 |
目录的执行权限,指的是搜索和穿过
普通文件的读取、写入和执行针对文件内容及运行。目录的读取用于列出名称,执行用于搜索或穿过目录;更改目录项通常需要写入和搜索权限。给目录设置644可能导致无法访问其中的路径。
删除文件主要受父目录权限及其他限制影响,不是只看文件有没有写权限。ACL、挂载选项和系统安全策略也可能影响结果,因此计算器不能替代实际访问诊断。
不要忽略大写S、T和目录特殊位
s与t表示特殊位和相应执行位同时存在;S与T表示仅有特殊位,没有对应执行位。setuid/setgid对可执行文件的影响受系统规则限制;Linux目录的setgid可用于组继承,sticky限制目录项的删除和重命名。
GNU chmod给目录应用不超过4位的数字模式时,可能保留原有setuid/setgid。要明确清除,可按GNU文档使用chmod 00755 -- 'directory'这样的形式。计算器的输入接受3位或4位权限值,不模拟文件系统原有状态。
常用权限值怎么选?
| 八进制值 | rwx | 权限明细 |
|---|---|---|
644 | rw-r--r-- | 所有者可读写,组和其他用户只读;不含执行位。 |
755 | rwxr-xr-x | 所有者可读写执行,组和其他用户可读及执行/搜索。 |
600 | rw------- | 只有所有者具有普通读写权限,适合限制文件可读范围。 |
700 | rwx------ | 所有者可列出、修改和搜索目录,其他两类无权限。 |
2775 | rwxrwsr-x | 组可协作写入;Linux目录上的setgid可使新目录项继承组。 |
1777 | rwxrwxrwt | 共享目录开放读写搜索,sticky进一步限制删除和重命名。 |
chmod 644 -- 'report.txt'
chmod 755 -- 'deploy.sh'
chmod 700 -- 'private-directory'权限计算常见问题
755和644有什么区别?
755比644多出三类用户的执行位。目录需要搜索权限,可执行脚本也需要合适的执行权限;普通数据文件通常无需执行位,应按用途选择。
可以粘贴drwxr-xr-x吗?
可以。开头的d被当作文件类型标记忽略,结果为755;这不会把文件改成目录。尾部的ACL标记及列表其他字段需要去掉。
提示Permission denied,直接设777行吗?
777给三类用户读、写和执行,可能超出实际需要。先检查所有者、适用权限类、父目录搜索权限和额外访问控制,再决定修改哪些位。
支持u+x这样的写法吗?
输入支持八进制或权限字符串,不解析相对chmod表达式。若只想给所有者增加执行位,可以自行使用u+x;数字模式则会替换普通权限位。
会修改服务器文件吗?
不会。只在浏览器里计算并生成单个路径的命令,不执行chmod,也不添加递归参数。umask控制新建对象的权限屏蔽,与修改已有权限不是同一项计算。
