저는 Linux 명령줄에서 작업하고 있습니다. 그런데 제가 읽고 있는 책에는 su -l(-) username
새로운 셸 세션을 시작하고 변경하려는 사용자의 환경을 로드한다고 나와 있는데 su
그렇지 않습니다.
저는 root일 때 명령을 입력했으므로 su testuser
testuser였습니다. 그런데 그 이후에 를 입력했는데 echo "$USER"
이라고 하더군요 testuser
. 이는 테스트 사용자의 환경을 로드한다는 의미입니다. 그렇죠? 뭐가 문제 야?
"새 쉘 세션 시작"이란 정확히 무엇을 의미합니까? 쉘에 로그인 및 로그아웃 메커니즘이 있습니까?
답변1
수루트 권한을 제공하지만 PATH 변수와 현재 작업 디렉터리는 변경되지 않습니다. 따라서 /usr/sbin 폴더에 있는 파일은 실행할 수 없습니다.
수-PATH도 변경됩니다. 루트의 홈이 현재 작업 디렉터리가 됩니다. 당신은 제대로 루트가 되어 모든 명령을 실행할 수 있습니다.