English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
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 | 用户类型 | 说明 |
---|---|---|
u | user | 文件所有者 |
g | group | 文件所有者所在组 |
o | others | 所有其他用户 |
a | all | 所用用户,相当于 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:
Modus | Name | 说明 |
---|---|---|
r | Lesen | Auf lesbare Berechtigungen setzen |
w | Schreiben | Auf schreibbare Berechtigungen setzen |
x | Ausführungsrechte | Auf ausführbare Berechtigungen setzen |
X | Spezielle Ausführungsrechte | Nur wenn die Datei ein Verzeichnisdatei ist oder andere Benutzer-Typen ausführbare Berechtigungen haben, werden die Dateiberechtigungen auf ausführbar gesetzt |
s | setuid/gid | Wenn eine Datei ausgeführt wird, werden die setuid oder setgid-Berechtigungen der Datei basierend auf dem durch den who-Parameter angegebenen Benutzer-Typ gesetzt |
t | Klebstellenbit | Setzen des Klebstellenbits, nur Superuser können dieses Bit setzen, und nur der Dateibesitzer u kann dieses Bit verwenden |
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.
# | Berechtigungen | rwx | Binär |
---|---|---|---|
7 | Lesen + Schreiben + Ausführen | rwx | 111 |
6 | Lesen + Schreiben | rw- | 110 |
5 | Lesen + Ausführen | r-x | 101 |
4 | Nur Lesen | r-- | 100 |
3 | Schreiben + Ausführen | -wx | 011 |
2 | Nur schreiben | -w- | 010 |
1 | Nur ausführen | --x | 001 |
0 | Keine | --- | 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。
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.
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 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/ |