전체 디렉토리 트리의 권한 / 소유자보기


27

"XXX / home / user / dir / child / file"과 같은 것을 기억하고 소유자 및 / 또는 권한을 반환했습니다.

/home
/home/user
/home/user/dir
/home/user/child
/home/user/child/file

그러나 나는이 명령이 무엇인지 기억하지 못합니다. 아무도 모른다?


OS X 및 Debian 에서 apropos mode또는 계몽 된 것이 보이지 않습니다 apropos permissions. 사용중인 플랫폼 / 배포를 알고 있습니까? 사이트 로컬 명령이었을 수 있습니까? dirnameand를 사용하여 이러한 도구를 스크립팅 할 수 있습니다 stat.
mrb

아치 리눅스를 사용하고 바닐라를 설치하면 너무 많은 도구가 설치되지 않습니다. 소유자 및 / 또는 권한 이었으므로 지금은 확실하지 않습니다. 유용 할 것입니다.
저를 삭제하십시오

답변:


31

명령은 다음과 같습니다.

namei -m /home/user/dir/child/file

6
namei -mo또한 소유자에게도 제공됩니다.
earthmeLon

2
주의 : namei는 Linux ACL 또는 SELinux MAC을 표시하지 않습니다. ACL이 수동으로 확인하여 nginx를 차단하고 있음을 알아 냈습니다.sudo su nginx -s/bin/bash
Ray Foss

28

나는 당신이 tree명령을 생각하고 있다고 생각합니다 . 예를 들면 다음과 같습니다.

$ tree -pufid apps/glassfish3/ | less
apps/glassfish3
[drwxr-xr-x saml    ]  apps/glassfish3/bin
[drwxr-xr-x saml    ]  apps/glassfish3/glassfish
[drwxr-xr-x saml    ]  apps/glassfish3/glassfish/bin
[drwxr-xr-x saml    ]  apps/glassfish3/glassfish/config
[drwxr-xr-x saml    ]  apps/glassfish3/glassfish/docs
[drwxr-xr-x saml    ]  apps/glassfish3/glassfish/docs/api
[drwxr-xr-x saml    ]  apps/glassfish3/glassfish/docs/api/doc-files
[drwxr-xr-x saml    ]  apps/glassfish3/glassfish/docs/api/javax
[drwxr-xr-x saml    ]  apps/glassfish3/glassfish/docs/api/javax/annotation
[drwxr-xr-x saml    ]  apps/glassfish3/glassfish/docs/api/javax/annotation/security
[drwxr-xr-x saml    ]  apps/glassfish3/glassfish/docs/api/javax/annotation/sql
[drwxr-xr-x saml    ]  apps/glassfish3/glassfish/docs/api/javax/decorator
[drwxr-xr-x saml    ]  apps/glassfish3/glassfish/docs/api/javax/ejb
[drwxr-xr-x saml    ]  apps/glassfish3/glassfish/docs/api/javax/ejb/embeddable
...
...

위의 스위치는 다음을 수행합니다.

  • -p -권한
  • -u -사용자 이름 / 사용자 ID
  • -f -전체 경로
  • -i -들여 쓰기 줄을 인쇄하지 마십시오
  • -d -인쇄 디렉토리 만

참고 문헌


3
나는 /home/user/dir/child/file아이들 이 아닌 조상을 보여 달라는 요청을 받았다고 생각합니다 .
Raphael Ahrens

@RaphaelAhrens-그렇습니다.하지만 내가 알고있는 명령은 없지만, 내가 보여준 것을 수행하는 트리 명령이 있으며 OP가 생각한 것과 의심스럽게 유사합니다.
slm

-u정말 필요? 여기가 기본값 인 것 같습니다 (GNU bash 4.2.45의 트리 버전 1.6.0). "사용자 이름 / 사용자 ID"를 끄는 옵션이 있습니까?
Nikos Alexandris

1
@NikosAlexandris-스위치를 삭제하면 사용자 이름을 얻지 못합니다. 내 버전 : tree v1.6.0. Fedora 19, GNU bash, 버전 4.2.45 (1) -release (x86_64-redhat-linux-gnu)에 있습니다.
slm

bash 버전간에 다른 "기본값"은 무엇입니까? 알려 주셔서 감사합니다.
Nikos Alexandris

3

그것을 조금이라도 줘서 나는 이것을 생각해 냈다.

#!/bin/sh
l_path=$1
while [ "$l_path" != / -a "$l_path" != . ]; do
     ls -ld $l_path
     l_path=$(dirname -- "$l_path")
done

출력은 다음과 같습니다

-rw------- 1 tant tant 181016423 Jun 25 23:49:17 2013 /home/tant/test_file
drwxr-xr-x 85 tant tant 5632 Jul  9 19:40:11 2013 /home/tant
lrwxr-xr-x 1 root wheel 8 Sep  4 23:53:27 2012 /home -> usr/home

나는 그것이 역순이라는 것이 좋기를 바랍니다.

주석을 기반으로 루트에서 아래로 나열하는 방법이 있습니다.

#!/bin/sh
l_path=$1
while [ "$l_path" != / -a "$l_path" != . ]; do
     ls -ld $l_path
     l_path=$(dirname -- "$l_path")
done | sed '1!G;h;$!d'

1
당신 | tac이 그것을 가지고 있다면, 그렇지 | sed '1!G;h;$!d'않으면 반대로 바꿀 수 있습니다 .
mrb

2
상대 경로에서는 중단됩니다. 수행 [ "$l_path" != / -a "$l_path" != . ]하는 대신.

@Evan Teitelman dirname은 전체 경로를 제공해야합니다
Raphael Ahrens

1
@RaphaelAhrens 아니오, 끝에 상대 경로에 대한 점을 반환합니다.
rush

1
또한 stat -l아마도 stat또는 이어야합니다 ls -ld.

0

상위 디렉토리의 권한과 소유자를 알고 싶은 디렉토리에서 :

for i in $(seq 0 $(pwd | tr -cd / | wc -c)) ; do pwd ; ls -lad ; cd .. ; done

그 후에는 /:)에있을 것입니다. 현재 위치로 돌아가려면 명령을 안에 넣으십시오.

HERE=$(pwd)
...
cd ${HERE}

-1

권한 및 소유자 / 그룹을 나열하려는 명령은 ls -l 입니다.

-l 옵션은 긴 목록 형식에 사용됩니다.

ls -l / path / to / list

또한 숨겨진 파일 을 나열 하려면 -a (all) 옵션 을 추가하십시오 .

ls -al / path / to / list

또한 서브 디렉토리에 권한을 나열 하려면 -R (재귀) 옵션을 사용하십시오.

ls -Rl / path / to / list

첫 번째 열에는 권한 (read (r), write (w), execute (x)) 및 일부 특수 권한 (디렉토리 (d),-(일반 파일))이 표시되고 3 번째 및 4 번째 열에는 파일 / 디렉토리가 표시됩니다 소유자와 그룹.


2
나는 그것이 요구되는 것이라고 생각하지 않습니다. asker가 파일로 연결되는 디렉토리의 권한 목록을 찾고있는 것 같습니다.
Mat
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.