(환경에서?) 하는 것과 어떤 차이가 있는지 궁금합니다.
sudo su - user
그리고
sudo -iu user
내가 아는 한: sudo su - user를 사용하여 사용자로 새 셸을 열면 대시는 사용자의 환경 변수를 제공하고(sudo su user는 그렇지 않음) sudo -iu user를 사용합니다(-u는 정확한 사용자를 의미합니다. - i "초기 로그인 시뮬레이션"을 의미합니다).
그렇다면 차이점은 무엇입니까?
첫 번째는 사용자가 루트로 su를 실행할 수 있도록 요구하는 것 외에, 두 번째는 사용자가 bash를 사용자로 실행할 수 있도록 요구합니다.
감사해요!
답변1
이것은 sudo 매뉴얼 페이지에서 "-i" 옵션에 대해 말하는 내용입니다.
-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
해당 명령을 사용하면 참조된 사용자의 설정으로 새 셸 프로세스를 시작할 때 문제가 발생하지 않습니다. 경우에 따라 두 명령을 모두 사용할 수 있습니다. 동일한 환경이지만 다른 환경에서는 차이가 발생할 수 있다고 생각합니다.