Tester les autorisations effectives du fichier pour l'utilisateur


24

Est-il possible de tester les autorisations effectives d'un fichier pour un utilisateur spécifique?

Normalement, je fais cela en su useraccédant au fichier, mais je veux maintenant le tester sur un utilisateur sans shell (c'est-à-dire un utilisateur système)

Réponses:


23

La sudocommande peut exécuter n'importe quoi en tant qu'utilisateur particulier avec l' -uoption. Au lieu de vous soucier des shells, essayez simplement cat(ou exécutez, peu importe) votre fichier en tant qu'utilisateur cible:

$ sudo -u apache cat .ssh/authorized_keys 
cat: .ssh/authorized_keys: Permission denied

catn'est probablement pas le meilleur choix ... si vous testez un gros fichier ou un fichier binaire ...
Alexis Wilke

24

J'ai trouvé pratique à utiliser dans les scripts quelque chose comme

 sudo -u <user> test -r <file-to-test> && ...

1
meilleure réponse, car vous pouvez tester la lecture (-r), l'écriture (-w) et l'exécutable (-x) sans réellement modifier / créer le fichier. man testpour plus de détails
Thomas

12
sudo -u <user> test -r <file-to-test>; echo $?

La echo $?pièce affichera l'état de sortie du test.

N'oubliez pas ici que la sortie se fera 0si l'opération a réussi! Ou différent de zéro, par exemple 1, sinon.

Comme le commentaire de @ Thomas sur la réponse de @ user72025, utilisez man testpour obtenir plus de tests de fonctionnement, comme test -xpour tester l'exécutabilité, l' test -wécriture, etc.


1
Pour moi, c'est la réponse la plus utile. Celui de user72025 était proche, mais je n'avais aucune idée du résultat. Vous l'avez dit clairement. Merci. Voter.
inspirednz

6

J'ai trouvé que vous pouvez utiliser su -s <shellname> <username>pour entrer un shell spécifique en tant qu'utilisateur spécifique. Vous pouvez ensuite tester les autorisations de fichier comme d'habitude.

Par exemple:

su -s /bin/bash Debian-exim
touch /etc/exim4/exim4.conf.template

Option très intéressante.
Alex
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.