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 chownprzywrócenie pliku do pierwotnego użytkownika.
chown username:group_name dummy.txt
Możesz użyć $SUDO_USERzmiennej, która jest dostępna tylko po sudowywołaniu, na przykład:
chown "$SUDO_USER":"$SUDO_USER" dummy.txt
Jeśli używasz skryptu jako zwykły użytkownik, ta chownczęść 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 chmoddo zmiany uprawnień do odczytu-zapisu-wykonania dla użytkowników i grupy, ale nie jest to zalecane.
chowniwchmodskrypcie, aby ustawić własność i uprawnienia zgodnie z potrzebami.