새 파일과 디렉토리에 대한 권한이 약간 이상하게 작동한다는 것을 깨달았습니다. 우선, 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 설치입니다. 왜 이런 일이 발생하는지에 대한 힌트가 있습니까?
답변
내 질문에 대답하는 것이 적절한 지 모르겠습니다. 그렇지 않은 경우 편집자에게 조언하십시오. 미리 감사드립니다.
이 수수께끼를 해결했다고 생각합니다. 문제는 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이없는 것이 마음에 들지 않을 때 이상하게 동작합니다. 또한 나는 이것이 데비안 / 우분투가 아닌 CentOS에서만 발생하는 것을 보았습니다. 커널의 XFS 버전과 관련이있을 수도 있습니다. 몰라요.
어쨌든, 그것은 나를 위해 사건을 해결합니다. 모든 제안에 감사드립니다 🙂
답변
creat 호출은 umask보다 우선하는 권한을 명시 적으로 지정할 수 있습니다.
당신은 당신이 어떻게 만드는지에 대답하지 않았습니다 testfile,testdir
.
을 사용하여 파일을 touch testfile
작성한 후 권한을 나열하고 게시하십시오.
답변
getfacl .
테스트 파일을 작성중인 디렉토리에서 a 를 시도 하여 권한에 영향을주는 기본 acl이 있는지 확인하십시오.
답변
/etc/login.defs에서 USERGROUPS_ENAB 변수를 찾으십시오.
사용 중지하기 위해 댓글을 달았습니다. # USERGROUPS_ENAB yes
현재 사용자의 umask도 변경하려면 먼저 이전 절차를 따르고 다음을 수행해야합니다.
027의 예
echo “umask 027”>> ~ / .bashrc && pkill -KILL -u your_username_here
echo “umask 027”>> ~ / .bashrc이 명령은 프로필의 umask 기본값을 설정합니다
이로 인해 로그 아웃해야합니다.
다시 로그인 후
umask comand를 다시 실행하고 그것이 효과가 있는지 확인하십시오.