J'ai un script unix qui crée un file journal temporaire, par exemple tempfl.log
. Lorsque ce file est créé, il a la permission rw-r--r--
.
Il y a une ligne
chmod 0440 /etc/sudoers tempfl.log 2>&1
Mais quand le script est fait, l'autorisation change pour r--r--r--
mais il devrait être rw-r--r--
. Si je change la ligne pour
chmod 0644 /etc/sudoers tempfl.log
les permissions sont correctes pour tempfl.log
mais il jette des erreurs en disant
sudo: / usr / local / etc / sudoers est le mode 0644, devrait être 0440
Je ne comprends pas ce que fait sudoers et ce qui ne va pas.
Votre script change l'autorisation de 2 files, / etc / sudoers et tempfl.log. Divisez la command en deux lignes et vous devriez être bien.
Votre script fait exactement ce que vous lui dites de faire:
chmod 0440 /etc/sudoers tempfl.log
appliquera r--r-----
à ces deux files.
Vous ne devriez vraiment pas jouer avec le file sudoers
, sauf si vous écrivez des scripts d'administration et, même dans ce cas, les permissions doivent être laissées seules, car cela permet de sécuriser votre système. Le programme sudo
vérifie lui-même les permissions de son file de configuration et vous avertit (comme vous l'avez vu). Écoute le. Il sait évidemment mieux que toi 🙂
Etes-vous sûr de ne pas essayer d'exécuter certaines parties de votre script sous sudo
, comme dans:
sudo chmod 0440 tempfl.log 2>&1
Sinon, et si vous voulez vraiment modifier les deux files (mais avec des permissions différentes, utilisez deux commands distinctes:
chmod 0440 /etc/sudoers 2>&1 chmod 0644 tempfl.log 2>&1
Lorsque vous écrivez chmod 0440 /etc/sudoers tempfl.log
il change les permissions de /etc/sudoers
et tempfl.log
à la fois pour être 0440, ce qui est faux.
Lorsque vous écrivez chmod 0644 /etc/sudoers tempfl.log
cela change les permissions de /etc/sudoers
et tempfl.log
à la fois pour 0644, ce qui est faux.
Avez-vous besoin de changer les permissions sur /etc/sudoers
? Avez-vous réellement envie d'écrire chmod 0644 tempfl.log
?