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 chowndie Datei an den ursprünglichen Benutzer zurückzugeben.
chown username:group_name dummy.txt
Sie können eine $SUDO_USERVariable verwenden, auf die nur zugegriffen werden kann , wenn sie sudoaufgerufen wird.
chown "$SUDO_USER":"$SUDO_USER" dummy.txt
Wenn Sie das Skript als normaler Benutzer ausführen , wird das chownTeil ü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. chmodzum Ändern der Lese-, Schreib- und Ausführungsberechtigungen für Benutzer und Gruppen, dies wird jedoch nicht empfohlen.
chownundchmodin Ihrem Skript verwenden, um den Besitz und die Berechtigungen wie gewünscht festzulegen.