在 Ubuntu, 传统 UNIX ’root’ 被屏蔽了 (也就是 你不能使用 root 来登录). 这样选择的原因在本文的后面做出描述.
快速回答
使用 root 权限执行命令, 在每个命令前面加上 ’sudo’ 命令, 例如 sudo chown bob *
你将会提示输入你的口令, 口令将保存 15 分钟. 过了这个时间, 你将需要重新输入你的口令.
在使用 Ubuntu 时,推荐使用 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] 或: kdesu [application]
ubuntu 中的 kdesu 已修改成使用 sudo.
使用 sudo 和 gksudo/kdesu 相反, 有可能产生文件的所有权问题 .
这种模式的好处
缺省禁止 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 ) 并在后面锁住 (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 口令.