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

Ubuntu 開発環境

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でのユーザと権限を確認する方法、およびユーザーの切り替え方法についてまとめました。

Learn more...

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

シェアする
ひびきをフォローする
Hbk project

コメント

  1. […] 参考記事: 【Ubuntu】 ログインユーザーの確認、およびユーザーの切り替え方法 […]