Odpowiedzi:
Uznałem, że wygodne w użyciu w skryptach jest coś takiego
sudo -u <user> test -r <file-to-test> && ...
man testpo 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, 0jeśli operacja się powiedzie! Lub niezerowa, np. 1Jeśli nie.
Podobnie jak komentarz @ Thomasa do odpowiedzi @ user72025, użyj, man testaby uzyskać więcej testów operacyjnych, takich jak test -xtest wykonywalności, test -wzapisywalnoś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
catprawdopodobnie nie jest najlepszym wyborem ... jeśli testujesz duży plik lub plik binarny ...