파일에 대한 특정 사용자의 유효 사용 권한을 테스트할 수 있습니까?
일반적으로 su user
파일에 액세스하여 이 작업을 수행하지만 이제는 셸이 없는 사용자(예: 시스템 사용자)에서 테스트하고 싶습니다.
답변1
다음과 같은 스크립트에서 사용하는 것이 편리하다고 생각합니다.
sudo -u <user> test -r <file-to-test> && ...
답변2
이 sudo
명령은 이 옵션을 사용하여 특정 사용자로서 무엇이든 실행할 수 있습니다 -u
. 쉘에 대해 걱정하지 마십시오. cat
대상 사용자로서 파일을 시도(또는 실행)하십시오.
$ sudo -u apache cat .ssh/authorized_keys
cat: .ssh/authorized_keys: Permission denied
답변3
sudo -u <user> test -r <file-to-test>; echo $?
이 echo $?
섹션에서는 테스트의 종료 상태를 출력합니다.
여기서 출력은 다음과 같습니다 0
. 작업이 다음과 같은지 기억 하십시오.성공적인!또는 0이 아닌 경우(예: 0이 1
아닌 경우)입니다.
좋다@토마스의 코멘트실행 가능성, 쓰기 가능성 테스트 등과 man test
같은 더 많은 운영 테스트를 얻기 위한 @ user72025의 답변과 관련하여test -x
test -w
답변4
su -s <shellname> <username>
특정 사용자로 특정 쉘에 들어가는 데 사용할 수 있다는 것을 알았습니다 . 그런 다음 평소처럼 파일 권한을 테스트할 수 있습니다.
예를 들어:
su -s /bin/bash Debian-exim
touch /etc/exim4/exim4.conf.template