Linux chown-Befehl
Linux chown (englische Vollschreibweise:change owner) Der Befehl wird verwendet, um den Dateieigentümer und die zugehörige Gruppe der Datei festzulegen.
Linux/Unix ist ein Mehrbenutzer- und Multitasking-Betriebssystem, und alle Dateien haben einen Eigentümer. Verwenden Sie chown, um den Eigentümer angegebener Dateien auf einen angegebenen Benutzer oder eine angegebene Gruppe zu ändern. Der Benutzer kann ein Benutzername oder eine Benutzer-ID sein, und die Gruppe kann ein Gruppenname oder eine Gruppen-ID sein. Die Dateien sind eine durch Leerzeichen getrennte Liste von Dateien, deren Berechtigungen geändert werden sollen, und Wildcards werden unterstützt.
chown erfordert Superuser-root-Rechte, um diesen Befehl auszuführen. Nicht-Superuser, die die zugehörige Gruppe festlegen müssen, müssen möglicherweisechgrp verwendenBefehl.
Nutzungsberechtigungen : root
Syntax
chown [选项] 所有者[:组] 文件... chown [选项] --reference=参考文件 文件...
Optionen :
- -R, --recursive: Ändert rekursiv den Eigentümer aller Dateien in Verzeichnissen und deren Unterverzeichnissen
- -v, --verbose: Detaillierte Vorgangsinformationen anzeigen
- -c, --changes: Nur Dateien anzeigen, die tatsächlich geändert wurden
- -f, --silent, --quiet: Fehlermeldungen unterdrücken
- --reference=file: Eigentümer- und Gruppeneinstellungen der Referenzdatei verwenden
- -h, --no-dereference: Betrifft symbolische Links selbst, nicht die Dateien, auf die sie verweisen
- --from=current owner: Nur ändern, wenn der aktuelle Besitzer übereinstimmt
Grundlegendes Nutzungsformat
1. Nur den Besitzer ändern
chown username filename chown john file.txt
2. Sowohl den Besitzer als auch die Gruppe ändern
chown username:groupname filename chown john:developers script.sh
3. Nur die Gruppe ändern (Besitzer leer lassen)
chown :groupname filename chown :staff document.txt
4. Numerische IDs verwenden
chown 1000:1000 filename # 用户ID 1000,组ID 1000 chown 1001 filename # 只更改用户ID
Beispiele
Setzen Sie den Besitzer von /var/run/httpd.pid auf root:
chown root /var/run/httpd.pid
Setzen Sie den Besitzer von file1.txt auf example und die Gruppe auf examplegroup:
chown example:examplegroup file1.txt
Setzen Sie den Besitzer aller Dateien und Unterverzeichnisse im aktuellen Verzeichnis auf example und die Gruppe auf examplegroup:
chown -R example:examplegroup *
Setzen Sie die zugehörige Gruppe von /home/example auf 512 (Gruppen-ID), ohne den Besitzer zu ändern:
chown :512 /home/example
Praktische Anwendungsbeispiele
1. Dateiverwaltung für Webserver
# 将网站文件所有权给web服务器 chown -R www-data:www-data /var/www/html/ # 设置上传目录权限 chown -R apache:apache /var/www/uploads/ chmod -R 755 /var/www/uploads/
2. Dateiverwaltung für Benutzer
# 将用户目录所有权返回给用户 chown -R john:john /home/john/ # 新建用户后设置home目录 chown -R newuser:newuser /home/newuser/
3. Systemdienstdateien
#设置服务日志文件所有者 chown syslog:adm /var/log/application.log # 设置数据库文件所有者 chown -R mysql:mysql /var/lib/mysql/
4. Berechtigungen für Entwicklungsprojekte
# 设置项目文件所有者为开发团队 chown -R developer:developers /home/projects/webapp/ # 设置部署目录权限 chown -R deploy:deploy /opt/application/
Tipps für die fortgeschrittene Nutzung
1. Batch-Operationen
# 使用find命令批量更改
find /home/user -name "*.sh" -exec chown user:staff {} \;
# 只更改特定类型文件的所有者
find /var/www -type f -name "*.php" -exec chown www-data:www-data {} \;
2. Bedingte Änderungen
# 只有当前所有者是root时才更改 chown --from=root john /home/john/file.txt # 基于参考文件设置 chown --reference=/etc/passwd /etc/shadow
3. Umgang mit symbolischen Links
# 更改符号链接本身 chown -h john:staff /home/user/link # 更改符号链接指向的文件 chown john:staff /home/user/linkAndere Erweiterungen
Linux-Befehlssammlung