누군가 이러한 속성이 무엇을 의미하는지 설명할 수 있습니까 ---S--l---
?
언제, 왜 이 속성을 설정해야 합니까? 무엇 때문에?
$ ls -ltr
---S--l--- 1 root root 0 Mar 10 04:25/opt/sm/OP/Tor/kur/ll3/tur_lock
답변1
나는 당신이 기본 -rwxrwxrwx
기호에 익숙하다고 확신합니다. 아마도 set-user-ID가 도움이 되고 -rwsrwxrwx
set-group-ID가 도움이 될 수 있다는 것을 알고 계실 것입니다 -rwxrwsrwx
. 그러나 이러한 형태는 추가 설명 없이 모호합니다. 를 보면 -rws------
모드가 04700(사용자 ID 설정 + 사용자 읽기 + 쓰기 + 실행)이라고 생각할 수 있지만 x
표시되지 않을 때 실행 비트가 켜져 있는지 어떻게 알 수 있습니까? 대답은 모드 04600(사용자 ID 설정 + 사용자 읽기 + 쓰기, 실행은 안 됨)이 표시된다는 것입니다 -rwS------
. 마찬가지로 02060(그룹 ID 설정 + 그룹 읽기 + 쓰기, 실행되지 않음)이 표시됩니다 ---rwS---
.
이제 l
이에 대한 문서를 찾기가 어렵다는 것이 입증되었습니다. 다행스럽게도 나는 여기에 한동안 머물렀고 시체 중 일부가 어디에 묻혀 있는지 알고 있습니다. 나는 이것을 찾았다FCNTL(2)페이지는 다음과 같습니다.
(비 POSIX.) ...레코드 잠금은 권고 또는 필수일 수 있으며 기본적으로 권고입니다. 권고 잠금은 적용되지 않으며 협력 프로세스 간에만 유용합니다.
모든 프로세스에 필수 잠금이 적용됩니다. 프로세스가 호환되지 않는 액세스를 수행하려고 시도하는 경우(예:독서(2) 또는쓰기(2)) 호환되지 않는 필수 잠금이 있는 파일 영역에서 결과는 다음에 따라 달라집니다.O_비차단열리는 파일 설명에 대한 플래그를 활성화합니다. 만약에O_비차단플래그가 활성화되지 않으면 잠금이 제거되거나 액세스 호환 모드로 변환될 때까지 시스템 호출이 차단됩니다. 만약에O_비차단플래그가 활성화되면 시스템 호출이 오류와 함께 실패합니다.이가온.
강제 잠금을 사용하려면 잠글 파일이 포함된 파일 시스템과 파일 자체에서 강제 잠금을 활성화해야 합니다.
-o mand
파일 시스템에 대한 강제 잠금을 활성화하려면 " " 옵션을 사용하십시오.설치(8), 또는MS_MANDLOCK플래그는 다음과 같습니다.설치(2). 파일에 대한 그룹 실행 권한을 비활성화하고 set-group-ID 권한 비트를 활성화하여 파일에 대한 강제 잠금을 활성화할 수 있습니다(참조:수정(1) 그리고수정(2)).Linux의 강제 잠금 구현은 신뢰할 수 없습니다. 아래 오류를 참조하세요.
긴 이야기 짧게
일부(비 POSIX?) *nix 시스템에서는 set-group-ID 모드 비트를 켜고 그룹 실행 비트를 끄면 파일을 강제로 잠글 수 있습니다(해당 기능이 파일 시스템에서 활성화된 경우). 따라서 ls
이러한 시스템 중 일부의 프로그램은 l
강제 실행을 나타내기 위해 모달 텍스트 표현의 7번째 위치를 표시합니다(대신).S
나잠금이 활성화되었습니다. 따라서 tur_lock
파일 모드는 06000입니다.
긴 이야기 짧은 2
- 네 번째 위치
S
는 설정된 사용자 ID(04000) 모드 비트가 설정되었으나 사용자(소유자) 실행 권한(00100) 모드 비트가 꺼져 있음을 나타냅니다. - 일곱 번째 비트의
S
또는 은l
그룹 ID 설정(02000) 모드 비트가 설정되었지만 그룹 실행 권한(00010) 모드 비트가 꺼져 있음을 나타냅니다. ls
비트 7 (set-group-ID 모드 비트가 설정되었지만 그룹 실행 권한 모드 비트가 꺼진 경우)에 표시되는지 여부는 명확하게 문서화되지 않은 규칙에 따라 결정되지만S
운영 체제 및 파일 잠금을 강제하는 파일 시스템 지원이 제공됩니다. 그런 다음 파일에 대해 강제 파일 잠금이 활성화되었음을 나타냅니다.l
l
l
다음 명령을 사용하여 디렉터리 트리에 있는 모든 파일 및 기타 콘텐츠의 숫자 모드(또는 최소한 사용자 제어 하의 모드 비트)를 볼 수 있습니다.
찾다목차-printf "%.5m %p\n"
find
모드를 숫자(8진수)로 보고하는 형식을 허용합니다 -printf
. %m
( %M
기호적으로 패턴을 보고하는 경우는 다음과 같습니다 ls
.) 물론 여러 디렉터리를 지정 find
하거나 또는 옵션, -mindepth
또는 , 및/또는 -maxdepth
테스트를 사용하여 검색 범위를 좁히거나 형식을 수정할 수 있습니다.-mtime
-name
-iname
-size
-printf
다음 명령을 사용하여 선택한 파일의 숫자 패턴을 볼 수 있습니다
통계 -c "%a%n"문서…
stat
보고 형식( -c
또는 로 지정됨 ) 은 숫자(8진수) 형식으로 모드("액세스 권한")를 보고하는 --format
데 사용됩니다 . %a
( %A
이와 같이 기호적으로 패턴을 보고하는 데 사용됩니다 ls
.)
위의 두 개는 사용자 제어 하의 모드 비트만 표시합니다. 확인하다모두모드 비트(파일/inode 유형을 지정하는 비트 포함), 사용
통계 -c "%f%n"문서…
불행하게도 이것은 16진수로 표시됩니다.
..."S"가 있는 파일을 인식하는 옵션이 있나요...?
S
네 번째 위치에서 파일을 찾을 수 있습니다.
찾다목차-파마-4000! -파마-100
이것은 영어 구문에 가장 가깝습니다 find
. 권한(모드) 비트 04000이 설정되어 있지만 모드 비트 0100이 설정되지 않은 파일을 찾습니다.
마찬가지로 다음 명령을 사용하여 일곱 번째 위치에 S
또는 이 있는 파일을 찾을 수 있습니다.l
찾다목차-파마-2000! -파마-010
위 기준 중 하나라도 충족하는 파일을 찾는 것은 다소 혼란스럽습니다.
찾다목차"(""("-perm -4000!-perm -100")"-o"("-perm -2000!-perm -010")"")"
답변2
이는 Linux의 명령을 통해 설정할 수 있습니다 chattr
.
chattr
사용자가 Linux 파일 시스템에 있는 파일에 특정 속성을 설정할 수 있도록 하는 Linux 운영 체제의 명령입니다.
불변 비트라고도 합니다.
Linux에는 파일에 적용할 수 있는 속성이 많이 있습니다. 위의 질문에서 S와 I는 몇 가지 속성입니다. 다음은 속성 S와 I에 대한 설명입니다.
S
- 디스크에 대한 동기화 쓰기를 변경합니다. 이는 파일 하위 집합에 적용되는 "동기화" 마운트 옵션과 동일합니다.
I
- 해시 트리를 사용하여 디렉토리가 인덱스 뒤에 있음을 나타내기 위해 htree 코드에서 사용됩니다.
불변 비트를 임의의 파일에 설정하려면 구문은 다음과 같습니다.
chattr +(attribute) (file name)
파일의 불변 비트를 제거하려면 구문은 다음과 같습니다.
chattr -(attribute) (file name)
속성이 설정된 파일을 확인하려면 lsattr
명령을 사용하십시오.
더 많은 정보를 원하시면 읽어주세요chattr
맨 페이지. 모든 속성과 그 특성은 매뉴얼 페이지에 언급되어 있습니다.