파일과 폴더는 루트가 소유하지만 저는 sudo chmod ugo+rw
두 가지 모두에 이 작업을 수행했고 이를 ls -l
. 그래도 일반 사용자로서 파일을 삭제할 수는 없습니다.
❯ ls -ld /tmp /tmp/perm
drwxrwxrwt 46 root root 1160 Jan 9 17:41 /tmp
-rw-rw-rw- 1 root root 3 Jan 9 17:40 /tmp/perm
❯ rm /tmp/perm
rm: cannot remove '/tmp/perm': Operation not permitted
Attr 및 ACL이 구성되지 않았습니다.
❯ lsattr -d /tmp
---------------------- /tmp
❯ getfacl /tmp
getfacl: Removing leading '/' from absolute path names
# file: tmp
# owner: root
# group: root
# flags: --t
user::rwx
group::rwx
other::rwx
하위 폴더에서도 동일한 작업을 수행할 수 있습니다.
/tmp
/
Arch Linux에 설치되어 실행되는 ext4 시스템의 일부입니다.
답변1
t
그 이유는 :의 끈끈한 부분 때문입니다 ./tmp
drwxrwxrwt 46 root root 1160 Jan 9 17:41 /tmp
에서 man chmod
:
제한 제거 플래그 또는 고정 비트
제한된 제거 플래그 또는 고정 비트는 파일 형식에 따라 해석이 달라지는 단일 비트입니다. 디렉터리의 경우 권한이 없는 사용자가 파일이나 디렉터리를 소유하지 않는 한 디렉터리에서 파일을 삭제하거나 이름을 바꾸는 것을 방지합니다. 이를 디렉터리의 삭제 제한 플래그라고 하며 일반적으로 /tmp와 같은 누구나 쓸 수 있는 디렉터리에서 찾을 수 있습니다.
다음을 사용하여 고정 비트를 설정할 수 있습니다.
chmod +t /path/to/dir
또는
chmod o+x,+t /path/to/dir
둘 사이의 차이점은 디렉토리에 실행 권한이 없으면 첫 번째 것이 T
대신 설정된다는 것입니다.t
다른 사람. 대신 o+x,+t
실행 권한이 부여되고 고정 비트가 설정됩니다.
이 경우,나는 당신을 추천하지 않습니다그것에서 끈적끈적한 비트를 제거하십시오 /tmp
. 하지만 제거하려면 다음을 사용해야 합니다.
sudo chmod -t /tmp
또는 더 나은 방법은 고정 비트를 제거하지 않고 rm /tmp/perm
루트(또는 )로 sudo
실행하는 것입니다.