共计 2407 个字符,预计需要花费 7 分钟才能阅读完成。
chmod 命令用于扭转 linux 系统文件或目录的拜访权限。用它管制文件或目录的拜访权限。该命令有两种用法。一种是蕴含字母和操作符表达式的文字设定法;另一种是蕴含数字的数字设定法。
Linux 零碎中的每个文件和目录都有拜访许可权限,用它来确定谁能够通过何种形式对文件和目录进行拜访和操作。
文件或目录的拜访权限分为只读,只写和可执行三种。以文件为例,只读权限示意只容许读其内容,而禁止对其做任何的更改操作。可执行权限示意容许将该文件作为一个程序执行。文件被创立时,文件所有者主动领有对该文件的读、写和可执行权限,以便于对文件的浏览和批改。用户也可依据须要把拜访权限设置为须要的任何组合。
有三种不同类型的用户可对文件或目录进行拜访:文件所有者,同组用户、其余用户。所有者个别是文件的创建者。所有者能够容许同组用户有权拜访文件,还能够将文件的拜访权限赋予零碎中的其余用户。在这种状况下,零碎中每一位用户都能拜访该用户领有的文件或目录。
每一文件或目录的拜访权限都有三组,每组用三位示意,别离为文件属主的读、写和执行权限;与属主同组的用户的读、写和执行权限;零碎中其余用户的读、写和执行权限。当用 ls - l 命令显示文件或目录的详细信息时,最右边的一列为文件的拜访权限。
命令格局
> chmod [-cfvR] [--help] [--version] mode file...
mode 参数
[ugoa...][[+-=][rwxX]...][,...]
或者数字权限777
,755
u
示意该文件的拥有者,g
示意与该文件的拥有者属于同一个群体 (group) 者,o
示意其余以外的人,a 示意这三者皆是。+
示意减少权限、-
示意勾销权限、=
示意惟一设定权限。r
示意可读取,w
示意可写入,x
示意可执行,X
示意只有当该文件是个子目录或者该文件曾经被设定过为可执行。
罕用参数
- -c : 若该文件权限的确曾经更改,才显示其更改动作
- -f : 若该文件权限无奈被更改也不要显示谬误讯息
- -v : 显示权限变更的详细资料
- -R : 对目前目录下的所有文件与子目录进行雷同的权限变更(即以递归的形式一一变更)
- –help : 显示辅助阐明
- –version : 显示版本
符号模式
chmod who operator permission file
如chmod u+x rumenz.txt
who(用户类型)
who | 用户类型 | 阐明 |
---|---|---|
u | user | 文件所有者 |
g | group | 文件所有者所在组 |
o | others | 所有其余用户 |
a | all | 所用用户, 相当于 ugo |
operator(符号模式表)
Operator | 阐明 |
---|---|
+ | 为指定的用户类型减少权限 |
– | 去除指定用户类型的权限 |
= | 设置指定用户权限的设置,行将用户类型的所有权限从新设置 |
permission(权限)
模式 | 名字 | 阐明 |
---|---|---|
r | 读 | 设置为可读权限 |
w | 写 | 设置为可写权限 |
x | 执行权限 | 设置为可执行权限 |
X | 非凡执行权限 | 只有当文件为目录文件,或者其余类型的用户有可执行权限时,才将文件权限设置可执行 |
s | setuid/gid | 当文件被执行时,依据 who 参数指定的用户类型设置文件的 setuid 或者 setgid 权限 |
t | 粘贴位 | 设置粘贴位,只有超级用户能够设置该位,只有文件所有者 u 能够应用该位 |
数字权限(八进制)
chmod 命令能够应用八进制数来指定权限。文件或目录的权限位是由 9 个权限位来管制,每三位为一组,它们别离是文件所有者(User)的读、写、执行,用户组(Group)的读、写、执行以及其它用户(Other)的读、写、执行。历史上,文件权限被放在一个比特掩码中,掩码中指定的比特位设为 1,用来阐明一个类具备相应的优先级。
\# | 权限 | rwx | 二进制 |
---|---|---|---|
7 | 读 + 写 + 执行 | rwx | 111 |
6 | 读 + 写 | rw- | 110 |
5 | 读 + 执行 | r-x | 101 |
4 | 只读 | r– | 100 |
3 | 写 + 执行 | -wx | 011 |
2 | 只写 | -w- | 010 |
1 | 只执行 | –x | 001 |
0 | 无 | — | 000 |
常见的数字权限
- 400 -r——– 拥有者可能读,其余任何人不能进行任何操作;
- 644 -rw-r–r– 拥有者都可能读,但只有拥有者能够编辑;
- 660 -rw-rw—- 拥有者和组用户都可读和写,其他人不能进行任何操作;
- 664 -rw-rw-r– 所有人都可读,但只有拥有者和组用户可编辑;
- 700 -rwx—— 拥有者可能读、写和执行,其余用户不能任何操作;
- 744 -rwxr–r– 所有人都能读,但只有拥有者能力编辑和执行;
- 755 -rwxr-xr-x 所有人都能读和执行,但只有拥有者能力编辑;
- 777 -rwxrwxrwx 所有人都能读、写和执行(该设置通常不是好想法)。
chmod 实例
命令 | 阐明 |
---|---|
chmod a+r file | 给 file 的所有用户减少读权限 |
chmod a-x file | 删除 file 的所有用户的执行权限 |
chmod a+rw file | 给 file 的所有用户减少读写权限 |
chmod +rwx file | 给 file 的所有用户减少读写执行权限 |
chmod u=rw,go= file | 对 file 的所有者设置读写权限,清空该用户组和其余用户对 file 的所有权限(空格代表无权限) |
chmod -R u+r,go-r docs | 对目录 docs 和其子目录层次结构中的所有文件给用户减少读权限,而对用户组和其余用户删除读权限 |
chmod 664 file | 对 file 的所有者和用户组设置读写权限, 为其其余用户设置读权限 |
chmod 0755 file | 相当于 u =rwx(4+2+1),go=rx(4+1&4+1)。0 没有非凡模式。 |
chmod 4755 file | 4 设置了设置用户 ID 位,剩下的相当于 u =rwx(4+2+1),go=rx(4+1&4+1)。 |
find path/ -type d -exec chmod a-x {} \; | 删除可执行权限对 path/ 以及其所有的目录(不包含文件)的所有用户,应用 ’-type f’ 匹配文件 |
find path/ -type d -exec chmod a+x {} \; | 容许所有用户浏览或通过目录 path/ |
原文链接:https://rumenz.com/rumenbiji/…
微信公众号: 入门小站