이전 사용자를 참조하지 않고 사용자를 어떻게 전환합니까?

이전 사용자를 참조하지 않고 사용자를 어떻게 전환합니까?

얼마 전 비권한 LXC로 플레이할 때 su사용자로 전환할 때는 컨테이너 생성 명령이 실패했지만, ssh user@localhost로그인할 때는 작동하는 것을 발견했습니다.

이것은 LXC 관련 질문은 아니지만 참조를 남기거나 이전 변수를 가져오지 않고 사용자를 가장 잘 전환하는 방법이 궁금합니다.

감사해요!

답변1

su와 사이의 차이점 은 후자가 실제로 로그인 셸을 포함하는 반면, 전자는 기본적으로 새로운 대화형 셸을 생성하지만 그렇지 않다는 것입니다( 의 의미는 ssh상단의 INVOCATION 참조).man bash인터렉티브그리고로그인껍질). 에서 man su:

이전 버전과의 호환성을 위해 su는 기본적으로 현재 디렉터리를 변경하지 않고 환경 변수 HOME 및 SHELL(대상 사용자가 루트가 아닌 경우 USER 및 LOGNAME 포함)만 설정합니다. 항상 권장됩니다--login 옵션을 사용하세요(단축키 - 대신) 환경 혼합으로 인한 부작용을 방지합니다.

따라서 su --login그것이 원하는 대로 작동하는지 확인해 볼 수 있습니다.

나는 당신이 GUI를 사용하고 있다고 가정하고 있는데, 이것이 바로 종료하고 다시 로그인하지 않는 이유입니다. 그러나 그5월어쨌든 (초기화 시스템에 따라) login사용 중인 터미널에서 간단히 실행하면 가능합니다. 작동하면 일반 login:프롬프트가 표시되어야 하며, 완료되면 exit에 따라 해당 프롬프트에서 할 수 있습니다 su.

관련 정보