AlmaLinux9 sudoの設定

スポンサーリンク

Linuxを含むUNIXシステムは一般のユーザでログインできたとしても、大したことは行えず、rootにならなければインストールやシステムの設定変更などは行うことができません。

セキュリティ上は一般ユーザアカウントだけを作成して、特定のコマンドだけ許可するということが望ましいのですが、それを実現するのがsudoになります。

sudoの設定ファイルは/etc/sudoersです。

# cat /etc/sudoers
<省略>

Defaults secure_path = /sbin:/bin:/usr/sbin:/usr/bin

## Next comes the main part: which users can run what software on
## which machines (the sudoers file can be shared between multiple
## systems).
## Syntax:
##
## user MACHINE=COMMANDS
##
## The COMMANDS section may have other options added to it.
##
## Allow root to run any commands anywhere
root ALL=(ALL) ALL

## Allows members of the 'sys' group to run networking, software,
## service management apps and more.
# %sys ALL = NETWORKING, SOFTWARE, SERVICES, STORAGE, DELEGATING, PROCESSES, LOCATE, DRIVERS

## Allows people in group wheel to run all commands
%wheel ALL=(ALL) ALL

## Same thing without a password
# %wheel ALL=(ALL) NOPASSWD: ALL

## Allows members of the users group to mount and unmount the
## cdrom as root
# %users ALL=/sbin/mount /mnt/cdrom, /sbin/umount /mnt/cdrom

## Allows members of the users group to shutdown this system
# %users localhost=/sbin/shutdown -h now

## Read drop-in files from /etc/sudoers.d (the # here does not mean a comment)
#includedir /etc/sudoers.d

基本的な設定の書式は以下となります。ユーザ名は頭に%をつければグループとみなされます。

ユーザー名 ホスト名=(権限) [NOPASSWD:] 対象コマンド1,対象コマンド2,

そのためデフォルトで記載されているwheelから始まる行はwheelグループに属しているユーザはsudoコマンドを使えば何でも実行可能ということになります。ただし、NOPASSWDがついてないので実行の際にはパスワードを求められます。

# useradd -g wheel testuser
# passwd testuser
Changing password for user testuser.
New password:

[パスワード設定後、testuserでログイン]

$ whoami
testuser
$ cat /etc/shadow
cat: /etc/shadow: Permission denied
$ sudo cat /etc/shadow

We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:

#1) Respect the privacy of others.
#2) Think before you type.
#3) With great power comes great responsibility.

[sudo] password for testuser: [testuserのパスワードを入力]

<表示>

上はグループ単位で制御してますが、ユーザ単位で制御することのほうが多いです。正直セキュリティ上はあまり良くはないと思うのの、利便性を考えたら特定ユーザはパスワードなしでrootになれるという手法をとったほうが運用上は便利です。下記はtestuserに全ての権限をパスワードなしで実行できるというものです。

/etc/sudoersは直接編集するのではなくvisudoコマンドを利用して編集することが奨励されています。

# visudo

<追記>
testuser ALL=(ALL) NOPASSWD: ALL

この状態でtestuserはrootパスワードなしでsudoコマンドでrootになれるようになります。パウワードを付ける場合はNOPASSWDオプションを外せばパスワードを聞かれます。

# visudo

<追記>
testuser ALL=(ALL) ALL

上記でtestuserのパスワードでrootになることができます。

スポンサーリンク

シェアする

  • このエントリーをはてなブックマークに追加

フォローする