시스템 사용자(system user) umask 설정.

TL;DR

/etc/passwd 의 GECOS 항목에 umask 를 넣어주면 된다.

chfn --other='umask=002' <username>

고마워요 StackOverFlow!


로그인이 되는 일반 사용자라면, .profile 등에 umask 를 넣어주면 된다.
그러나, daemon 등으로 돌아가는 시스템 사용자라면? 이런 경우 아예 로그인이 안되게끔 설정해놨기 때문에 .profile 등은 작동하지 않는다.

(이것을 알아내기 위해 반나절을 또 뻘짓을 했고, 포기하고 다른 글을 쓰다가 우연히 찾아내게 됐다.)

mpd 때문에 이 짓을 하게 됐는데.. 암튼 귀중한 정보를 또 하나 배웠다.
위에 나온대로 chfn 명령을 쓰면 되고, 또는 직접 /etc/passwd 를 수정해줘도 된다.

mpd 의 경우 다음과 같다.

# umask 넣기 전
mpd:x:114:29::/var/lib/mpd:/usr/sbin/nologin

# umask 넣은 후
mpd:x:114:29:,,,,umask=002:/var/lib/mpd:/usr/sbin/nologin

그럼에도 불구하고, mpd 재생목록은 여전히 사용자만 예뻐한다. (group 쓰기 권한이 설정되지 않는다.)

-rw-r--r-- 1 mpd audio  64K 2021-09-09 21:56  00_test.m3u
-rw-rw-r-- 1 mpd audio    0 2021-09-09 21:43  00002

00_test.m3u 는 Cantata 로 만든 재생목록이고, 00002 는, sudo -u mpd touch 00002 로 만든 파일이다.
m3u 는 여전히 사용자에만 허가가 돼 있고, 00002 는 group 에게도 허가권이 있다.

아마도 mpd 프로그램이 이렇게 설계돼 있는 모양이라고 막연히 짐작만 할 뿐, 왜 이런 일이 생기는진 모르겠네!

오늘도 꽃삽질!

Author: 아무도안

안녕하세요. 글 남겨주셔서 고맙습니다.