てへまぐいらんー

どうでもいいこととか書いてく雑記的なブログ。興味があることにはとりあえず手を出してみるよ

スポンサードリンク

ユーザーにSudoコマンド実行権限を付与(visudo)


皆さんはLinuxを使用しているとき、管理者権限でコマンドを実行したい場合は、どの様に実行しますか?

「su」コマンドでroot権限を委譲してから実行するのも楽でいいですが、そんなとき私、底辺ぐらまーがおすすめするのは「sudo」コマンドです。


そもそも、root権限を必要とする作業ということはセキュリティだったり起動オプションだったりとそれなりに重要なファイルだったりします。
そんなファイルやディレクトリに対してなんでも出来てしまうrootユーザーを常に使ってしまっていると危険なファイルを触っているという感覚が希薄になってしまったり、人為的なミスにより損害が発生する可能性などもあります。

管理者権限が本当に必要な場合のみ管理者権限で操作を行うことを可能にしてくれるのが「sudo」コマンドなのです。


ただし「sudo」を利用するためには設定が必要です、その設定を行っていない状態で「sudo」を実行すると・・


「sudo」のテストを行う前の前準備(root権限で行ってください)

# echo success >> sudotest
# chmod 700 sudotest
# chown root:root sudotest


このようにrootユーザーのみ読み書きの権限を持ってるファイルを作成します。

#ls -l
合計 4
-rwx------ 1 root root 8 11月 1 16:36 sudotest


「sudo」の設定を行っていない状態で「sudo」を実行する

$ sudo cat sudotest
[sudo] password for 「ログイン中のユーザー名」:「ログイン中のユーザー名のパスワード」
「ログイン中のユーザー名」は sudoers ファイル内にありません。この事象は記録・報告されます。

とこのように怒られます。

 

「sudo」を許可するユーザーの設定(本題)

sudoの実行権限を付与するには以下のコマンドを実行します。

visudo


最終行に追記してください

 

 「sudoを許可するユーザー名」  ALL=(ALL) ALL


再度、怒られてしまったコマンドを実行

$ sudo cat sudotest
[sudo] password for 「ログイン中のユーザー名」:「ログイン中のユーザー名のパスワード」
success


先ほど作成したファイルの中身を無事確認することができました。

 

また、sudoコマンドはユーザーやグループごとに実行できるコマンドを細かく設定することもできます。

一例:シャットダウンのみ許可しない設定(visudo実行後に追記してください)

 Cmnd_Alias SHUTDOWN = /sbin/halt, /sbin/shutdown, \
 /sbin/poweroff, /sbin/reboot, /sbin/init
 
 「sudoを許可するユーザー名」 ALL=(ALL) ALL, !SHUTDOWN

他にも色々細かく設定できたりするのですが、とりあえず今日は軽く触れる程度に留めておきます。

本記事ではCentOS 7.2 を使用して執筆しております。

スポンサードリンク