刚刚在虚拟机上装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可以使用该位 |
说实话下面三个我既不熟悉也没有实践过,应该是相对冷门的选择
举个例子,用符号模式为用户和用户组增加写权限,为其他人删除读权限
chmod ug+w,o-r filename
为所有人添加exec文件夹内所有文件的写权限和执行权限
chmod -R ugo+wx exec
八进制模式 #
这个应该是最熟悉的部分了,用了一万年的chmod 777就是这部分了,重温一下具体内容
ugo rwx 421的顺序就很容易了(三个数字按顺序分别对应所有者、用户组、all,rwx三种权限分别对应421三个数字)
举个例子,设置权限为所有者可读可写可执行,其他人可读可执行
chmod 755 filenam
小结 #
八进制模式更适合在不知道原设置的情况下进行覆盖式操作,而符号模式则更适合在原有权限的基础上增加或删除
PS. #
- 若用 chmod 4755 filename 可使此程序具有 root 的权限
- 参数说明:
–version: 显示版本-c: 若该文件权限确实已经更改,才显示其更改动作-f: 若该文件权限无法被更改也不要显示错误讯息-v: 显示权限变更的详细资料-R: 对目前目录下的所有文件与子目录进行相同的权限变更(即以递归的方式逐个变更)–help: 显示辅助说明
2025年1月1日