슈퍼유저에서는 "usermod"가 작동하지 않는 이유는 무엇입니까?

슈퍼유저에서는 "usermod"가 작동하지 않는 이유는 무엇입니까?

sudo 명령을 통해 성공적으로 완료되었습니다 usermod.

sudo usermod -aG some_group some_user

하지만 su를 통해 실행하면 오류가 발생합니다.

su
...I enter root password...
usermod -aG some_group some_user
bash: usermod: command not found

왜 이런 일이 발생합니까?

시스템을 어떻게 구성하나요?

사실, 변경할 수 없는 스크립트가 있습니다. 이 스크립트는 su에서 usermod 명령을 사용합니다.

답변1

필요한 $PATH설정 입니다 root. 이것은 sudo자체적으로 있기 때문에 문제가 되지 않습니다 $PATH.

su기본적으로 변경되지 않습니다 $PATH. 로그인 쉘을 시작해야 합니다.

su -

그냥보다는

su

su통화를 변경할 수 없는 경우 $PATH통화 전에 변경하세요. usermod찾은 경우 /usr/sbin/usermod다음을 수행하십시오.

PATH=/usr/sbin:$PATH
su

답변2

su쉘 변수를 수정할 수 있는 /etc/profile에서 구성 파일을 로드합니다 $PATH.

man su설명하다

-m, -p, --preserve-environment
              Preserve the entire environment, i.e., it does not set HOME,
              SHELL, USER nor LOGNAME.  This option is ignored if the option
              --login is specified.

따라서 플래그를 사용하여 기존 쉘에서 --preserve-environment로드하십시오 .$PATH

su --preserve-environment

또는
PATH 변수를 수동으로 내보냅니다.

su
export PATH=$PATH:/path/of/usermod/dir

관련 정보