Ubuntuにおけるログインユーザの確認・変更方法について調べたのでメモ。
- システムに登録されているユーザーの一覧を表示
- ログインしているユーザー情報を表示
- ユーザを切り替える
確認した環境
Ubuntu16.04LTS
システムに登録されているユーザリストの確認
etc/passwdファイルに記載されています。
hibikisan@ubuntu:/$ cat etc/passwd
下記のようにユーザー情報が一覧で得られます。
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
:
:
hibikisan:x:1000:1000:hibikisan,,,:/home/hibikisan:/bin/bash
:
:
guest-p1xolj:x:999:999:ゲスト:/tmp/guest-p1xolj:/bin/bash
guest-nyicbk:x:997:997:ゲスト:/tmp/guest-nyicbk:/bin/bash
出力結果は7つのフィールドで構成されていて、コロン(:)で区切られています。それぞれのフィールドの内容を下表に示します。
フィールド | 内容 | 上記の例 |
---|---|---|
第1フィールド | ユーザ名(ログイン名) | hibikisan |
第2フィールド | (暗号化パスワード)現在は’x’が記載 | x |
第3フィールド | ユーザーID | 1000 |
第4フィールド | グループID | 1000 |
第5フィールド | コメント | hibikisan,,, |
第6フィールド | ホームディレクトリのパス | /home/hibikisan |
第7フィールド | ログインシェル名 | /bin/bash |
参考)Ubuntu manuals: http://manpages.ubuntu.com/manpages/xenial/ja/man5/passwd.5.html
現在ログインしているユーザーを確認する
whoコマンドを使います。下記の通りログイン時刻も表示されます。
hibikisan@ubuntu:~$ who
hibikisan tty7 2019-05-25 18:18 (:0)
ユーザー情報を確認する
whoamiコマンドは、現在のユーザ名が表示されます。
hibikisan@ubuntu:~$ whoami
hibikisan
また、idコマンドを使うと、現在のユーザの情報が確認できます。以下は筆者の環境の場合です。
hibikisan@ubuntu:~$ id
uid=1000(hibikisan) gid=1000(hibikisan) groups=1000(hibikisan),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),113(lpadmin),128(sambashare),982(docker)
ちなみにroot(管理者)の場合は以下
root@ubuntu:/home/hibikisan# id
uid=0(root) gid=0(root) groups=0(root)
ユーザーの変更
suコマンドによるユーザーの変更
suコマンドを使うと、セッション中にユーザを変更できます。
使い方は以下です。
su [option] [user]
[option]は省略できます。この場合は、環境変数・カレントディレクトリ両方とも変更ないままユーザーを切り替えます。
確認のため、あらかじめ環境変数の設定とカレントディレクトリを取得しておきます。
# 環境変数の設定
hibikisan@ubuntu:~$ export SAMPLE=sample
# カレントディレクトリの取得
hibikisan@ubuntu:~$ pwd
/home/hibikisan
suコマンドでユーザを変更します。
hibikisan@ubuntu:~$ su root ★rootに変更
パスワード:
root@ubuntu:/home/hibikisan# ★パスワード入力後、ユーザーがrootに変更されました。
★ 環境変数は変更されません
root@ubuntu:/home/hibikisan# echo $SAMPLE
sample
★ カレントディレクトリも変わりません
root@ubuntu:/home/hibikisan# pwd
/home/hibikisan
尚、rootのパスワードは自分で設定する必要があります。
※)過去に設定したことがない場合はこちらを参照。
環境変数、カレントディレクトリを変更してユーザを切り替える
[option]を–とすると、ログイン・シェルを使用してユーザーを切り替えます。この時、環境変数はリセットされ、カレントディレクトリはそのユーザのホームディレクトリになります。
下記に具体例を示します。環境変数とカレントディレクトリは上記と同様にあらかじめ確認しておきます。
hibikisan@ubuntu:~$ su - root ★rootに変更
パスワード:
root@ubuntu:~# ★パスワード入力後、ユーザーがrootに変更されました。
# 環境変数はリセットされます
root@ubuntu:~# echo $SAMPLE
# カレントディレクトリはrootのホームディレクトリに変更されます
root@ubuntu:~# pwd
/root
指定したユーザでコマンド実行させる
[option]を-c COMMANDとすると、指定したユーザでCOMMANDを実行した結果を返します。
具体例を示します。
# rootへ切替後、whoamiを実行
hibikisan@ubuntu:~$ su -c whoami root
パスワード:
root ★rootユーザでwhomaiコマンドを実行
hibikisan@ubuntu:~$ ★現状のユーザはそのまま
# ユーザへ切替後、whoamiを実行
root@ubuntu:~# su -c whoami hibikisan
hibikisan ★hibikisanユーザでwhomaiコマンドを実行
root@ubuntu:~# ★現状のユーザはそのまま
rootユーザのパスワードが不明な場合
passwdコマンドを使って、以下で設定が可能です。
hibikisan@ubuntu:~$ sudo passwd root
[sudo] hibikisan のパスワード:
新しい UNIX パスワードを入力してください:
新しい UNIX パスワードを再入力してください:
passwd: パスワードは正しく更新されました
まとめ
今回は、Ubuntuでのユーザと権限を確認する方法、およびユーザーの切り替え方法についてまとめました。
コメント
[…] 参考記事: 【Ubuntu】 ログインユーザーの確認、およびユーザーの切り替え方法 […]