Linuxでrootユーザーに切り替えて、作業を行いたい場合にどうすれば良いかわからないという人向けです。
rootの権限をもってLinuxサーバーを管理しなければならない時どうすれば良いでしょうか?
Linuxサーバーを検証で使用するので、root権限で検証する方が楽と言った事もあると思います。
そこで今回はLinuxサーバーでrootユーザーに切り替えする方法を説明します。
筆者はWindowsサーバーやLinuxサーバーの運用構築を11年以上おこなってきました。その経験を元に知識を公開していきます!
Linuxサーバーでrootユーザーに切り替えする方法

Linuxサーバーでユーザーを切り替える、suコマンドの基礎構文は以下です。
su オプション ユーザー名
rootユーザーに切り替える時はユーザー名に「root」を指定します。
Linuxサーバーでユーザーに切り替える、suコマンドのオプションについて以下にまとめます。
suコマンドのオプション | 効果 |
---|---|
– | 環境変数を引き継がない |
-m | 環境変数を引き継ぐ |
-c | ユーザーを切り替えてコマンドを実行する |
ユーザー切り替えで環境変数を引き継がない

環境変数を引き継がないようにするには「-」オプションを使用します。
現在のユーザーで環境変数を見てみます。

[testuser1@localhost ~]$ printenv
XDG_SESSION_ID=10
HOSTNAME=localhost.localdomain
TERM=xterm
SHELL=/bin/bash
HISTSIZE=1000
USER=testuser1
PWD=/home/testuser1
LANG=ja_JP.UTF-8
HISTCONTROL=ignoredups
SHLVL=1
HOME=/home/testuser1
LOGNAME=testuser1
LESSOPEN=||/usr/bin/lesspipe.sh %s
XDG_RUNTIME_DIR=/run/user/1003
_=/usr/bin/printenv
環境変数の「USER」や「PWD」や「HOME」や「LOGNAME」などで現在のユーザーの「testuser1」が使用されています。
rootユーザーに「-」オプションを使用して切り替えます。
su -
rootユーザーに切り替えて環境変数を見てみます。
[root@localhost ~]# printenv
XDG_SESSION_ID=10
HOSTNAME=localhost.localdomain
SHELL=/bin/bash
TERM=xterm
HISTSIZE=1000
USER=root
MAIL=/var/spool/mail/root
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
PWD=/root
LANG=ja_JP.UTF-8
HISTCONTROL=ignoredups
SHLVL=1
HOME=/root
LOGNAME=root
LESSOPEN=||/usr/bin/lesspipe.sh %s
_=/bin/printenv
環境変数の「USER」や「PWD」や「HOME」や「LOGNAME」などで切り替えた「root」が使用されています。
ユーザー切り替えで環境変数を引き継ぐ

suコマンドの「-m」オプションを使用する
環境変数を引き継ぐようにするには「-m」オプションを使用します。
rootユーザーに「-m」オプションを使用して切り替えます。
su -m
rootユーザーに切り替えて環境変数を見てみます。
[root@localhost ~]# printenv
XDG_SESSION_ID=10
HOSTNAME=localhost.localdomain
SHELL=/bin/bash
TERM=xterm
HISTSIZE=1000
USER=testuser1
MAIL=/var/spool/mail/testuser1
PWD=/home/testuser1
LANG=ja_JP.UTF-8
HISTCONTROL=ignoredups
HOME=/home/testuser1
SHLVL=2
LOGNAME=testuser1
LESSOPEN=||/usr/bin/lesspipe.sh %s
XDG_RUNTIME_DIR=/run/user/1003
_=/usr/bin/printenv
環境変数の「USER」や「PWD」や「HOME」や「LOGNAME」などは切り替える前の「testuser1」が使用されています。
suコマンドのオプションなしを使用する
rootユーザーにオプションなしで切り替えます。
su
rootユーザーに切り替えて環境変数を見てみます。
[root@localhost ~]# printenv
XDG_SESSION_ID=10
HOSTNAME=localhost.localdomain
SHELL=/bin/bash
TERM=xterm
HISTSIZE=1000
USER=testuser1
MAIL=/var/spool/mail/testuser1
PWD=/home/testuser1
LANG=ja_JP.UTF-8
HISTCONTROL=ignoredups
HOME=/home/testuser1
SHLVL=2
LOGNAME=testuser1
LESSOPEN=||/usr/bin/lesspipe.sh %s
XDG_RUNTIME_DIR=/run/user/1003
_=/usr/bin/printenv
環境変数の「USER」や「PWD」や「HOME」や「LOGNAME」などは切り替える前の「testuser1」が使用されています。
まとめ:Linuxサーバーでrootユーザーに切り替えする方法

Linuxサーバーでユーザーを切り替える、suコマンドの基礎構文は以下です。
su オプション ユーザー名
rootユーザーに切り替える時はユーザー名に「root」を指定します。省略してもrootになります。
su root
su
Linuxサーバーでユーザーに切り替える、suコマンドのオプションについて以下にまとめます。
suコマンドのオプション | 効果 |
---|---|
– | 環境変数を引き継がない |
-m | 環境変数を引き継ぐ |
-c | ユーザーを切り替えてコマンドを実行する |