【Ubuntu】 ログインユーザーの確認、およびユーザーの切り替え方法

Ubuntuにおけるログインユーザの確認・変更方法について調べたのでメモ。

  • システムに登録されているユーザーの一覧を表示
  • ログインしているユーザー情報を表示
  • ユーザを切り替える

2020/2/19 記事更新

確認した環境

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 [option] [user]

主な[option]の設定は以下。

  • -c COMMAND : ユーザ切り替え後、COMMANDを実行
  • # rootへ切替後、whoamiを実行 
    hibikisan@ubuntu:~$ su -c whoami root
    パスワード: 
    root
    
    # ユーザへ切替後、whoamiを実行
    root@ubuntu:~# su -c whoami hibikisan
    hibikisan
  • : ログイン・シェルを使用してユーザーを切り替える。この時、環境変数はリセットされ、カレントディレクトリは、そのユーザのホームディレクトリになります。
  • # 環境変数を設定
    hibikisan@ubuntu:~$ export SAMPLE=sample
    
    # カレントディレクトリを確認
    hibikisan@ubuntu:~$ pwd
    /home/hibikisan
    
    # rootへユーザー切り替え(パスワード入力必要)
    hibikisan@ubuntu:~$ su - root
    パスワード: 
    
    # 環境変数はリセット
    root@ubuntu:~# echo $SAMPLE
    
    # カレントディレクトリはrootのホームディレクトリに変更
    root@ubuntu:~# pwd
    /root

    尚、rootのパスワードは自分で設定する必要があります。
    ※)過去に設定したことがない場合はこちらを参照。

また、[option]は省略することも出できます。その場合は、環境変数・カレントディレクトリ両方とも変更ないままユーザーを切り替えます。

# 環境変数を設定
hibikisan@ubuntu:~$ export SAMPLE=sample

# カレントディレクトリを確認
hibikisan@ubuntu:~$ pwd
/home/hibikisan

# rootへユーザー切り替え(option省略)
hibikisan@ubuntu:~$ su root
パスワード: 

# 環境変数は変更されない
root@ubuntu:/home/hibikisan# echo $SAMPLE
sample

# カレントディレクトリも変わらない
root@ubuntu:/home/hibikisan# pwd
/home/hibikisan

rootユーザのパスワードが不明な場合

passwdコマンドを使って、以下で設定が可能です。

hibikisan@ubuntu:~$ sudo passwd root
[sudo] hibikisan のパスワード: 
新しい UNIX パスワードを入力してください: 
新しい UNIX パスワードを再入力してください: 
passwd: パスワードは正しく更新されました

まとめ

今回は、Ubuntuでのユーザと権限を確認する方法、およびユーザーの切り替え方法についてまとめました。

Learn more...

書籍でもう少し詳しく学びたい場合はこちらもどうぞ。筆者もかなり参考にさせてもらっています!