Risposte:
Il sudocomando può eseguire qualsiasi cosa come un particolare utente con l' -uopzione. 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 testper 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à 0se 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 testper ottenere più test operativi, come test -xper testare eseguibilità, test -wscrivibilità, 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
catprobabilmente non è la scelta migliore ... se stai testando un file di grandi dimensioni o un file binario ...