現在のユーザー(同じ端末)からログアウトせずに他のユーザーとしてログインしたいです。どうすればいいですか?
答え1
コマンドを使うのはどうですかsu
?
$ whoami
user1
$ su - user2
Password:
$ whoami
user2
$ exit
logout
rootとしてログインする場合は、ユーザー名を指定する必要はありません。
$ 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 を使用してインスタンス化されないからです。