이전 사용자를 참조하지 않고 어떻게 사용자를 전환할 수 있나요?

이전 사용자를 참조하지 않고 어떻게 사용자를 전환할 수 있나요?

얼마 전 권한이 없는 LXC를 사용하는 동안 su컨테이너 생성 명령을 사용하여 사용자로 전환하면 실패했지만 ssh user@localhost로그인에 사용한 경우에는 실패했다는 사실을 발견했습니다.

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

감사해요!

답변1

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

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

따라서 시도해 보고 su --login이것이 귀하의 요구 사항을 충족하는지 확인할 수 있습니다.

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

관련 정보