Par défaut, les fichiers créés avec root root ont les autorisations suivantes:
-rw-r--r-- 1 root root 0 11月 17 23:25 rootfile.txt
Ce fichier appartient à l'utilisateur root et au groupe root, et est lisible et inscriptible par root, mais uniquement lisible par d'autres.
L'approche la plus simple serait de chown
renvoyer le fichier à l'utilisateur d'origine.
chown username:group_name dummy.txt
Vous pouvez utiliser une $SUDO_USER
variable accessible uniquement lorsqu'elle sudo
est appelée, comme ceci:
chown "$SUDO_USER":"$SUDO_USER" dummy.txt
Si vous exécutez le script en tant qu'utilisateur normal, la chown
partie n'est pas nécessaire du tout, vous pouvez donc envisager d'utiliser if-statement ou &&
test pour tester le cas où le script est exécuté en tant que root, et faire quelque chose comme suit:
#!/bin/bash
touch dummy.txt
[ $UID -eq 0 ] && chown "$SUDO_USER":"$SUDO_USER" dummy.txt
L'approche ci-dessus est recommandée. Il y en a d'autres, comme l'utilisation chmod
pour modifier les autorisations de lecture-écriture-exécution pour les utilisateurs et le groupe, mais ce n'est pas recommandé.
chown
etchmod
dans votre script pour définir la propriété et les autorisations comme vous le souhaitez.