CentOS 7을 설치했습니다. 여기서 /bin/sh는 bash에 대한 심볼릭 링크입니다. 그러나 sudo를 사용할 때는 다르게 동작합니다. 예를 들어 "sudo sh"를 사용하면 다음과 같습니다.
[[email protected] ~]$ sudo sh
sh-4.2# echo $PATH
/sbin:/bin:/usr/sbin:/usr/bin
"sudo bash"를 사용하십시오:
[[email protected] ~]$ sudo bash
[[email protected] centos]# echo $PATH
/opt/puppetlabs/puppet/bin:/sbin:/bin:/usr/sbin:/usr/bin
추가 PATH 요소는 /etc/profile.d/-script에서 제공됩니다. 왜 "sudo sh"가 표시되지 않습니까?
답변1
~/.bashrc
Source /etc/bashrc
, 그 다음 source /etc/profile.d/*
(그러나 /etc/profile
?는 아님). 이 혼란스러운 동작이 Redhat 파생 제품에만 해당되는지는 모르겠습니다.
~/.bashrc
비로그인 쉘로 실행될 때 bash에 의해 획득됩니다. (로그인 쉘로 실행하면,배쉬 문서~./bashrc
)에서 수동 소싱을 확인하는 것이 좋습니다 ~/.bash_profile
.
하지만 실행해 보면 sh
소스 ~/.bashrc
가 없습니다. sh
로그인 셸로 실행하지 않으면 아무 것도 가져오지 않습니다.
이러한 혼란을 피할 수 있는 한 가지 방법은 sudo -i
원하는 경우 로그인 셸을 실행하는 것입니다. 사용되는 쉘은 대상 사용자의 쉘(즉, root
기본적으로)을 기반으로 선택됩니다.