Domyślnie pliki tworzone przy użyciu roota mają takie uprawnienia:
-rw-r--r-- 1 root root 0 11月 17 23:25 rootfile.txt
Plik ten należy do użytkownika root i grupy root i jest czytelny i zapisywany przez root, ale tylko dla innych.
Najprostszym podejściem byłoby po prostu chown
przywrócenie pliku do pierwotnego użytkownika.
chown username:group_name dummy.txt
Możesz użyć $SUDO_USER
zmiennej, która jest dostępna tylko po sudo
wywołaniu, na przykład:
chown "$SUDO_USER":"$SUDO_USER" dummy.txt
Jeśli używasz skryptu jako zwykły użytkownik, ta chown
część nie jest wcale potrzebna, więc możesz rozważyć użycie instrukcji if lub &&
test do przetestowania przypadku, gdy skrypt jest uruchamiany jako root, i wykonaj następujące czynności:
#!/bin/bash
touch dummy.txt
[ $UID -eq 0 ] && chown "$SUDO_USER":"$SUDO_USER" dummy.txt
Powyższe jest zalecanym podejściem. Są też inne, na przykład używanie chmod
do zmiany uprawnień do odczytu-zapisu-wykonania dla użytkowników i grupy, ale nie jest to zalecane.
chown
iwchmod
skrypcie, aby ustawić własność i uprawnienia zgodnie z potrzebami.