chmod简述
刚刚在虚拟机上装V2ray,对着文件执行了半天也没法执行,看了报错才想起来是因为没加权限
先来看看没加权限之前的文件(博客迁移图片暂缺)
很明显V2ray文件没有执行的权限,只有对于all的读写权限,但这时想单独加个执行权限却又想不起怎么加了,以往属实chmod 777
用习惯了,于是决定花点时间学习总结一下,看看对于文件权限这一部分有没有需要补齐的地方
符号模式
使用符号模式可以设置多个项目:who(用户类型),operator(操作符)和 permission(权限),翻译过来也就是:为谁–增加\减少\指定–什么权限,下面介绍各自的符号
用户:ugo
chmod的who部分分为用户、组、全体三种,在符号表示中各自对应ugo三个字母,具体如下
who | 用户类型 | 说明 |
---|---|---|
u | user | 文件所有者 |
g | group | 文件所有者所在组 |
o | others | 所有其他用户 |
a | all | 所有用户, 相当于 ugo |
运算符: | + | – |
Operator 说明
+
为指定的用户类型增加权限–
去除指定用户类型的权限=
设置指定用户权限的设置,即将用户类型的所有权限重新设置
权限: r w x
模式 | 名字 | 说明 |
---|---|---|
r | 读 | 设置为可读权限 |
w | 写 | 设置为可写权限 |
x | 执行权限 | 设置为可执行权限 |
X | 特殊执行权限 | 只有当文件为目录文件,或者其他类型的用户有可执行权限时,才将文件权限设置可执行 |
s | setuid/gid | 当文件被执行时,根据who参数指定的用户类型设置文件的setuid或者setgid权限 |
t | 粘贴位 | 设置粘贴位,只有超级用户可以设置该位,只有文件所有者u可以使用该位 |
说实话下面三个我既不熟悉也没有实践过,应该是相对冷门的选择
举个例子,用符号模式为用户和用户组增加写权限,为其他人删除读权限
1 |
|
为所有人添加exec文件夹内所有文件的写权限和执行权限
1 |
|
八进制模式
这个应该是最熟悉的部分了,用了一万年的chmod 777
就是这部分了,重温一下具体内容
八进制 | 符号表示 | 权限描述 |
---|---|---|
0 | — | 无权限 |
1 | –x | 仅执行权限 |
2 | -w- | 仅写入权限 |
3 | -wx | 写入和执行权限 |
4 | r– | 仅读取权限 |
5 | r-x | 读取和执行权限 |
6 | rw- | 读取和写入权限 |
7 | rwx | 读取、写入和执行权限 |
其实只要记住 ugo
rwx
421
的顺序就很容易了(三个数字按顺序分别对应所有者、用户组、all,rwx三种权限分别对应421三个数字)
举个例子,设置权限为所有者可读可写可执行,其他人可读可执行
1 |
|
小结
八进制模式更适合在不知道原设置的情况下进行覆盖式操作,而符号模式则更适合在原有权限的基础上增加或删除
PS.
- 若用 chmod 4755 filename 可使此程序具有 root 的权限
- 参数说明:
–version
: 显示版本-c
: 若该文件权限确实已经更改,才显示其更改动作-f
: 若该文件权限无法被更改也不要显示错误讯息-v
: 显示权限变更的详细资料-R
: 对目前目录下的所有文件与子目录进行相同的权限变更(即以递归的方式逐个变更)–help
: 显示辅助说明
2025年1月1日
chmod简述
https://qsbird.com/2025/01/01/post_4/