umask
시스템 사용자(다음을 사용하여 생성됨)에 대해 이를 설정할 수 있습니까 useradd --system username
?
답변1
사용자의 umask를 설정하는 세 가지 일반적인 방법이 있습니다.
- 설정
UMASK
하다/etc/login.defs
pam_umask.so
PAM 구성에 추가/etc/pam.d
- 쉘 시작 파일에 설정하십시오.
/etc/profile
이 점에서는 시스템 사용자와 일반 사용자 사이에 차이가 없습니다.
하지만 사용자 정의 umask를 사용하여 데몬을 시작하려고 한다고 가정합니까?
문제는 사용자가 로그인할 때 위의 모든 옵션이 발생한다는 것입니다. 데몬을 실행 중인 경우 로그인되지 않습니다. init에 의해 시작된 후 루트 또는 setuid
지정한 시스템 사용자로 실행됩니다.
주요 옵션은 다음과 같습니다.
umask
초기화 스크립트를 넣으세요 (grep umask /etc/init.d/*
예: a 실행)- 프로그램을 시작하기 위해 사용자 정의 umask를 사용하도록 init를 구성합니다(시스템 실행 프로그램 신생 우마스크)
- 사용하면
start-stop-daemon
합격마스크 옵션 - 호출하도록 프로그램 자체를 수정하십시오.마스크함수 또는 시스템 호출
답변2
시스템 사용자는 비밀번호 만료, 홈 디렉터리(시스템 사용자에게 홈 디렉터리가 없음) 및 UID(시스템 사용자는 일반적으로 임의의 임계값 미만임)의 세 가지 측면에서 "일반" 사용자와 다릅니다.
일반적으로 당신은 거의 완전히 운이 좋지 않습니다. PAM을 사용하여 umask를 설정할 수 있지만 PAM은 이러한 세 가지 차이점 이외의 요소를 기반으로 동작을 선택합니다.
즉, PAM에게 "시스템" 사용자와 "비시스템" 사용자를 구별하라고 지시할 수 없습니다. 이렇게 하면 다음 두 가지 옵션이 제공됩니다.
PAM을 사용하여 모든 사람에 대해 umask를 설정한 다음(예: 체크인 ) 시스템이 아닌 사용자 (또는 이와 유사한 사용자)
/etc/login.defs
에 대해 umask를 명시적으로 설정하십시오 ./etc/bash.bashrc
또는 이를 수행하기 위해 자신만의 PAM 모듈을 작성합니다. umask 설정은 일반적인 요청이기 때문에 이것이 많은 사람들에게 인기가 있을 것이라고 생각합니다.
이 답변을 소금 한 알로 받아들이십시오. 이런 종류의 요청은 매우 일반적이며 현재 더 나은/올바른 방법이 존재하더라도 놀라지 않을 것입니다.
답변3
@Mikel이 제안한 것처럼 데몬 역할을 하는 시스템 계정을 구성하려는 경우 데몬 자체를 구성해 보십시오.
MacOS에서 _www 계정에 대해 umask를 설정하는 방법을 알아내려고 이 질문을 발견했습니다. 위의 답변에서 알 수 있듯이 이는 어렵지만 Apache 서비스를 (이 경우) user == 데몬으로 구성하여 문제를 해결할 수 있다는 것을 알았습니다.
이상하게도 다음의 도움을 받아 시작 스크립트(일반적으로 /etc/init.d/에 있지만 Mac에서는 Library/LaunchDaemons/에 있음)를 찾을 수 없습니다.http://krypted.com/mac-security/apache2-umasks/아파치에 고유한 특정 환경 스크립트가 있음을 발견했습니다.
$ sudo vim /usr/sbin/envvars
umask 002
다른 데몬에도 비슷한 방법이 있을 수 있으며 이는 특정 상황에서 도움이 될 수 있습니다.