su 루트에 대한 umask 설정

su 루트에 대한 umask 설정

내 사용자 계정에서 umaskmy로 설정하겠습니다. 그러나 루트가 되는 방법(예: tty에서 루트로 직접 로그인하거나 sudo 또는 su를 사용하여)에 관계없이 루트가 a를 사용하도록 하려고 합니다. 루트로 tty에 로그인하면 이를 알 수 있으므로 문제가 없습니다. 내가 설정했기 때문에022.bashrcumask077077sudo/etc/sudoers

Defaults umask = 0022
Defaults umask_override

알겠어요 077, 또 너무 좋아요. 의 경우 su/root/.bashrc에서 설정할 수 있습니다.

umask 022

나는 그것을 이해 umask하지만 077그것이 올바른 방법이라고 확신하지 않습니다.

어떻게 설정해 umask?su root

잠재적으로 관련성이 있는 것은 /etc/login.defs내 것입니다.

UMASK           077
USERGROUPS_ENAB yes

답변1

이 답변은 bash에만 해당되며 다른 쉘에도 비슷한 기능이 있지만 귀하의 답변에서 언급되었으므로 .bashrcBash를 사용하고 있다고 가정하겠습니다.

당신이 경험하고 있는 것은 쉘이 대화형 쉘이나 로그인 쉘로 호출될 수 있다는 것입니다.

  • bash -l- 로그인
  • bash -i- 인터렉티브

Bash 매뉴얼 페이지의 "INVOCATION" 섹션을 보면 다음 2개의 주석을 볼 수 있습니다.

  • 로그인

    로그인 쉘에 대한 인수가 없는 첫 번째 문자는 -이거나 --login 옵션으로 시작됩니다.

  • 인터렉티브

    대화식 쉘은 옵션이 아닌 인수를 취하지 않고 -c 옵션 없이 표준 입력 및 오류가 터미널에 연결되어 있거나(isatty(3)에 의해 결정됨) -i 옵션으로 시작되는 쉘입니다.
    bash가 대화형이면 PS1이 설정되고 $-에는 i가 포함되어 쉘 스크립트나 시작 파일이 이 상태를 테스트할 수 있습니다.

대화형 및 로그인 셸은 다음 순서로 구성 파일을 읽습니다. 먼저 다음을 수행합니다.

  1. /etc/구성 파일

다음은 다음 순서 중 하나입니다(먼저 발견되는 순서).

  1. ~/.bash_profile
  2. ~/.bash_login
  3. ~/.프로필

대화형 쉘(로그인 쉘 아님) ~/.bashrc은 추가 구성 파일을 읽지 않습니다 /etc/bashrc. 그들은 ~/.bashrc다음과 같은 이유로 문서 전체에서 이 섹션을 읽었습니다.

# Source global definitions
if [ -f /etc/bashrc ]; then
    . /etc/bashrc
fi

그렇다면 umask는 어떻습니까?

두 가지 유형의 셸에서 읽을 수 있으려면 umask두 가지 유형의 셸 호출에서 읽을 수 있는 위에서 언급한 파일 중 하나에 해당 파일을 포함해야 하므로 /root/.bash_profile.

답변2

루트의 umask를 설정 /root/.profile하고 su쉘이 로그인 쉘로 시작되도록 지시할 수 있습니다.

su -

관련 정보