ls -la에서 "s"와 "S"의 차이점은 무엇입니까?


67

I ls -la일 때 많은 속성을 인쇄합니다. 이 같은:

-rwSrwSr-- 1 www-data www-data   45 2012-01-04 05:17 README

수치스럽게도 각 속성의 정확한 의미를 모른다고 고백해야합니다. 예를 들어 S문자열에서 big의 의미는 무엇 -rwSrwSr--입니까? 다음은 무엇입니까 1? 나는 다른 사람들을 대략 알고 있습니다.


19
Eonil :이 사이트가 무엇인지 질문 한 후에 부끄러운 것은 없습니다. 그리고 RTFM을 말하는 사람들에 관해서는, 우리 중 많은 사람들이 이해하기 어려운 프로그래머가 작성한 문서 (그리고 나는 프로그래머입니다)의 페이지를 넘어 가면 여전히 가장 간단한 대답을 찾을 수 없습니다. 경우에 따라 매뉴얼 페이지가 설치되지 않은 시스템을 사용하고 있습니다. 이러한 모든 이유와 그 밖의 여러 가지 이유로 이와 같은 사이트는 신의 선물입니다. 내가 가진 것과 같은 질문을 해 주셔서 감사합니다.
Alan

1
좋은 질문-구체적인 예와 함께 매우 구체적입니다.
Ole

답변:


49

ls명령에 대한 설명서는 이러한 질문에 대한 답변입니다. 대부분의 유닉스 변형에서는 ls맨 페이지 ( man ls또는 온라인)를 찾아보십시오. Linux에서 정보 문서 ( info ls) 또는 온라인을 찾으십시오 .

문자 ssetuid (또는 열에 따라 setgid) 비트가 설정 되었음을 나타냅니다 . 실행 파일이 setuid 인 경우 프로그램을 호출 한 사용자 대신 실행 파일을 소유 한 사용자로 실행됩니다. 문자가 문자를 s대체합니다 x. 파일이 setuid 일 수는 있지만 실행 파일 일 수는 없습니다. 이것은로 표시된다 S여기서 자본 S파일이 실행되지 않은 경우 setuid 비트가 (거의 항상) 쓸모가 있기 때문에이 설정은 아마 잘못되었다는 경고합니다.

디렉토리 (또는 setgid) 권한 대해 setuid있다, 그 디렉토리에 생성 된 모든 파일은 디렉토리의 소유자 (또는 그룹)과 일치하는 사용자 (또는 그룹)가 소유합니다.

권한 뒤의 숫자는 하드 링크 수입니다. 하드 링크는 파일의 경로입니다 (즉, 이름). 대부분의 파일에는 단일 경로가 있지만이 ln명령으로 더 많은 것을 만들 수 있습니다 . (이것은 심볼릭 링크와는 다릅니다. 심볼릭 링크는“오, 실제로이 파일은 다른 곳에 있습니다. <location>”으로 이동하십시오.) 디렉토리에는 N + 2 하드 링크가 있습니다. 여기서 N은 하위 디렉토리의 수입니다. 부모, 자신 ( .항목을 통해 ) 및 각 하위 디렉토리 ( ..항목을 통해 )에서


5
디렉토리에 적용될 때 OS X에서 무엇을 의미합니까? 예를 들어 다음을 $ ls /Users반환합니다.drws--S---+ 12 jdoe staff 408 Jul 9 2013 jdoe

4
@jww 이것은 해당 디렉토리에서 작성된 파일이 디렉토리를 소유 한 그룹에 속하지만 OSX의 기본값입니다. 참조 en.wikipedia.org/wiki/Setuid#setuid_and_setgid_on_directoriesunix.stackexchange.com/questions/12842/...

@Gilles, 파일이 "실행 가능하지 않다"고 말했을 때? 실행 권한이 없거나 실행할 수있는 파일 유형이 아님을 의미합니까?
ransh

@ransh 실행 ( x) 권한을 의미합니다 .
Gilles

나는 아래 @ 재규어의 대답에서 만든 점과 유사한 편집 제출 한
qneill

16

에 따르면 info coreutils ls(정확히 가지고 있지 않을 수도 있음) :

`s '
setuid 또는 setgid 비트와 해당 실행 비트가 모두 설정되어있는 경우.

`S '
setuid 또는 setgid 비트가 설정되었지만 해당 실행 비트가 설정되지 않은 경우.

권한 부분 뒤의 숫자는 하드 링크의 수입니다.


2
기본적으로 이것은 당신이 얻는 것입니다chmod g-x,g+s dir
sanmai

6

(더욱 간단하게) 말하면 이것은 의미합니다. 디렉토리가 설정되어 있습니다. 여기에서 생성 된 모든 파일은 해당 폴더 소유자의 해당 그룹이 소유합니다.

그러나 폴더는 그룹에 의해 실행 가능하지 않으므로 대문자 S로 표시됩니다. 일반적으로 디렉토리가 작성되고 디렉토리가 setgid로 종료됩니다.

흠 .. 위의 평범한 영어처럼 들리는 지 확실하지 않습니다.


1
이 답변은 기존 답변보다 더 많거나 다른 정보를 제공하지 않습니다.
jayhendren

1
@ jayhendren 네 그렇습니다. 디렉토리에 대해 이야기합니다. 다른 대답은 없습니다. (질은 아마도 그의 의견을 그의 답변에 포함시켜야한다.)
Sparhawk

0

실행 파일이 없기 때문에 발생합니다.

s-> 'x'활성화 S-> 'x'비활성화

아래 예를 참조하십시오

$ ls -l

total 0

-rwsrw-r--. 1 bpkmails bpkmails 0 Jun 25 20:18 ca

$ chmod u-x ca

$ ls -l

total 0

-rwSrw-r--. 1 bpkmails bpkmails 0 Jun 25 20:18 ca

$

이것이 기존 답변에 추가되는 내용을 설명해 주시겠습니까?
Stephen Kitt
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.