아파치와 함께 제공되거나 이와 관련되어 항상 권한을 확인하는 명령이 있습니다. 따라서 권한이 있는 경우 /home/foo/bar/baz
, , 및 에 대한 권한이 무엇인지 알려줍니다 . 이 명령이 무엇인지 또는 이를 수행하는 다른 방법을 아는 사람이 있습니까? 명령은 기본적으로 매개변수로 시작하여 권한 문제가 있는지 확인할 수 있도록 권한이 무엇인지 알려줍니다.baz
bar
foo
home
/
답변1
여러분이 생각할 수 있는 유틸리티는 namei
명령입니다. 매뉴얼 페이지에 따르면:
Namei는 해당 인수를 모든 유형의 Unix 파일(기호 링크, 파일, 디렉터리 등)에 대한 경로 이름으로 사용합니다. 그런 다음 Namei는 끝점(파일, 디렉터리, 문자 장치 등)을 찾을 때까지 각 경로 이름을 따릅니다. 심볼릭 링크를 찾으면 링크를 표시하고 따라가기 시작하여 컨텍스트를 표시하기 위해 출력을 들여쓰기합니다.
원하는 출력은 다음을 통해 수신될 수 있습니다.
$ namei -l /usr/src/linux-headers-2.6.35-22/include/
f: /usr/src/linux-headers-2.6.35-22/include/
drwxr-xr-x root root /
drwxr-xr-x root root usr
drwxrwsr-x root src src
drwxr-xr-x root root linux-headers-2.6.35-22
drwxr-xr-x root root include
명령 namei
은리눅스 유틸리티-ng소프트웨어 패키지. 보다 매뉴얼 페이지자세한 내용은.
답변2
어떤 명령도 모르지만 스크립트를 작성하는 것은 쉽습니다.
#!/bin/bash
ARG=$1
while [[ "$ARG" != "." && "$ARG" != "/" ]]
do
ls -ld -- "$ARG"
ARG=`dirname -- "$ARG"`
done
예:
$ perms.sh /tmp/1/2/3/hello.txt
-rw-rw-r-- 1 user group 0 Jan 14 16:59 /tmp/1/2/3/hello.txt
drwxrwxr-x 2 user group 4096 Jan 14 16:59 /tmp/1/2/3
drwxrwxr-x 3 user group 4096 Jan 14 16:43 /tmp/1/2
drwxrwxr-x 3 user group 4096 Jan 14 16:43 /tmp/1
drwxrwxrwt 12 root root 4096 Jan 14 17:02 /tmp
답변3
당신이 찾고있는 명령은 다음과 같습니다.
namei -l `pwd`
/tmp/foo/bar에서 실행하면 다음 목록이 제공됩니다.
drwxr-xr-x root root /
drwxrwxrwt root root tmp
drwxr-xr-x user group foo
drwxr-xr-x user group bar
답변4
이것은 쉽게 선이 될 수 있습니다. 이는 재귀적이지 않으며 bash에서 비교적 빠르게 수행할 수 있는 방법입니다. 부르다비밀번호모든 루프에서 특별히 빠르지는 않으므로 가능하면 피하세요.
#!/bin/bash
if [ -n "$1" ]; then
echo "Usage: $0 [FILE]"
exit 1
fi
cd -P -- "$1"
IFS="/"
set -f # turn off globbing for the expansion of $PWD below
for dir in $PWD; do
stat -c "$PWD %A" .
cd ..
done
또 다른 옵션은 현재 디렉터리에 대한 코드 줄입니다.
(IFS="/"; set -f; for dir in $PWD; do stat -c "$PWD %A" .; cd ..; done)