Standardmäßig haben Dateien, die mit root accound erstellt wurden, folgende Berechtigungen:
-rw-r--r-- 1 root root 0 11月 17 23:25 rootfile.txt
Hier gehört die Datei zum Root-Benutzer und zur Root-Gruppe und kann von root gelesen und beschrieben werden, aber nur von anderen.
Der einfachste Ansatz wäre, nur chown
die Datei an den ursprünglichen Benutzer zurückzugeben.
chown username:group_name dummy.txt
Sie können eine $SUDO_USER
Variable verwenden, auf die nur zugegriffen werden kann , wenn sie sudo
aufgerufen wird.
chown "$SUDO_USER":"$SUDO_USER" dummy.txt
Wenn Sie das Skript als normaler Benutzer ausführen , wird das chown
Teil überhaupt nicht benötigt. Daher sollten Sie die Verwendung der if-Anweisung oder des &&
Tests in Betracht ziehen, um den Fall zu testen, in dem das Skript als root ausgeführt wird, und Folgendes tun:
#!/bin/bash
touch dummy.txt
[ $UID -eq 0 ] && chown "$SUDO_USER":"$SUDO_USER" dummy.txt
Der obige Ansatz wird empfohlen. Es gibt andere, z. B. chmod
zum Ändern der Lese-, Schreib- und Ausführungsberechtigungen für Benutzer und Gruppen, dies wird jedoch nicht empfohlen.
chown
undchmod
in Ihrem Skript verwenden, um den Besitz und die Berechtigungen wie gewünscht festzulegen.