Testen Sie die effektiven Berechtigungen der Datei für den Benutzer


24

Ist es möglich, die effektiven Berechtigungen einer Datei für einen bestimmten Benutzer zu testen?

Normalerweise mache ich das su userund greife dann auf die Datei zu, aber ich möchte dies jetzt auf einem Benutzer ohne Shell (dh einem Systembenutzer) testen.

Antworten:


23

Der sudoBefehl kann alles als ein bestimmten Benutzer mit der ausführen -uOption. Anstatt sich Gedanken über Shells zu machen, versuchen Sie einfach cat, Ihre Datei als Zielbenutzer auszuführen:

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

catist wahrscheinlich nicht die beste Wahl ... Sie testen eine große Datei oder eine Binärdatei ...
Alexis Wilke

24

Ich fand es praktisch, in Skripten so etwas wie zu verwenden

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

1
beste Antwort, da Sie auf lesbare (-r), beschreibbare (-w) und ausführbare (-x) Dateien testen können, ohne die Datei tatsächlich zu ändern / zu erstellen. man testFür weitere Informationen
Thomas

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

Das echo $?Teil gibt den Ausgangsstatus des Tests aus.

Denken Sie daran, dass die Ausgabe erfolgt, 0wenn die Operation erfolgreich war! Oder ungleich Null, z 1. B. wenn nicht.

Verwenden Sie @ Thomas 'Kommentar zur Antwort von @ user72025, man testum mehr Operationstests test -xzu erhalten, um die Ausführbarkeit, die test -wBeschreibbarkeit usw. zu testen .


1
Für mich ist dies die hilfreichste Antwort. Das von user72025 war knapp, aber ich hatte keine Ahnung, was das Ergebnis war. Sie haben das klargestellt. Vielen Dank. Voting up.
Inspirednz

6

Ich habe festgestellt, dass Sie su -s <shellname> <username>eine bestimmte Shell als bestimmten Benutzer eingeben können . Anschließend können Sie die Dateiberechtigungen wie gewohnt testen.

Z.B:

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

Sehr interessante Option.
Alex
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.