한 터미널에서 사용자를 전환하는 방법은 무엇입니까?

한 터미널에서 사용자를 전환하는 방법은 무엇입니까?

현재 사용자(동일 단말기)에서 로그아웃하지 않고 다른 사용자로 로그인하고 싶습니다. 어떻게 해야 하나요?

답변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를 사용하여 인스턴스화되지 않기 때문입니다.

관련 정보