馬とテニスのIT革命
馬とテニスとリラックマが好きな IT 系のエンジニアです。
シェル

sudoでroot権限のスクリプトを実行する

Linux において、root にしか実行権限のないシェルスクリプトを一般ユーザーで実行したい場合、sudo コマンドを使って実行を許可できます。

sudo コマンドは、セキュリティに大きく絡むコマンドなので設定ファイルの理解が重要となってきます。

今回は sudo について紹介したいと思います。

visudoで各ユーザの権限設定

設定ファイルの場所は /etc/sudoers にあることが多いですが、ディストリビューションによっては違うかもしれません。

また、実際に /etc/sudoers を vi などで編集してもいいのですが、ファイルのシンタックスチェック(syntax)や編集時のロックの管理をしてくれる専用の visudo というコマンドが用意されています。

参考までに、users グループに /root/test.sh の実行権限を与える設定を作ってみます。

/root/test.sh のオーナーとグループは root で、パーミッションは 744(-rwxr–r–)と仮定します。

visudo を実行して一番下の行に定義します。

$ visudo

# Samples
# %users  ALL=/sbin/mount /cdrom,/sbin/umount /cdrom
# %users  localhost=/sbin/shutdown -h now
%users ALL=NOPASSWD:/root/test.sh

設定内容の説明

設定行の 1 番目が対象のグループ(ユーザー)、2 番目のイコールの左側が許可する範囲(localhostだとそのサーバのみ)、2 番目のイコールの右側が実行を許可するコマンドです。
(NOPASSWD: を指定するとパスワードなしで実行できます)

visudo で編集して保存した後、/etc/sudoers を見ると、ちゃんとファイルの中身が編集されています。

また、users グループのユーザーでスクリプトの実行ができるようになっています。

全部のコマンドに許可を与える場合は、下記のようにします。
(オススメしませんが)

# Samples
# %users  ALL=/sbin/mount /cdrom,/sbin/umount /cdrom
# %users  localhost=/sbin/shutdown -h now
%users ALL=NOPASSWD:ALL
Web API The Good Parts

オライリーの「Web API」に特化した本です。最近の多くの Web サービスは API が活用されていますが、その技術はこれまでの Web サイトとそれほど大きく変わりません。

今後、マイクロサービス化が進む中で知っておいて損はない内容が詰め込まれており、現場のエンジニアやこれから Web 系のエンジニアを目指す人にもオススメの一冊です。

created by Rinker
¥2,376
(2018/10/15 13:40:38時点 Amazon調べ-詳細)

あなたにオススメ