특정 시스템 사용자의 umask 값을 찾는 방법은 무엇입니까?

특정 시스템 사용자의 umask 값을 찾는 방법은 무엇입니까?

특정 시스템 사용자에 대한 umask 값을 찾아 해당 사용자가 새 디렉터리를 만들 때 스크립트가 실행될 때 이를 적용하고 싶습니다. Ubuntu 16.04 및 20.04 시스템을 사용하고 있습니다.

내가 찾을 수 있는 가장 가까운 대답은이 문제. 한 마디도 못 알아 들었는데 대본을 써 봤어요

for user in $(awk -F: '{print $1}' /etc/passwd); 
do 
    printf "%-10s" "$user" ; su -c 'umask' -l $user 2>/dev/null
done

허용된 답변에 "root"라는 단어가 인쇄된 다음 시스템이 정지되었습니다.

특정 시스템 사용자의 umask 값을 찾는 방법은 무엇입니까?

답변1

특정 시간에 사용자의 umask를 확인하려면 umask해당 사용자로 명령을 실행하기만 하면 됩니다. 질문에 제공한 스크립트는 파일에서 사용자 목록을 가져온 /etc/passwd다음 umask각 사용자에 대해 연속적으로 명령을 실행합니다. 그러나 여기에는 몇 가지 문제가 있습니다. 그 중 가장 중요한 것은 루트가 아닌 사용자로 실행하면 작동이 멈추고 비밀번호를 기다리는 것입니다.

사용자는 언제든지 자신의 umask를 변경할 수 있습니다(사실 사용자는 변경할 필요도 없습니다).가지다umask(umask는 프로세스에 따라 다름)이므로 매번 의존해서는 안 됩니다. 쉘 스크립트를 실행할 때 사용자가 가지고 있는 umask가 무엇인지 알고 싶다면 umask쉘 스크립트에 명령을 추가하기만 하면 됩니다. 또는 umask를 완전히 무시하고 chmod디렉터리를 원하는 모드로 설정하세요.

관련 정보