얼마 전 권한이 없는 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
.