English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Linux chmod 命令

Linux 命令大全

Linux chmod(英文全拼:change mode)命令是控制用户对文件的权限的命令

Linux/Unix 的文件调用权限分为三级 : 文件所有者(Owner)、用户组(Group)、其它用户(Other Users)。

只有文件所有者和超级用户可以修改文件或目录的权限。可以使用绝对模式(八进制数字模式),符号模式指定文件的权限。

使用权限 : 所有使用者

语法

chmod [-cfvR] [--help] [--version] mode file...

参数说明

mode : 权限设定字串,格式如下 :

[ugoa...][[+-=][rwxX]...][,...]

其中:

  • u 表示该文件的拥有者,g 表示与该文件的拥有者属于同一个群体(group)者,o 表示其他以外的人,a 表示这三者皆是。

  • + 表示增加权限、- 表示取消权限、= 表示唯一设定权限。

  • r 表示可读取,w 表示可写入,x 表示可执行,X 表示只有当该文件是个子目录或者该文件已经被设定过为可执行。

其他参数说明:

  • -c : 若该文件权限确实已经更改,才显示其更改动作

  • -f : 若该文件权限无法被更改也不要显示错误讯息

  • -v : 显示权限变更的详细资料

  • -R : 对目前目录下的所有文件与子目录进行相同的权限变更(即以递归的方式逐个变更)

  • --help : 显示辅助说明

  • --version : 显示版本

符号模式

使用符号模式可以设置多个项目:who(用户类型),operator(操作符)和 permission(权限),每个项目的设置可以用逗号隔开。命令 chmod 将修改 who 指定的用户类型对文件的访问权限,用户类型由一个或者多个字母在 who 的位置来说明,如 who 的符号模式表所示:

who用户类型说明
uuser文件所有者
ggroup文件所有者所在组
oothers所有其他用户
aall所用用户,相当于 ugo

operator 的符号模式表:

Operator说明
+增加指定用户类型的权限
-Entfernt die Berechtigungen eines bestimmten Benutzer-Typs
=Setzt die Berechtigungen eines bestimmten Benutzers, d.h. alle Berechtigungen des Benutzer-Typs werden neu eingestellt

Symbolische Berechtigungsmodustabelle von permission:

ModusName说明
rLesenAuf lesbare Berechtigungen setzen
wSchreibenAuf schreibbare Berechtigungen setzen
xAusführungsrechteAuf ausführbare Berechtigungen setzen
XSpezielle AusführungsrechteNur wenn die Datei ein Verzeichnisdatei ist oder andere Benutzer-Typen ausführbare Berechtigungen haben, werden die Dateiberechtigungen auf ausführbar gesetzt
ssetuid/gidWenn eine Datei ausgeführt wird, werden die setuid oder setgid-Berechtigungen der Datei basierend auf dem durch den who-Parameter angegebenen Benutzer-Typ gesetzt
tKlebstellenbitSetzen des Klebstellenbits, nur Superuser können dieses Bit setzen, und nur der Dateibesitzer u kann dieses Bit verwenden

Oktalnotation

chmod-Befehl kann mit oktalen Zahlen Berechtigungen spezifizieren. Die Berechtigungsbits von Dateien oder Verzeichnissen werden durch9Berechtigungsbits kontrolliert, wobei每组 drei Bits sind, sie sind die Lesen, Schreiben und Ausführen für den Dateieigentümer (User), die Lesen, Schreiben und Ausführen für die Benutzergruppe (Group) und die Lesen, Schreiben und Ausführen für andere Benutzer (Other). Historisch wurden die Dateiberechtigungen in einem Bitmasken gespeichert, wobei die im Masken指定的Bit gesetzt sind1, um anzuzeigen, dass eine Klasse die entsprechenden Prioritäten hat.

#BerechtigungenrwxBinär
7Lesen + Schreiben + Ausführenrwx111
6Lesen + Schreibenrw-110
5Lesen + Ausführenr-x101
4Nur Lesenr--100
3Schreiben + Ausführen-wx011
2Nur schreiben-w-010
1Nur ausführen--x001
0Keine---000

Zum Beispiel, 765 Wird so ausgelegt:

  • Die Berechtigungen des Eigentümers werden durch Zahlen dargestellt: Die Summe der drei Berechtigungsbits des Eigentümers. Zum Beispiel rwx, das ist 4+2+1 , sollte sein 7。

  • Die Berechtigungen der Benutzergruppe werden durch Zahlen dargestellt: Die Summe der Berechtigungsbits der Gruppe. Zum Beispiel rw- , das ist 4+2+0, sollte sein 6。

  • Die Berechtigungsnummern für andere Benutzer: Die Summe der Zahlen der Berechtigungsbits von anderen Benutzern. Zum Beispiel r-x, das ist 4+0+1 , sollte sein 5。

Online-Beispiel

Setzt die Berechtigungen der Datei file1.txt so einstellen, dass jeder sie lesen kann:

chmod ugo+r file1.txt

Setzt die Berechtigungen der Datei file1.txt so einstellen, dass jeder sie lesen kann:

chmod a+r file1.txt

Setzt die Berechtigungen der Datei file1.txt und file2.txt so einstellen, dass der Dateibesitzer und die Gruppe, der er angehört, schreiben können, aber andere nicht schreiben können:

chmod ug+w,o-w file1.txt file2.txt

Für ex1.py Datei dem Besitzer hinzufügen, um ausführbare Berechtigungen zu erhalten:

chmod u+x ex1.py

Setzt alle Dateien und Unterverzeichnisse im aktuellen Verzeichnis so, dass jeder sie lesen kann:

chmod -R a+r *

Außerdem kann chmod auch mit Zahlen Berechtigungen darstellen, wie z.B.:

chmod 777 file

Der Syntax ist:

chmod abc file

Dabei sind a, b, c jede eine Zahl und stellen die Berechtigungen von User, Group und Other dar.

r =4, w =2, x =1

  • Um rwx-Eigenschaft zu setzen 4+2+1=7;

  • Um rw zu setzen- Eigenschaft zu setzen 4+2=6;

  • Um zu r-x 属性则 4+1=5。

chmod a=rwx file

chmod 777 file

效果相同

chmod ug=rwx,o=x file

chmod 771 file

效果相同

若用 chmod 4755 filename 可使此程序具有 root 的权限。

更多说明

命令说明
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/

Linux 命令大全