그래서 쉘 스크립트를 실행해 보려고 하는데, 루트로 실행해야 하기 때문에 동작하지 않습니다. 문제는 내가 루트로 로그인했다는 것입니다수주문하다.
어떻게 이럴 수있어?
root@polo-E15301:/home/polo/Downloads# echo $USER
polo <<<---- regular user
root@polo-E15301:/home/polo/Downloads# whoami
root
root@polo-E15301:/home/polo/Downloads# echo $UID
0
root@polo-E15301:/home/polo/Downloads#
답변1
구체적으로 루팅할 때 su
,su
아니요USER
로그인 쉘이 요청되지 않는 한 설정됩니다.man su
설명하다
이전 버전과의 호환성을 위해
su
기본적으로 현재 디렉터리는 변경되지 않으며 환경 변수만 설정됩니다HOME
(SHELL
더하기USER
및LOGNAME
대상인 경우사용자루트가 아님) 혼합 환경으로 인해 발생하는 부작용을 방지하려면 항상 이--login
옵션(바로가기 대신 )을 사용하는 것이 좋습니다 .-
사용하시면 루트로 설정되어 있는 것을 su --login
보실 수 있습니다 .USER
쉘 스크립트에서는 id
환경 변수에 의존하는 대신 유사한 도구를 사용하여 루트 권한을 테스트해야 합니다. 당신은 또한 볼 수 있습니다$USER 및 $USERNAME 환경 변수는 누가 설정합니까?