※ 2015-03-05 に書いた記事を修正して再UPしました。
CentOSとは3の頃から、かれこれ、10年ほどのお付き合いですが、
数カ月前から、本格的に Ubuntu を使い始めました。
しばらくは、
「コマンドの前にsudoつければいいんでしょ?」
くらいで、使っていましたが、本格的に移行する事を考えると、
もう少し、ちゃんと勉強したほうがよさそう。
CentOS → Ubuntu 移行の理由。
住み慣れたOSのからの移行には、それなりに理由があり。。
- yum で提供されるパッケージが古すぎて、ネットで話題になっていることが、カジュアルに試せない。
- HowToが、Ubuntuベースで解説がされていることが多い。
- Googleトレンドで見ても圧倒的。トレンドはUbuntu
といったところでしょうか。。
加えて、initシステムが、CentOSがSystemdになり、UbuntuがUpstartに移行していく雰囲気だったんですが、結局、両方ともSystemd採用になった模様。
そもそも、なぜ sudo をつけるのか?
冒頭でも書きましたが、Ubuntuでは、
事あるごとにというか、root権限が必要なコマンドでは、
sudoで実行する必要があります。
なぜなんだろう?
詳しいポリシーは、下記リンクを参照ください。
UbuntuTips/Others/RootSudo - Ubuntu Japanese Wiki
ザックリだと、こんな感じの理由のようです。
rootは、アカウントはあるが、ログインが禁止されている。
$ sudo passwd -S root L 02/13/2015 0 99999 7 -1
確かに、”L(ocked)” になってる。
- セキュリティ的に、攻撃者はLinuxの決め打ちのrootユーザーがあることを知っているため。
- rootパスワードを覚えなくてよい。
sudo で実行できる仕組み
これは、普通な感じですが、
- /etc/sudoers で、sudoグループは全許可。
$ sudo cat /etc/sudoers | grep -v ^$ | grep -v ^# Defaults env_reset Defaults mail_badpass Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" root ALL=(ALL:ALL) ALL %admin ALL=(ALL) ALL %sudo ALL=(ALL:ALL) ALL
%adminと%sudo グループで、すべてのコマンドの実行が許可されている。
ユーザーは、sudoグループに所属している。
adminグループは、/etc/groupにはない気がするのだが。。互換性のための記述か?
とりあえず、まずはココまで。