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*