새 파일과 디렉터리에 대한 권한 동작이 약간 이상하다는 것을 깨달았습니다. 첫째, umask는 정답을 반환하는 것 같습니다.
$ umask
0002
이는 내 사용자와 내 그룹이 전체 액세스 권한을 가지며 나머지 세계에는 쓰기 액세스 권한과 suid가 없음을 의미합니다. 하지만 $HOME에 파일을 생성하면 다음과 같습니다.
$ ls -l testfile
-rw-rw-rw- 1 robe robe 0 mar 16 12:58 testfile
즉, 모든 사람에게 쓰기 권한을 부여합니다. 디렉토리에서도 동일한 일이 발생합니다.
$ ls -ld testdir
drwxrwxrwx 2 robe robe 6 mar 16 13:00 testdir
이건 0002가 아니라 umask 0000과 같은 것 같아요. 기본 0002 또는 0022를 변경한 일부 umask 인스턴스에 대해 모든 /etc를 검색했지만 아무것도 찾지 못했습니다. 이는 기본 CentOS 5.5 설치입니다. 왜 이런 일이 발생하는지 알 수 있나요?
답변1
내 질문에 대답하는 것이 적절한지 모르겠습니다. 그렇지 않은 경우 편집자에게 이에 대한 조언을 요청합니다. 미리 감사드립니다.
나는 미스터리를 해결했다고 생각합니다. 문제는 XFS 볼륨에 기본 ACL이 없다는 것입니다. 다음은 영향을 받는 디렉터리 중 하나인 /srv/backups에 대한 ACL 항목입니다.
# file: srv/backups
# owner: root
# group: root
user::rwx
group::r-x
other::r-x
"mkdir test" 또는 "touch testfile"을 실행할 때마다 777 권한이 부여됩니다. 그래서 나는 이렇게 했습니다:
setfacl -m d:u::rwx /srv/backups
다음과 같이 ACL을 유지합니다.
# file: srv/backups
# owner: root
# group: root
user::rwx
group::r-x
other::r-x
default:user::rwx
default:group::r-x
default:other::r-x
예전에는 ACL이 없었지만 지금은 있습니다. "ls -l"을 실행하면 "+" 기호가 추가된 권한을 볼 수 있습니다. 기적적으로 이제 "mkdir test" 및 "touch testfile"이 예상된 권한으로 작동합니다.
# ls -l testfile
-rw-r--r-- 1 root root 0 Dec 20 10:00 testfile
# ls -ld testdir
drwxr-xr-x+ 2 root root 6 Dec 20 10:00 testdir
왜 이런 일이 발생하는지 모르겠습니다. XFS는 기본 ACL이 없는 것을 좋아하지 않으며 ACL이 발생하면 이상하게 동작합니다. 또한 Debian/Ubuntu가 아닌 CentOS에서만 이런 일이 발생하는 것을 보았습니다. 아마도 커널의 XFS 버전이나 이와 유사한 것과 관련이 있을 수 있습니다. 전혀 모른다.
어쨌든 이 문제는 해결되었습니다. 모든 제안에 감사드립니다 :-)
답변2
creat 호출은 umask보다 우선하는 권한을 명시적으로 지정할 수 있습니다.
어떻게 만들었는지 답변하지 않으셨습니다 testfile,testdir
.
다음을 사용하여 파일을 touch testfile
만듭니다 .
답변3
/etc/login.defs에서 USERGROUPS_ENAB 변수를 찾으세요.
비활성화하라고 댓글을 달았습니다 #USERGROUPS_ENAB 예
현재 사용자의 umask도 변경하려면 먼저 이전 절차를 따른 후 다음을 수행해야 합니다.
027을 예로 들어보자
echo "umask 027" >> ~/.bashrc && pkill -KILL -u your_username_here
echo "umask 027" >> ~/.bashrc 이 명령은 구성 파일의 umask 기본값을 설정합니다.
이렇게 하면 강제로 종료됩니다.
다시 로그인 후
umask 명령을 다시 실행하고 작동하는지 확인하세요.