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用户类型阐明
uuser文件所有者
ggroup文件所有者所在组
oothers所有其余用户
aall所用用户, 相当于 ugo

operator(符号模式表)

Operator阐明
+为指定的用户类型减少权限
-去除指定用户类型的权限
=设置指定用户权限的设置,行将用户类型的所有权限从新设置

permission(权限)

模式名字阐明
r设置为可读权限
w设置为可写权限
x执行权限设置为可执行权限
X非凡执行权限只有当文件为目录文件,或者其余类型的用户有可执行权限时,才将文件权限设置可执行
ssetuid/gid当文件被执行时,依据who参数指定的用户类型设置文件的setuid或者setgid权限
t粘贴位设置粘贴位,只有超级用户能够设置该位,只有文件所有者u能够应用该位

数字权限(八进制)

chmod命令能够应用八进制数来指定权限。文件或目录的权限位是由9个权限位来管制,每三位为一组,它们别离是文件所有者(User)的读、写、执行,用户组(Group)的读、写、执行以及其它用户(Other)的读、写、执行。历史上,文件权限被放在一个比特掩码中,掩码中指定的比特位设为1,用来阐明一个类具备相应的优先级。
\#权限rwx二进制
7读+写+执行rwx111
6读+写rw-110
5读+执行r-x101
4只读r--100
3写+执行-wx011
2只写-w-010
1只执行--x001
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 file4设置了设置用户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/...
微信公众号:入门小站