【Linux】su -コマンドでrootユーザーになる、sudoコマンドでrootユーザーでコマンドを実行する

Linux

Linuxのroot権限での操作方法をまとめました。

suコマンドでルートユーザーになる

以下のコマンドを実行することでrootユーザーに切り替わります。

su -

以下のコマンドでもrootユーザーに切り替えることはできますが、その場合ファイルパスがrootユーザーのホームディレクトリに移動しない状態でrootユーザーに切り替わります。

su

以下のコマンドを入力すると、ユーザーを切り替えることができます。

su - userB

sudoコマンドで一般ユーザーからルートユーザーでコマンドを実行する

以下のコマンドを実行することで、rootユーザーに切り替えなくてもrootユーザーと同じ権限でコマンドを実行することができます。

sudo ls -la

sudo コマンドを実行するとrootユーザーのパスワードの入力を求められます。

RHEL9では認可されていないユーザーが sudo を使用してコマンドを入力すると、<username> : user NOT in sudoers を含むメッセージがジャーナルログに記録されます。

第10章 sudo アクセスの管理 | Red Hat Product Documentation
第10章 sudo アクセスの管理 | Red Hat Documentation

以下のコマンドでジャーナルログを確認できます。

$ journalctl -b | grep sudoers
8.3. コマンドラインでのログの表示 | Red Hat Product Documentation
8.3. コマンドラインでのログの表示 | Red Hat Documentation

sudoersでsudoコマンドを制御する

RHEL9では以下のファイルでsudoコマンドの実行ユーザーの制限が可能です。

/etc/sudoers
第10章 sudo アクセスの管理 | Red Hat Product Documentation
第10章 sudo アクセスの管理 | Red Hat Documentation

以下のように記載してsudoの実行ユーザーを制限します。

<username> <hostname.example.com>=(<run_as_user>:<run_as_group>) <path/to/command>

具体的な記載例は以下です。

# rootユーザがどのファイルパスに対しても全てのユーザーで実行可能にする
root ALL=(ALL:ALL) ALL

# wheelグループのユーザはどのファイルパスに対しても全てのユーザーとしてパスワード無しで実行可能にする
%wheel ALL=(ALL:ALL) NOPASSWD: ALL

# user1はuser2として/home/user2/bin/配下のあらゆるコマンドを実行可能
user1 ALL=(user2) /home/user2/bin/

# user3はtail /var/log/messagesが可能になる
user3 ALL=(ALL) /bin/tail /var/log/messages*

タイトルとURLをコピーしました