고정 비트는 파일 / 디렉토리 소유자 또는 루트 사용자 만 파일을 삭제하거나 이름을 바꿀 수있는 파일 또는 디렉토리에 설정된 권한 비트입니다. 다른 사용자에게는 다른 사용자가 만든 파일을 삭제할 수있는 권한이 없습니다.
때때로 파일을 작성하기 위해 Linux 시스템의 모든 사용자가 사용할 수있는 Linux 디렉토리가 필요합니다. 사용자는이 디렉토리의 편의에 따라 파일을 작성, 삭제 또는 이름을 바꿀 수 있습니다.
이제 사용자가이 디렉토리의 다른 사용자가 만든 파일을 실수로 또는 고의로 삭제 (또는 이름 바꾸기)하면 어떻게됩니까?
이런 종류의 문제를 피하기 위해 끈적 끈적한 개념이 사용됩니다. / tmp 가이 목적으로 사용 되기 때문 입니다. 위의 시나리오를 피하기 위해 / tmp 는 고정 비트를 사용합니다.
예를 들면 다음과 같습니다.
mkdir demo
chmod 777 demo
또한이 폴더에 권한 777을 가진 다른 사용자로 두 개의 파일을 만들었습니다.
ls -ld demo
drwxrwxrwx 2 guru guru 4096 Mar 11 18:17 demo
ls -l demo
-rwxrwxrwx 1 abhi abhi 0 Mar 11 17:11 file1
-rwxrwxrwx 1 anshu anshu 0 Mar 11 18:15 file2
이제 끈적 끈적한 부분을 켜십시오.
chmod +t demo/
ls -ld demo
drwxrwxrwt 2 guru guru 4096 Mar 11 18:17 demo
이제 한 명의 사용자 (abhi)가 두 번째 사용자 (anshu)의 이름을 바꾸려면 어떻게됩니까?
mv /home/guru/demo/file2 /home/guru/demo/file3
mv: cannot move '/home/guru/demo/file2' to '/home/guru/demo/file3': Operation not permitted
끈적 끈적한 기원
Linux에서 고정 비트는 디렉토리에서 위에서 설명한 용도 만 사용합니다. 지금까지는 일반 파일에서 완전히 다른 것으로 사용되었으며 이름이 유래했습니다.
프로그램이 실행될 때 사용자가 실제로 사용하기 전에 프로그램을 메모리에로드하는 데 시간이 걸립니다. 프로그램이 편집기와 같은 프로그램을 사용자가 자주 사용하는 경우 시작 시간 지연이 오버 헤드였습니다.
이 시간 지연을 개선하기 위해, 끈적 끈적한 비트가 도입되었습니다. OS는 실행 파일의 고정 비트가 ON 인 경우 실행 파일의 텍스트 세그먼트가 스왑 공간에 유지되는지 확인했습니다. 따라서 프로그램을 다시 실행할 때 실행 파일을 RAM으로 쉽게 다시로드 할 수있어 시간 지연이 최소화됩니다.
Linux와 같은 최신 시스템은 실행 파일 및 기타 파일의 캐시를 자동으로 관리하므로 고정 비트가 필요하지 않습니다.
출처 : Geek Stuff의“예제와 함께 설명 된 Linux Sticky Bit Concept”