현재 사용자(동일 단말기)에서 로그아웃하지 않고 다른 사용자로 로그인하고 싶습니다. 어떻게 해야 하나요?
답변1
명령을 사용하는 것은 어떻습니까 su
?
$ whoami
user1
$ su - user2
Password:
$ whoami
user2
$ exit
logout
루트로 로그인하려는 경우 사용자 이름을 지정할 필요가 없습니다.
$ whoami
user1
$ su -
Password:
$ whoami
root
$ exit
logout
일반적으로 sudo
원하는 사용자 ID로 새 셸을 시작할 수 있습니다. 이 -u
플래그를 사용하면 원하는 사용자 이름을 지정할 수 있습니다.
$ whoami
user1
$ sudo -u user2 zsh
$ whoami
user2
sudo 액세스 권한이 없으면 ssh username@localhost와 같은 더 우회적인 방법이 있지만 sudo
그것이 설치되어 있고 사용 권한이 있다고 가정하면 아마도 가장 쉬운 방법일 것입니다.
답변2
일반적으로 sudo
원하는 사용자로 새 쉘을 시작할 수 있습니다. 이 -u
플래그를 사용하면 원하는 사용자 이름을 지정할 수 있습니다.
[mrozekma@etudes-1 ~] % whoami
mrozekma
[mrozekma@etudes-1 ~] % sudo -u nobody zsh
[nobody@etudes-1 ~] % whoami
nobody
예를 들어 sudo 액세스 권한이 없는 경우 더 우회적인 방법이 있지만 설치되어 있고 액세스 권한이 있는 경우 가장 쉬운 방법일 ssh username@localhost
것입니다.sudo
답변3
$ whoami
이 명령은 현재 사용자를 인쇄합니다. 사용자를 변경하려면 다음 명령을 사용해야 합니다(뒤에 사용자 비밀번호가 옵니다):
$ su secondUser
Password:
올바른 비밀번호를 입력하시면 지정된 사용자로 로그인됩니다. (재실행을 통해 확인하실 수 있습니다. whoami
)
답변4
터미널 세션을 다른 사용자(원래 사용자로 다시 종료할 수 없음)로 전환하려면 exec를 사용하십시오.
$|# exec su - [사용자 이름]
기술적으로 이는 새 기간 프로세스에 새 사용자를 기록하고 현재 프로세스를 종료합니다. 이렇게 하면 사용자가 종료하려고 시도하거나 Ctrl-D를 누르면 해당 사용자가 터미널을 인스턴스화한 것처럼 터미널이 닫힙니다. 즉, 사용자는 원래 사용자 용어로 다시 종료할 수 없습니다. 새로운 터미널 세션을 시작하고 원래 사용자의 조건으로 자동 로그인할 수 있다는 점을 고려하면 이는 약간 무의미하지만 그게 전부입니다.
편집: 가치가 있는 경우 ~/.bashrc에서 linux vlock 명령을 사용하여 기본적으로 터미널 세션을 잠글 수 있으며, 잠금 해제하려면 세션 사용자 비밀번호라는 용어가 필요합니다. 이는 원래 사용자 컨텍스트에서 위의 용어가 다시 시작되는 것을 부분적으로 방지합니다. 왜냐하면 해당 용어는 구성된 대로 사용자의 기본값이 아닌 ~/.bashrc를 사용하여 인스턴스화되지 않기 때문입니다.