답변:
사용자의 umask를 설정하는 일반적인 방법은 세 가지입니다.
UMASK
에서/etc/login.defs
pam_umask.so
에서 PAM 구성에 추가/etc/pam.d
/etc/profile
이와 관련하여 시스템 사용자와 일반 사용자 사이에는 차이가 없습니다.
그러나 사용자 정의 umask로 데몬을 시작하려고한다고 가정합니까?
문제는 위의 모든 옵션이 사용자가 로그인 할 때 발생한다는 것입니다. 데몬을 실행하는 경우 절대 로그인하지 않습니다. init로 시작한 다음 루트 setuid
로 실행 하거나 지정한 시스템 사용자로 실행하기 위해 호출 합니다. .
주요 옵션은 다음과 같습니다.
umask
init 스크립트에 넣습니다 ( grep umask /etc/init.d/*
예를 들어 a)start-stop-daemon
전달하십시오.시스템 사용자는 비밀번호 만기, 홈 디렉토리 (시스템 사용자가 없음) 및 UID (시스템 사용자가 일반적으로 임의의 임계 값 아래 임)의 세 가지 측면에서 '일반'과 다릅니다.
일반적인 경우에, 당신은 거의 완전히 운이 없습니다. PAM을 사용하여 umask를 설정할 수 있지만 PAM은이 세 가지 차이점 이외의 사항을 기반으로 동작을 선택합니다.
다시 말해, PAM이 '시스템'사용자와 '비 시스템'사용자를 구별 할 수 없습니다. 두 가지 옵션이 있습니다.
PAM을 사용하여 모든 사람 /etc/login.defs
의 umask를 설정 한 다음 (예 : 체크인 ), 비 시스템 사용자의 umask를 명시 적으로 설정하십시오 /etc/bash.bashrc
(또는 유사).
또는이 작업을 수행하기 위해 자체 PAM 모듈을 작성하십시오. umask를 설정하는 것이 일반적인 요청이므로 많은 사람들이 이것을 환영한다고 생각합니다.
넉넉한 소금을 뿌려이 답변을 받아보십시오. 이런 종류의 요청은 꽤 일반적이며 지금 더 나은 / 적절한 방법이 존재해도 놀라지 않을 것입니다.
pam_umask
있었지만 아마도 에 대해 모른다고 생각합니다 pam_succeed_if
. 로 pam_succeed_if , 당신은 다른 모듈은 특정 사용자 또는 그룹에 적용 할 수 있습니다. 그러나 여전히 PAM이 여기에서 도움이 될 것이라고 생각하지 않습니다.
@Mikel이 제안했듯이 데몬 인 시스템 계정을 구성하려는 경우 데몬 자체를 구성하십시오.
MacOS에서 _www 계정의 umask를 설정하는 방법을 찾고있는이 질문에 왔습니다. 위의 답변에서 알 수 있듯이 이것은 어렵지만 아파치 서비스를 (이 경우) 사용자 == 데몬으로 구성하여 해결할 수 있다는 것을 알았습니다.
이상하게도 시작 스크립트를 찾을 수 없었습니다 (일반적으로 /etc/init.d/에서 Mac / Library / LaunchDaemons /) : http://krypted.com/mac-security/apache2-umasks / 아파치에는 자체 환경 스크립트가 있음을 발견했습니다.
$ sudo vim /usr/sbin/envvars
umask 002
다른 데몬들도 비슷한 방법을 가지고 있는데, 이는 특정한 경우에 도움이 될 수 있습니다.