dir에 777 권한이 있지만 잘못된 권한으로 파일 생성

dir에 777 권한이 있지만 잘못된 권한으로 파일 생성

명령을 실행하는 동안 touch file 오류가 발생했습니다.

touch: cannot touch 'file': permission denied

파일을 만들려는 디렉터리에 대해 777 권한이 있어도 특정 사용자로 파일을 만들 수 없지만 일부 다른 사용자가 해당 디렉터리에서 파일을 만들 수 있습니다.

근본 원인을 찾으려고 노력하고 있지만 stracestrace 출력을 이해할 수 없습니다. 내가 생각하기에 strace 출력과 관련이 있는 줄은 다음과 같습니다.

open("file", O_WRONGLY|O_CREATE|O_NOCTTY|O_NONBLOCK, 0666) = -1  EACESS (Permission denied)

또한 특정 권한이 있는 파일을 생성하려고 시도했지만 권한 오류가 발생했습니다. 시도한 명령은 다음과 같습니다.

install -b -m 511 /dev/null file

답변1

파일 시스템 액세스 제어 목록에 의해 재정의될 수 있습니다. 어쩌면 리눅스 ACL일까요? 를 사용하여 이를 결정할 수 있습니다 lsfacl.

현재 ACL 가져오기- getfacl을 사용하여 모든 파일이나 디렉터리의 권한을 확인할 수 있습니다. 아래 예를 참조하세요.

# getfacl dir/ file: dir owner: root group: root user::rwx group::--- other::---

ACL을 사용하여 권한 설정- 액세스 제어 목록에서 상속된 디렉터리에 대해 "모드" 0777을 설정할 수 있습니다.setfacl -d -m o::rwx /directory

답변2

나는 또한이 문제에 직면했습니다. 나에게 문제는 상위 디렉토리에 필요한 rwx 권한을 부여했다는 것입니다.

chmod 777 parent_dir

touch하지만 권한이 없는 하위 디렉터리의 파일에 액세스하려고 합니다 .

> touch parent_dir/subdir/file.txt
touch: cannot touch 'parent_dir/subdir/file.txt': Permission denied

이것이 문제라면 찾고 있는 명령은 다음과 같습니다.

chmod -R 777 parent_dir

답변3

때로는 파일을 생성하려는 현재 디렉터리에 대한 충분한 권한이 있지만 계층 구조의 상위 디렉터리에 대한 권한이 없는 경우가 있습니다.

루트 디렉터리에서 현재 디렉터리까지 권한 문제가 있는지 한 번 확인해 보시기 바랍니다.

또 다른 이유는 selinux가 활성화되어 있는지 확인하는 것입니다.

관련 정보