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
chmod ug+w,o-r filename

为所有人添加exec文件夹内所有文件的写权限和执行权限

1
chmod -R ugo+wx exec

八进制模式

这个应该是最熟悉的部分了,用了一万年的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
chmod 755 filenam

小结

八进制模式更适合在不知道原设置的情况下进行覆盖式操作,而符号模式则更适合在原有权限的基础上增加或删除

PS.

  1. 若用 chmod 4755 filename 可使此程序具有 root 的权限
  2. 参数说明:
  • –version : 显示版本
  • -c : 若该文件权限确实已经更改,才显示其更改动作
  • -f : 若该文件权限无法被更改也不要显示错误讯息
  • -v : 显示权限变更的详细资料
  • -R : 对目前目录下的所有文件与子目录进行相同的权限变更(即以递归的方式逐个变更)
  • –help : 显示辅助说明

2025年1月1日


chmod简述
https://qsbird.com/2025/01/01/post_4/
作者
Qsbird
发布于
2025年1月1日
许可协议