umask 값 변경

umask 값 변경

umask특정 사용자에 대한 값을 022에서 002로 변경하고 싶습니다 jboss. 이제 /etc/profile의 설정은 다음과 같습니다.

if [ $UID -gt 199 ] && [ "`id -gn`" = "`id -un`" ]; then
umask 002
 else
umask 022
fi

변경하면 /etc/profile모든 사용자에게 영향을 주는데 해당 사용자의 설정만 변경하고 싶습니다 jboss. 이를 위해 .basrhrc/.bash_profile사용자의 홈 디렉토리를 편집할 수 있습니다. 하지만 나에게 문제는 사용자에게 쉘이 없다는 것입니다. umask쉘이 없는 사용자를 위해 설정된 모든 방법.

답변1

이는 umask사용자가 아닌 프로세스의 속성입니다.

이는 하위 항목에 의해 상속되며 명령 실행(setuid 명령도 포함) 전반에 걸쳐 지속됩니다.

umask()시스템 호출을 통해 설정 됩니다 . 이 시스템 호출 umask()에 대한 쉘 인터페이스는 umask내장 명령입니다.

프로세스가 uid를 변경할 때마다 umask를 변경하는 마법 같은 방법은 없지만 uid를 변경하는 데 일반적으로 사용되는 구성할 수 있는 일부 프로그램이 있습니다. 적어도 Linux에서는 PAM 스택(보통 로그인 프로그램)을 사용하거나 모듈 pam_umask또는 sudo.

하지만 여기서는 사용자에게 셸이 없다는 점을 고려하면 로그인한 사용자가 아닌 것 같고 실제로 해당 사용자로 특정 소프트웨어를 실행하여 해당 umask를 소유하려고 합니다. 그렇다면 소프트웨어를 실행하기만 하면 됩니다.

(umask 002; exec that-software)

쉘 스크립트에서.

관련 정보