끈적 끈적한 비트는 어떻게 작동합니까? 프로그램의 이미지를 유지하기

SUID

스티키 비트는 프로그램이 실행을 완료 한 후 메모리에 프로그램의 이미지를 유지하기 위해 시스템을 신고 실행 프로그램에 적용.

그러나 메모리에 저장된 것이 무엇인지 모르겠습니다. 이 경우 어떻게 볼 수 있습니까?



답변

이것은 아마도 사람들이 항상 엉망으로 만드는 가장 짜증나는 일 중 하나 일 것입니다. SUID / GUID 비트와 스티키 비트는 완전히 다른 두 가지입니다.

당신이하는 경우 man chmodSUID 및 스티커 비트에 대해 읽을 수 있습니다. man 페이지는 여기에서 확인할 수 있습니다 뿐만 아니라.

배경

발췌

영향을받는 사용자에 대한 문자 rwxXst 선택 파일 모드 비트 : 읽기 (r), 쓰기 (w), 실행 (또는 디렉토리 검색) (x), 파일이 디렉토리이거나 일부에 대해 이미 실행 권한이있는 경우에만 실행 / 검색 user (X), 실행시 사용자 또는 그룹 ID , 제한된 삭제 플래그 또는
sticky bit (t)를 설정 합니다.

SUID / GUID

위의 맨 페이지에서 말하려는 것은 사용자 8 진 (rwx의 첫 번째 그룹) 및 8 진 그룹 (rwx의 두 번째 그룹)에 대해 x 비트가 rwxrwxrwx에서 취하는 위치는 x가되는 추가 상태를 취할 수 있다는 것입니다. s. 이 파일이 실행될 때이 파일이 실행될 때 (쉘 스크립트가 아닌 프로그램 인 경우) 소유자 또는 파일 그룹의 권한으로 실행됩니다.

따라서 파일이 루트가 소유하고 SUID 비트가 켜져 있으면 프로그램이 루트로 실행됩니다. 일반 사용자로 실행하더라도. GUID 비트에도 동일하게 적용됩니다.

발췌

SETUID 및 SETGID 비트

chmod는 파일의 그룹 ID가 사용자의 유효한 그룹 ID 또는 사용자의 보조 그룹 ID 중 하나와 일치하지 않으면 사용자에게 적절한 권한이없는 경우 일반 파일의 set-group-ID 비트를 지 웁니다. 추가 제한 사항으로 인해 MODE 또는 RFILE의 set-user-ID 및 set-group-ID 비트가 무시 될 수 있습니다. 이 동작은 기본 chmod 시스템 호출의 정책 및 기능에 따라 다릅니다. 확실하지 않은 경우 기본 시스템 동작을 확인하십시오.

chmod는 달리 지정하지 않으면 디렉토리의 set-user-ID 및 set-group-ID 비트를 유지합니다. u + s 및 gs와 같은 기호 모드를 사용하여 비트를 설정하거나 지울 수 있으며 숫자 모드를 사용하여 비트를 설정 (클리어하지는 않음) 할 수 있습니다.

SUID / GUID 예

suid / guid 없음 -비트 rwxr-xr-x 만 설정됩니다.

$ ls -lt b.pl
-rwxr-xr-x 1 root root 179 Jan  9 01:01 b.pl

suid & user ‘s executable bit enabled (소문자 s) -비트 rwsr-xrx 가 설정되었습니다.

$ chmod u+s b.pl
$ ls -lt b.pl
-rwsr-xr-x 1 root root 179 Jan  9 01:01 b.pl

suid enabled 및 executable bit disabled (대문자 S) -비트 rwSr-xr-x 가 설정됩니다.

$ chmod u-x b.pl
$ ls -lt b.pl
-rwSr-xr-x 1 root root 179 Jan  9 01:01 b.pl

guid & group의 실행 비트 활성화 (소문자 s) -비트 rwxr-sr-x 가 설정됩니다.

$ chmod g+s b.pl
$  ls -lt b.pl
-rwxr-sr-x 1 root root 179 Jan  9 01:01 b.pl

guid 활성화 및 실행 비트 비활성화 (대문자 S) -비트 rwxr-Sr-x 가 설정됩니다.

$ chmod g-x b.pl
$  ls -lt b.pl
-rwxr-Sr-x 1 root root 179 Jan  9 01:01 b.pl

끈적 끈적한 비트

반면에 스티커 비트 t/tmp디렉토리 와 같이 로 표시됩니다 .

$ ls -l /|grep tmp
drwxrwxrwt. 168 root root 28672 Jun 14 08:36 tmp

이 비트는 항상 “제한된 삭제 비트”라고 불려야합니다. 이 모드 비트가 활성화되면 사용자가 소유자 인 파일 및 디렉토리 내에서만 파일 및 디렉토리를 삭제할 수 있도록 디렉토리를 만듭니다.

발췌

제한된 삭제 플래그 또는 끈적한 비트

제한된 삭제 플래그 또는 고정 비트는 단일 비트이며 해석은 파일 유형에 따라 다릅니다. 디렉토리의 경우
권한이없는 사용자가 파일이나 디렉토리를 소유하지 않는 한 디렉토리에서 파일을 제거하거나 이름을 바꾸는 것을 방지합니다. 이것을 디렉토리의 제한된 삭제 플래그라고하며, 일반적으로 / tmp와 같은 쓰기 가능한 디렉토리에서 찾을 수 있습니다. 일부 구형 시스템의 일반 파일의 경우 비트는 프로그램의 텍스트 이미지를 스왑 장치에 저장하므로 실행시 더 빨리로드됩니다. 이것을 끈적 끈적한 비트라고합니다.


답변

“스티커 비트는 프로그램 실행이 완료된 후 프로그램 이미지를 메모리에 유지하기 위해 시스템에 플래그를 지정하는 실행 프로그램에 적용되었습니다.”

나는 그것이 쓸모없는 정보라고 생각합니다. 오늘날 대부분의 현대 유닉스는 그것을 무시합니다. Linux에서 고정 비트는 디렉토리에만 관련됩니다. 참조 여기 와 매우 유익한 위키 백과 문서 .

어쨌든, 그 오래된 행동에서 이미지 (데이터가 아닌 “코드”만)는 가상 메모리에만 보관되었습니다. 일반적으로 실제 메모리가 아닌 스왑되어 다음에 더 빨리 실행합니다.


답변

스티커 비트 란 무엇입니까?

고정 비트는 해당 디렉토리 내의 파일 소유자 또는 루트 사용자 만 파일을 삭제하거나 이름을 바꿀 수있는 디렉토리에 설정된 권한 비트입니다. 다른 사용자가 다른 사용자가 작성한 파일을 삭제하는 데 필요한 권한이 없습니다.

다른 사용자에게는 모든 권한이 있지만 중요한 폴더 및 해당 내용 (하위 디렉터리 및 파일)이 삭제되지 않도록하기위한 보안 조치입니다.