きまブログ

2022-12から再開しました。

Ubuntu 始めました。(1)なぜ sudo をつけるのか?

※ 2015-03-05 に書いた記事を修正して再UPしました。

CentOSとは3の頃から、かれこれ、10年ほどのお付き合いですが、
数カ月前から、本格的に Ubuntu を使い始めました。
しばらくは、

「コマンドの前にsudoつければいいんでしょ?」

くらいで、使っていましたが、本格的に移行する事を考えると、
もう少し、ちゃんと勉強したほうがよさそう。

CentOSUbuntu 移行の理由。

住み慣れたOSのからの移行には、それなりに理由があり。。

  • yum で提供されるパッケージが古すぎて、ネットで話題になっていることが、カジュアルに試せない。
  • HowToが、Ubuntuベースで解説がされていることが多い。
  • Googleトレンドで見ても圧倒的。トレンドはUbuntu

といったところでしょうか。。

加えて、initシステムが、CentOSがSystemdになり、UbuntuUpstartに移行していく雰囲気だったんですが、結局、両方ともSystemd採用になった模様。

2015年4月1日 Ubuntuのsystemd転向が呼ぶ波紋|gihyo.jp … 技術評論社

そもそも、なぜ 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にはない気がするのだが。。互換性のための記述か?


とりあえず、まずはココまで。