하는 것 사이에 (환경적으로?) 어떤 차이가 있는지 궁금합니다.
sudo su - user
그리고
sudo -iu user
내가 아는 것 : sudo su - user를 사용하여 사용자로 새 쉘을 열고 대시는 사용자의 환경 변수를 제공하고 (sudo su user는 그렇지 않음) sudo -iu user도 사용합니다 (정확한 사용자의 경우 -u, - "초기 로그인 시뮬레이션"을 위한 것입니다).
그렇다면 차이점이 있나요?
첫 번째는 사용자가 루트로 su를 실행할 수 있어야 하고 두 번째는 bash를 사용자로 실행할 수 있어야 한다는 사실을 제외하면
감사해요 !
답변1
"-i" 옵션에 대한 sudo 매뉴얼 페이지의 내용은 다음과 같습니다.
-i The -i (simulate initial login) option runs the shell specified in
the passwd(5) entry of the user that the command is being run as.
The command name argument given to the shell begins with a `-' to
tell the shell to run as a login shell. sudo attempts to change to
that user's home directory before running the shell. It also ini-
tializes the environment, leaving TERM unchanged, setting HOME,
SHELL, USER, LOGNAME, and PATH, and unsetting all other environment
variables. Note that because the shell to use is determined before
the sudoers file is parsed, a runas_default setting in sudoers will
specify the user to run the shell as but will not affect which
shell is actually run.
이는 기본적으로 참조된 사용자의 쉘을 시뮬레이션하고 있지만일부의도한 사용자가 직접 로그인한 것과 정확히 일치하지 않을 수도 있습니다. "라고 묻는다면무엇" 머리로는 말할 수 없습니다. 하지만 sudo su - user
command를 사용하면 참조된 사용자의 설정으로 자체적으로 새로운 쉘 프로세스를 시작하기 때문에 질문이 없습니다. 경우에 따라 이 두 명령은 동일한 환경이 발생하지만 다른 환경에서는 내 의견으로는 불일치가 발생할 수 있습니다.