comprendre les sudoers

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 ?