전역적으로 쓰기 가능한 파일의 위험

전역적으로 쓰기 가능한 파일의 위험

나는 전체 쓰기 가능 파일을 갖는 것이 위험할 수 있다는 것을 알고 있으며 많은 사람들이 시스템에 전체 쓰기 가능 파일을 두지 말라고 조언합니다.

내 Linux를 "보호"하기 위해 를 사용합니다 find / -perm -0002 -type f. 이 명령 덕분에 root_directory 아래에서 전역적으로 쓰기 가능한 파일을 찾았습니다 /root/a_directory/world_writable_file. 내 /root디렉토리는 700이므로 다른 사용자는 쓰기 가능한 파일을 편집할 수 없습니다.

그래서 제 질문은 다른 사용자가 액세스할 수 없는(다른 사용자의 x 권한 부족) 디렉터리에 누구나 쓰기 가능한 파일이 있는 경우 어떤 위험이 있습니까?입니다.

예를 들어 /root/directory1/world_writable_file.sh777이고 /directory1/700이면 안전할까요? 이 상황에서는 위험이 없나요?

답변1

권한에 대한 귀하의 이해는 올바른 것 같지만 완전하지 않을 수 있습니다.

파일에 액세스하려면 요청하는 사용자가 파일의 모든 경로 요소에 액세스해야 합니다. 디렉터리의 경우 x디렉터리를 탐색하려면 권한이 필요함을 의미합니다.

777따라서 권한이 있는 디렉터리에 있는 권한이 있는 파일은 해당 디렉터리의 소유자가 아닌 사람이 액세스할 수 없습니다 .700

예를 들어:

$ sudo ls -al XX
total 40
drwx------  2 root root  4096 Dec 21 07:43 .
drwxrwxrwt 13 root root 36864 Dec 21 07:43 ..
-rwxrwxrwx  1 root root     0 Dec 21 07:43 yy

디렉토리를 탐색할 수 없기 yy때문에 파일을 읽거나 쓸 수 없습니다 .XX

$ cat XX/yy
cat: XX/yy: Permission denied
$ echo test >> XX/yy
/bin/ksh: XX/yy: cannot create [Permission denied]

그러나 기존 권한이 파일 액세스 권한을 부여하는 유일한 방법은 아닙니다. 가지다반품ACL...

$ sudo setfacl -m u:sweh:rwx XX
$ ls -ld XX        
drwxrwx---+ 2 root root 4096 Dec 21 07:43 XX/
$ echo test >> XX/yy
$ cat XX/yy         
test

이제 디렉터리 권한이 로 나타나더라도 770ACL이 부여한 파일이므로 계속해서 파일을 읽고 쓸 수 있습니다. +ACL은 권한 목록 끝에 나타납니다.

drwxrwx---+ 2 root root 4096 Dec 21 07:43 XX/

특정 경우에는 ACL과 기존 권한이 겹치는 방식이 겹칩니다. 이 setfacl명령은 모드를 로 설정합니다 770. 다시 설정하면 700...

$ sudo chmod 700 XX
$ ls -ld XX
drwx------+ 2 root root 4096 Dec 21 07:43 XX/

이제 ACL이 여전히 존재하지만 유효합니다.아니요액세스 권한 부여:

$ getfacl XX
# file: XX
# owner: root
# group: root
user::rwx
user:sweh:rwx                   #effective:---
group::---
mask::---
other::---

#effective:---항목을 참고하세요 . 이는 그룹 값을 설정하면 mask값이 수정되기 때문입니다. chmod이는 ACL과 파일 권한 간의 미묘한 상호 작용입니다.

그래서..

$ cat XX/yy        
cat: XX/yy: Permission denied

간단히 말해서... 700디렉터리에 있는 모든 쓰기 가능한 파일은 안전해야 하지만 디렉터리에 있는 유사한 파일은 안전 770하지 않을 수 있습니다.

관련 정보