Sudo 和 Root 帐号

在 Ubuntu 中, 传统 UNIX 'root' 被屏蔽了 (也就是 你不能使用 root 来登录). 这样选择的原因在本文的后面做出描述。
Hiweed Linux 采用 Xubuntu 软件库,所以也继承了 Ubuntu 的这一特点。

使用 root 权限执行命令, 在每个命令前面加上 'sudo' 命令, 例如
sudo chown bob *
你将会提示输入你的口令, 口令将保存 15 分钟. 过了这个时间, 你将需要重新输入你的口令.
在使用 Hiweed Linux 时,推荐使用 sudo.


启动一个 root shell (例如 一个你可以运行 root 命令的窗口) 使用:
sudo -s
警告: sudo -s 不会改变环境变量 ($HOME, $PATH 等). 它有一些不好的副作用. 你可以使用 sudo -i 初始化整个 root 环境.

为了启用 root 帐号 (也就是 设置一个口令) 使用:
sudo passwd root

当你使用完毕后屏蔽 root 帐号 使用:
sudo passwd -l root
这个将锁住 root 帐号.

给图形界面的应用程序 root 权限,使用:
gksudo [application]

使用 sudo 与 gksudo 相反, 有可能产生文件的所有权问题 .

这种模式的好处
缺省禁止 root 的好处包括了以下内容.

起初 Ubuntu 团队希望安装尽可能的简单. 不使用 root , 在安装期间的两个用户交互步骤可以省略. (科林·沃森)

更进一步, 如果在安装中使用 root, 用户将被要求永远记住他们选择的密码--即使他们很少使用到它. Root 密码经常被对 Unix 安全模型不熟悉的用户忘记. (马特·齐默曼)

它防止了缺省登录时 "我能做任何事情" --在较大的变化发生之前,你将被提示输入口令,这可以使你考虑你这样做的结果. 如果你作为 root 登录, 你可以删除一些 "没用的文件夹" 并且不会意识到你正处于错误的目录,那时已经太晚了. 它是在 Unix 下长时间使用
"su-command-^D" 练习的情况下,代替一直呆在 root shell--除非你做严重的系统维护 (那时你仍然可以使用"sudo su"). (吉姆·奇塔姆 和 安德鲁·索巴拉)

Sudo 增加了运行命令的日志记录 (在 /var/log/auth.log). 如果你陷入困境, 你总是可以返回并看见那些运行的命令. (安德鲁·Zbikowski)

安全
与传统的 superuser 模型相比,这种方法有不同的利弊,两者都不总是显示优良的.
在鼓励使用 root 权限执行一个单独的命令, sudo 好过打开一个 shell:
减少使用 root 权限的时间总耗用, 降低了不注意使用 root 执行命令的风险

提供了有用的审核痕迹
有一个单独的 root 密码 (传统模型) 提供了一层额外的保护,当如果一个管理员的密码被侵害时。
无论怎样, 如果管理员 (使用 sudo 或 su 变成 root) 被侵害, 攻击者一般可以通过一次间接的攻击来获得 root

使用 "sudo" 模式可能的问题
尽管桌面使用 sudo 的是有利的,不过还是有些可能的问题需要注意.
一些来自 universe 的包将有力的破除 (例如 webmin) 或让使用变得危险. 一个好的变通方法是在处理受影响的包之前激活 root 帐号 (sudo su-; passwd <password>) 并在后面锁住 (su -; passwd -l).
运行使用 sudo 的命令重定向输出可能引发新用户问题 (考虑 "sudo ls > /root/somefile"). 变通方法是使用 "sudo sh -c 'ls > /root/somefile'" (但这种替换变得非常丑陋), 使用 Adverbio, 或简单的使用 sudo -s 获得 root shell ,在那里执行。
MattZimmerman: 对于大多数的简单解决方法是使用 dd(1): ls | sudo dd of=/root/somefile
在许多办公室环境系统上唯一的用户就是 root. 全部其他用户使用 NSS 技巧例如 nss-ldap 导入. 安装一个工作站, 或修复它, 在这个案例网络失败,导致 nss-ldap 被断开, root 被要求使用. 这中倾向于留下系统无法使用,除非被破解.

JerryHaltom: 也许在那些案例必需建立一个本地帐号: "admin" 拥有 sudo 到 root 权限.

LucasVignoliReis: 我认为这是一个好的主意, 一个 sudoer 系统管理员帐号, 和一个普通帐号给其它的用户.
误解

sudo 没有 su 安全?
基本的安全模型都是一样的, 因此这两个系统有着一致的主要弱点. 任何使用 su 或 sudo 必需是一个特权用户.如果攻击者损害了那个用户的帐号, 下次用户这样做时,攻击者同样可以获得 root 特权. 用户在这条链上是一个弱的连接, 因此必须作为 root 用户小心保护.

在更深的层次, sudo 提供不同的工作技巧, 这些肯定可以影响到系统的安全. sudo 通常被用来只执行单一的命令, 当 su 被通常使用打开一个 shell 并执行多条命令. sudo 尽量减少一个离开时被打开 root shell 的可能性, 并鼓励减少用户的 root 特权.
我不能进入单用户模式!
在 Ubuntu 的 sulogin 程序被计划修改来处理被锁住的 root 口令.
我刚找到的,但还不明白,有了DUbuntu了,还出Hiweed Linux干吗?不是没事找事吗?
一起合作不更好吗?

摘自: http://forum.ubuntu.org.cn/viewtopic.php?f=103&t=22058 kldoo的发言.

posted on 2009-07-23 21:53  中道学友  阅读(822)  评论(0编辑  收藏  举报

导航

技术追求准确,态度积极向上