사용자 파일의 유효 권한 테스트


24

특정 사용자에 대한 파일의 유효 권한을 테스트 할 수 있습니까?

나는 일반적으로 su user파일을 액세스 한 다음 파일에 액세스하지만 쉘이없는 사용자 (예 : 시스템 사용자)에서 이것을 테스트하고 싶습니다.

답변:


23

sudo명령은 -u옵션을 사용하여 특정 사용자로서 무엇이든 실행할 수 있습니다 . 쉘에 대해 걱정하는 대신 cat파일을 대상 사용자로 시도 하거나 실행하십시오.

$ sudo -u apache cat .ssh/authorized_keys 
cat: .ssh/authorized_keys: Permission denied

cat아마 최선의 선택은 아니지만 ... 큰 파일이나 이진 파일을 테스트하고 있습니다 ...
Alexis Wilke

24

나는 스크립트에서 사용하기에 편리한 것을 발견했다

 sudo -u <user> test -r <file-to-test> && ...

1
실제로 파일을 수정 / 생성하지 않고도 읽기 가능 (-r), 쓰기 가능 (-w) 및 실행 가능 (-x)을 테스트 할 수 있으므로 최선의 대답입니다. man test자세한 내용
Thomas

12
sudo -u <user> test -r <file-to-test>; echo $?

echo $?일부가 출력 테스트에서 종료 상태.

0작업이 성공 하면 출력이된다는 것을 기억하십시오 ! 또는 0이 아닌 경우 (예 : 1그렇지 않은 경우)

마찬가지로 토마스의 코멘트 @ @ user72025의 대답에 사용 man test처럼 더 작동 테스트를 얻기 위해 test -x, 테스트 실행 여부에 test -w쓰기 가능성에 대한 등


1
나에게 이것은 가장 유용한 답변입니다. user72025의 사람은 가까웠지만 결과가 무엇인지 전혀 몰랐습니다. 당신은 그것을 분명히했습니다. 감사. 투표.
inspirednz

6

su -s <shellname> <username>특정 쉘을 특정 사용자로 입력하는 데 사용할 수 있다는 것을 알았습니다 . 그런 다음 평소와 같이 파일 권한을 테스트 할 수 있습니다.

예 :

su -s /bin/bash Debian-exim
touch /etc/exim4/exim4.conf.template

매우 흥미로운 옵션입니다.
Alex
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.