I 를 사용하면 ls -la
많은 속성이 인쇄됩니다. 이 같은:
-rwSrwSr-- 1 www-data www-data 45 2012-01-04 05:17 README
부끄럽게도 각 속성이 무엇을 의미하는지 정확히 알지 못한다는 점을 인정해야 합니다. 예를 들어, S
문자열에서 big은 무엇을 의미합니까 -rwSrwSr--
? 아래는 무엇입니까 1
? 나는 또한 다른 사람들에 대해 전반적으로 이해하고 있습니다.
답변1
명령 문서는 ls
이러한 질문에 답합니다. 대부분의 Unix 변형에서는 ls
매뉴얼 페이지( man ls
또는 온라인) 를 찾으십시오 . Linux에서는 정보 문서( info ls
)를 찾거나온라인.
편지에는 다음과 같은 내용이 s
기재되어 있습니다.설정값(또는 열에 따라 setgid) 비트가 설정됩니다. 실행 파일에 setuid 세트가 있으면 실행 파일을 소유한 사용자(프로그램을 호출한 사용자가 아님)로 실행됩니다. 이 문자는 s
이 문자를 대체합니다 x
. 파일이 setuid이지만 실행 가능하지 않을 수 있습니다. 이는 로 표시됩니다 S
. 여기서 대문자는 S
파일이 실행 가능하지 않으면 setuid 비트가 (거의 항상) 쓸모가 없기 때문에 이 설정이 잘못되었을 수 있음을 나타냅니다.
언제목차setuid(또는 setgid) 권한을 사용하면 디렉터리에 생성된 모든 파일은 디렉터리의 소유자(또는 그룹)와 일치하는 사용자(또는 그룹)가 소유하게 됩니다.
허가 뒤의 번호는하드 링크계산. 하드 링크는 파일의 경로(즉, 이름)입니다. 대부분의 파일에는 단일 경로가 있지만 ln
이 명령을 사용하면 더 많은 파일을 만들 수 있습니다. (이것은 심볼릭 링크와 다릅니다. 심볼릭 링크는 "아, 사실 이 파일은 다른 곳에 있습니다. <location>으로 가세요."라고 말합니다.) 디렉토리에는 N+2개의 하드 링크가 있습니다. 여기서 N은 하위 디렉토리의 수입니다. 상위 디렉터리, 자체 디렉터리(항목을 통해 .
) 및 각 하위 디렉터리( ..
항목을 통해)에서 액세스할 수 있습니다.
답변2
에 따르면 info coreutils ls
(이것은 정확히 당신이 가지고 있는 것이 아닐 수도 있습니다):
setuid 또는 setgid 비트와 해당 실행 가능 비트가 설정된 경우 `s' 입니다.
setuid 또는 setgid 비트가 설정되었지만 해당 실행 가능 비트가 설정되지 않은 경우 'S'입니다 .
권한 부분 뒤의 숫자는 하드 링크 수입니다.
답변3
(희망적으로 더 간단하게) 용어로 이것은 의미합니다. 디렉토리는 setgid입니다. 여기에 생성된 모든 파일은 해당 폴더를 소유한 그룹이 소유하게 됩니다.
하지만 이 그룹에서는 해당 폴더를 실행할 수 없으므로 대문자 S로 표시됩니다. 이는 일반적으로 setgid로 끝나는 디렉토리를 생성할 때 발생합니다.
흠.. 위의 내용이 실제로 평범한 영어처럼 들리는지 잘 모르겠습니다..
답변4
또한 고려마스크, 쉘 설정은 전체 액세스 권한을 얻기 위해 파일을 생성할 때 이 값을 뺍니다(파일의 경우 666, 디렉터리의 경우 777).
표준 행동설정값/설정상위 디렉터리에서 하위 디렉터리로 전파됩니다.
디렉토리에 대한 "S" 권한은 다음 명령 순서(check umask 077
,...)를 사용하여 얻을 수 있습니다.
~/test$ id
uid=1004(dsuser) gid=100(users)
~/test$
~/test$ umask
0002
~/test$
~/test$ mkdir aaa
~/test$ ls -l
total 4
drwxrwxr-x 2 dsuser users 4096 Nov 5 14:57 aaa
~/test$ chmod g+s aaa
~/test$ ls -l
total 4
drwxrwsr-x 2 dsuser users 4096 Nov 5 14:57 aaa
~/test$ cd aaa
~/test/aaa$
~/test/aaa$ mkdir bbb
~/test/aaa$ ls -l
total 4
drwxrwsr-x 2 dsuser users 4096 Nov 5 14:58 bbb
~/test/aaa$
~/test/aaa$ umask 077
~/test/aaa$
~/test/aaa$ mkdir ccc
~/test/aaa$
~/test/aaa$ ls -l
total 8
drwxrwsr-x 2 dsuser users 4096 Nov 5 14:58 bbb
drwx--S--- 2 dsuser users 4096 Nov 5 14:59 ccc