【Linux】sudoコマンド設定ファイルsudoersについて

Linux

どーも!marusukeです!

sudoコマンドの設定ファイルのsudoersファイルについて説明します!

sudoersファイルについて

sudoersファイルは、sudoコマンドの動作を制御し、特定のユーザーやグループにsudoコマンドの実行を許可する設定ファイルです

sudoersファイルの場所

sudoersファイルは、通常、/etc/sudoersに配置されています。直接編集するのは推奨されず、visudoコマンドを使用して編集します

visudoコマンドで編集すると、編集時に構文エラーをチェックし、ファイルが壊れるのを防ぎます

sudoersファイルの編集

visudoコマンドを使用して編集

sudoersファイルを編集してみます

sudo visudo

出力例:

## Sudoers allows particular users to run various commands as
## the root user, without needing the root password.
##
## Examples are provided at the bottom of the file for collections
## of related commands, which can then be delegated out to particular
## users or groups.
##
## This file must be edited with the 'visudo' command.

## Host Aliases
## Groups of machines. You may prefer to use hostnames (perhaps using
## wildcards for entire domains) or IP addresses instead.
# Host_Alias     FILESERVERS = fs1, fs2
# Host_Alias     MAILSERVERS = smtp, smtp2

## User Aliases
## These aren't often necessary, as you can use regular groups
## (ie, from files, LDAP, NIS, etc) in this file - just use %groupname
## rather than USERALIAS
# User_Alias ADMINS = jsmith, mikem

## Command Aliases
...以下省略

これは自分が使用しているサーバであるAWSのEC2(RHEL9)のsudoersファイルの内容の一部です

sudoersファイルの構文

sudoersファイルのエントリは、以下のような形式で記述されます:

<ユーザー> <ホスト>=(<ランアズユーザー>) <コマンド>

例: 基本的な書き方

alice ALL=(ALL) ALL
  • alice: ユーザー名。ここでは、ユーザーaliceが対象
  • ALL: ホスト。どのホストでも有効
  • (ALL): ランアズユーザー。どのユーザーとしてでも実行可能
  • ALL: 許可されるコマンド。すべてのコマンドを実行可能

例: グループに対する書き方

%admin ALL=(ALL) ALL
  • %admin: グループadminのすべてのメンバーが対象。

例: 特定のコマンドのみ許可する書き方

bob ALL=(ALL) /usr/bin/apt-get update, /usr/bin/apt-get upgrade
  • bob: ユーザーbobが対象。
  • /usr/bin/apt-get update, /usr/bin/apt-get upgrade: apt-get updateapt-get upgradeコマンドのみ実行可能

例: パスワードを要求しない書き方

bob ALL=(ALL) NOPASSWD: /usr/bin/apt-get update
  • NOPASSWD:: このオプションを使用すると、指定されたコマンドを実行する際にパスワードの入力が不要になります

sudoersファイルの設定について

ホスト制限する書き方

特定のホストでのみ有効にすることができます

alice myhost=(ALL) ALL
  • myhost: 特定のホストmyhostでのみ有効

コマンド制限する書き方

特定のコマンドを指定することができます

alice ALL=(ALL) /usr/bin/passwd [A-Za-z]*, !/usr/bin/passwd root
  • /usr/bin/passwd [A-Za-z]*: 任意のユーザーのパスワードを変更可能
  • !/usr/bin/passwd root: rootユーザーのパスワード変更は不可

エイリアスの使用

エイリアスを使用すると、sudoersファイルの設定を簡略化できます

ユーザーエイリアスの書き方

User_Alias ADMINS = alice, bob, charlie
ADMINS ALL=(ALL) ALL
  • User_Alias ADMINS: alicebobcharlieADMINSとして定義

設定されたADMINSのユーザーたちは、すべてのコマンドでsudoコマンド実行可能になります

コマンドエイリアスの書き方

Cmnd_Alias SOFTWARE = /usr/bin/apt-get, /usr/bin/yum
alice ALL=(ALL) SOFTWARE
  • Cmnd_Alias SOFTWARE: apt-getyumコマンドをSOFTWAREとして定義

設定されたユーザーaliceは/usr/bin/apt-get, /usr/bin/yumのコマンドがsudo実行可能になります

まとめ

sudoersファイルは、システム管理者がユーザーやグループに対して特権コマンドの実行を制御するための設定ファイルです。この設定ファイルを編集して適切なコマンド実行権限をユーザーに付与しましょう!

以上です!

ここまで読んでいただきありがとうございました!

コメント

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