Odpowiedzi:
Uznałem, że wygodne w użyciu w skryptach jest coś takiego
sudo -u <user> test -r <file-to-test> && ...
man test
po więcej szczegółów
sudo -u <user> test -r <file-to-test>; echo $?
echo $?
Wyjście część będzie kod wyjścia z testu.
Pamiętaj tylko, że wynik będzie, 0
jeśli operacja się powiedzie! Lub niezerowa, np. 1
Jeśli nie.
Podobnie jak komentarz @ Thomasa do odpowiedzi @ user72025, użyj, man test
aby uzyskać więcej testów operacyjnych, takich jak test -x
test wykonywalności, test -w
zapisywalności itp.
Odkryłem, że możesz użyć, su -s <shellname> <username>
aby wprowadzić określoną powłokę jako określony użytkownik. Następnie możesz jak zwykle przetestować uprawnienia do plików.
Na przykład:
su -s /bin/bash Debian-exim
touch /etc/exim4/exim4.conf.template
cat
prawdopodobnie nie jest najlepszym wyborem ... jeśli testujesz duży plik lub plik binarny ...