Risposte:
Il sudo
comando può eseguire qualsiasi cosa come un particolare utente con l' -u
opzione. Invece di preoccuparti delle shell, prova a cat
(o eseguire qualsiasi cosa) il tuo file come utente di destinazione:
$ sudo -u apache cat .ssh/authorized_keys
cat: .ssh/authorized_keys: Permission denied
Ho trovato conveniente usare qualcosa di simile negli script
sudo -u <user> test -r <file-to-test> && ...
man test
per maggiori dettagli
sudo -u <user> test -r <file-to-test>; echo $?
La echo $?
parte genererà lo stato di uscita dal test.
Ricorda qui che l'output sarà 0
se l'operazione ha avuto successo! O diverso da zero, ad esempio 1
, in caso contrario.
Come il commento di @ Thomas sulla risposta di @utente72025, usare man test
per ottenere più test operativi, come test -x
per testare eseguibilità, test -w
scrivibilità, ecc.
Ho scoperto che puoi usare su -s <shellname> <username>
per inserire una shell specifica come utente specifico. È quindi possibile testare le autorizzazioni dei file come al solito.
Per esempio:
su -s /bin/bash Debian-exim
touch /etc/exim4/exim4.conf.template
cat
probabilmente non è la scelta migliore ... se stai testando un file di grandi dimensioni o un file binario ...