현재 사용자에게 디렉토리에 대한 쓰기 권한이 있는지 확인


9

다음을 수행하여 디렉토리 소유자를 결정할 수 있음을 알고 있습니다.

ls -ld ~/foo | awk '{ print $3 }'

다음을 수행하여 현재 사용자와 비교할 수 있습니다.

if [[ $(ls -ld ~/foo | awk '{ print $3 }') == "$USER" ]] # or $(id -u -n ) instead of $USER
then
    echo "You are the owner"
else
    echo "You are NOT the owner"
fi

그러나 소유자가 아니더라도 쓰기 권한을 가질 수 있습니다. 이것을 어떻게 결정합니까?

답변:


20

나는 생각

if [ -w ~/foo ]; then ....

당신이 원하는 것을해야합니다.

또한 출력을 stat -c %U ~/foo구문 분석하는 것보다 소유자를 얻는 더 좋은 방법 ls입니다.


1
stat현대 리눅스 시스템에 고유은 다른 유닉스 다른 수있다 stat전혀 또는 없음을. ls를 파싱하는 것은 일반적으로 문제를위한 레시피 이지만, 세 번째 단어가 대부분 작동하는 것처럼 소유자를 파싱하는 것은 (나중에 문제가 발생합니다); 여전히 완벽하지는 않습니다 (일부 시스템은 사용자 이름에 공백을 허용합니다).
Gilles 'SO- 악한 중지'
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.