시스템 사용자에 대해 umask를 설정하는 방법은 무엇입니까?

시스템 사용자에 대해 umask를 설정하는 방법은 무엇입니까?

umask(으로 생성된) 시스템 사용자에 대해 설정할 수 있습니까 useradd --system username?

답변1

사용자의 umask를 설정하는 세 가지 일반적인 방법이 있습니다.

  1. 설정UMASK/etc/login.defs
  2. pam_umask.soPAM 구성에 추가하십시오 ./etc/pam.d
  3. 쉘 시작 파일에 설정하십시오. 예:/etc/profile

이와 관련하여 시스템 사용자와 일반 사용자 사이에는 차이가 없습니다.

하지만 사용자 정의 umask로 데몬을 시작하려고 한다고 가정하고 있습니까?

문제는 위의 모든 옵션이 사용자가 로그인할 때 발생한다는 것입니다. 데몬을 실행하는 경우 데몬은 절대 로그인하지 않습니다. 이는 init에 의해 시작된 다음 루트로 실행되거나 setuid지정한 시스템 사용자로 실행하도록 호출합니다. .

주요 옵션은 다음과 같습니다.

  1. umask초기화 스크립트를 넣으세요( 예 grep umask /etc/init.d/*를 들어보세요)
  2. 사용자 정의 umask로 프로그램을 시작하도록 init를 구성합니다(systemd.exec 신생 우마스크)
  3. start-stop-daemon를 사용하는 경우umask 옵션
  4. 프로그램 자체를 수정하여 호출우마스크함수 또는 시스템 호출

답변2

시스템 사용자는 비밀번호 만료, 홈 디렉토리(시스템 사용자에게는 홈 디렉토리가 없음), UID(시스템 사용자는 일반적으로 임의의 임계값 미만임)의 세 가지 면에서 '일반' 사용자와 다릅니다.

일반적인 경우에는 거의 완전히 운이 좋지 않습니다. PAM을 사용하여 umask를 설정할 수 있지만 PAM은 이러한 세 가지 차이점 이외의 사항을 기반으로 동작을 선택합니다.

즉, PAM이 '시스템' 사용자와 '비시스템' 사용자를 구별하도록 할 수 없습니다. 이렇게 하면 다음 두 가지 옵션이 제공됩니다.

  • PAM을 사용하여 모든 사람을 위한 umask를 설정한 다음(예: check in /etc/login.defs) 시스템이 아닌 사용자를 위한 umask를 명시적으로 설정하거나 /etc/bash.bashrc이와 유사합니다.

  • 또는 이를 수행하기 위해 자신만의 PAM 모듈을 작성합니다. umask를 설정하는 것은 일반적인 요청이기 때문에 많은 사람들이 환영할 것이라고 생각합니다.

이 대답을 소금 한 꼬집으로 받아주세요. 이런 종류의 요청은 매우 일반적이며 현재 더 나은/적절한 방법이 존재하더라도 놀라지 않을 것입니다.

답변3

@Mikel이 제안한 것처럼 데몬인 시스템 계정을 구성하려는 경우 데몬 자체를 구성해 보십시오.

MacOS에서 _www 계정에 대한 umask를 설정하는 방법을 찾고 있는 이 질문에 왔습니다. 위의 답변에서 알 수 있듯이 이것은 어렵지만 Apache 서비스를 (이 경우) 사용자 == 데몬으로 구성하여 해결할 수 있다는 것을 알았습니다.

이상하게도 시작 스크립트(일반적으로 /etc/init.d/에 있지만 Mac에서는 Library/LaunchDaemons/에 있음)를 찾을 수 없었지만 다음의 도움을 받았습니다.http://krypted.com/mac-security/apache2-umasks/아파치에 고유한 특정 환경 스크립트가 있다는 것을 발견했습니다.

$ sudo vim /usr/sbin/envvars
    umask 002

아마도 다른 데몬에도 비슷한 방법이 있을 수 있으며 이는 특정 경우에 도움이 될 수 있습니다.

관련 정보