![슈퍼유저에서는 "usermod"가 작동하지 않는 이유는 무엇입니까?](https://linux55.com/image/174143/%EC%8A%88%ED%8D%BC%EC%9C%A0%EC%A0%80%EC%97%90%EC%84%9C%EB%8A%94%20%22usermod%22%EA%B0%80%20%EC%9E%91%EB%8F%99%ED%95%98%EC%A7%80%20%EC%95%8A%EB%8A%94%20%EC%9D%B4%EC%9C%A0%EB%8A%94%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
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