アクセラと+αな生活
アクセラとα350と共に過ごす気まぐれ日記です。
Firefox ブラウザ無料ダウンロード
2017年10月
≪09月  1  2  3  4  5  6  7  8  9  10  11  12  13  14  15  16  17  18  19  20  21  22  23  24  25  26  27  28  29  30  31    11月≫
スポンサーサイト
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
Ubuntu9.04で管理用の一般ユーザを追加する。では、Ubuntu で sudo が実行できるユーザを作成しました。

VineLinux でも sudo は利用できます。
Ubuntu(サーバ版でない) とは違い、VineLinux はサーバ用途でも使用しますので、sudo が使えればいいというレベルだと意味がありません。
sudo で全てのコマンドがどこでも実行できる。。。なんて設定はするだけ無駄、root で実行するのと変わらないですからね。

なので、Vine 5 ちゃんでは sudo の実行権限をもっと詳細に設定してみます。


【一般ユーザの作成】
ユーザの追加は「useradd」、「adduser」で行います。
どちらでも同じですね。

今回は「test」というグループを作成し、「test」グループへ所属する「test」というユーザを作成してみます。

# groupadd test
# useradd -g test test

# id test

uid=501(test) gid=501(test) 所属グループ=501(test)

# grep test /etc/passwd
test:x:501:501::/home/test:/bin/bash


これで、ユーザの作成は完了ww
home ディレクトリも作成されてますね。

【sudo の実行権限の付与】
次に「visudo」で作成したユーザに sudo の実行権限を付与します。

「sudoers」での書式は
<ユーザ名> <実行するホスト:ALLは全ホスト> = (<実行ユーザ:ALLは全ユーザ>) <実行できるコマンド:ALLは全コマンドが実行可能>
になります。


ただ全ての権限を付与するだけでは、ユーザ管理しているとはいえませんね。
パッケージのインストールだけを行うユーザがサーバの停止、再起動が行えると問題ですよね?

なので、全て「ALL」ではなく、samba (smbのみ、nmbは除く)の起動、停止、再起動を行えるユーザとして、実行権限を付与してみます。

# visudo

samba の管理ユーザとして、下記を追加。
test ALL=(ALL) /etc/rc.d/init.d/smb start,
 /etc/rc.d/init.d/smb stop,/etc/rc.d/init.d/smb restart


では、test ユーザで sudo を実行してみましょう。

[test]$ sudo /etc/rc.d/init.d/smb restart
SMBサービスを停止中: [ OK ]
SMBサービスを起動中: [ OK ]

[test]$ sudo /etc/rc.d/init.d/smb status
Sorry, user test is not allowed to execute '/etc/rc.d/init.d/smb status' as root
on <ホスト名>.


このように、smb の「start」、「stop」、「restart」の実行権限を付与しましたが、「status」は記載していない(権限を付与していない)ため、「status」を実行すると、「許可がない」というエラーになります。

このようにして、sudo で実行できる、できないを設定することができます。

【実行権限の別名管理(グループ化)】
実行できるコマンドが複数になると、設定内容が分かりにくくなってしまいます。
このような場合に備え、sudoer は「Cmnd_Alias」を利用して、別名管理(グループ化)ができるようになっています。
別名管理は下記の別名オプションでコマンドだけでなく、ユーザ、ホスト、実行ユーザでも可能です。

別名オプション
 ・User_Alias・・・ユーザの別名
  書式:User_Alias <別名> = <ユーザ名>,<ユーザ名>,<ユーザ名>・・・
 ・Host_Alias・・・ホストの別名
  書式:Host_Alias <別名> = <ホスト名>,<ホスト名>,<ホスト名>・・・
 ・Runas_Alias・・・実行ユーザの別名
  書式:Runas_Alias <別名> = <実行ユーザ名>,<実行ユーザ名>,<実行ユーザ名>・・・
 ・Cmnd_Alias・・・コマンドの別名
  書式:Cmnd_Alias <別名> = <コマンド>,<コマンド>,<コマンド>・・・

例えば、「smb_init」という名前で samba のstart、stop、restart を登録しておけば、分かりやすいですよねww
設定してみましょう
# visudo
 smb_init という別名を設定
Cmnd_Alias smb_init = /etc/rc.d/init.d/smb start,
 /etc/rc.d/init.d/smb stop,/etc/rc.d/init.d/smb restart

test ユーザへコマンドエリアス smb_init を設定
test ALL=(ALL) smb_init


このようにしておけば、管理も分かりやすくなるでしょう。

ちなみに、VineLinux 5 では、デフォルトで以下のエリアスが設定されています。
よくできてますので、そのまま使えますよww
デフォルト設定のエリアス
Cmnd_Alias NETWORKING =
 /sbin/route, /sbin/ifconfig, /bin/ping, /sbin/dhclient, /usr/bin/net,
 /sbin/iptables, /usr/bin/rfcomm, /usr/bin/wvdial, /sbin/iwconfig,
 /sbin/mii-tool

Cmnd_Alias SOFTWARE =
 /bin/rpm, /usr/bin/apt-get, /usr/bin/smart, /sbin/update-alternatives

Cmnd_Alias SERVICES =
 /sbin/service, /sbin/chkconfig

Cmnd_Alias LOCATE =
 /usr/bin/updatedb

Cmnd_Alias STORAGE =
 /sbin/fdisk, /sbin/sfdisk, /sbin/parted, /sbin/partprobe, /bin/mount, /bin/umount

Cmnd_Alias DELEGATING =
 /usr/sbin/visudo, /bin/chown, /bin/chmod, /bin/chgrp

Cmnd_Alias PROCESSES =
 /bin/nice, /bin/kill, /usr/bin/kill, /usr/bin/killall

Cmnd_Alias DRIVERS =
 /sbin/modprobe


複雑になりますので、管理はユーザと権限のマトリックスを作成することをお勧めします。

【sudo 実行時のパスワード入力】
sudo のデフォルトはパスワード入力要求があります。
また、パスワードはデフォルトで5分間保持されます。

セキュリティ上問題がありますが、「NOPASSWORD」オプションでパスワード入力を省略することも可能です。
パスワード省略はセキュリティを考慮するとお勧めできないオプションですが。。。)

逆に、「timestamp_timeout」オプション」でパスワードを強制することもできます。

パスワード入力を省略する
test ALL=(ALL) NOPASSWORD:smb_init

パスワード入力を強制(パスワード保持時間を0)する。
Defaults timestamp_timeout = 0


【ユーザの削除】
ユーザの削除は「userdel <ユーザ名>」で行います。
ユーザのホームディレクトリも同時に削除する場合は「userdel -r <ユーザ名>」で行います。

グループの削除は「groupdel <グループ名>」で行います。



設定だけすれば、管理者コマンドの実行権限を詳細に管理できる sudo は使えます。


コメント
この記事へのコメント
URL :
コメント :
パスワード :
管理者にだけ表示を許可する
 
トラックバック
この記事のトラックバックURL
Template designed by アクセラと+αな生活

Powered by .
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。