(本文验证环境为 Ubuntu 14.04 和 Lubuntu 13.04)
Ubuntu 维护者们认为实在没有必要使用 root 帐户,因为你想做的所有事情管理员都可以完成,管理员只需使用 sudo 命令即可。
但是如果你不想每次都输入 sudo 或者坚持要使用 root 账号来做某些事情,你最好的选择是通过启动一个 shell 来模拟 root 登录,具体操作是使用如下 sudo 命令:
$ sudo -i
该命令是启动一个 shell 来作为目标账号(root)的登录 shell,也就是说目标账号(root)的登录资源文件例如 .profile 会被预先加载。
你也可以使以下命令:
$ sudo -s
与 sudo -i 不同的是,sudo -s 启动的 shell 不会加载 root 的环境变量,而是使用当前 shell 的环境变量。
Ubuntu 初始状态时没有为 root 设置密码,如果你真的想使用 root 账号登录,可以为其设定一个登陆密码:
$ sudo passwd root Enter new UNIX password: Retype new UNIX password: passwd: password updated successfully
之后就可以使用新设定的密码登录 root 账号。使用 root 账号会带来风险,Ubuntu 维护者们建议除非必要,否则不要使用 root 账号。
你可以使用以下命令锁定 root 密码来阻止登录:
$ sudo passwd -l root
解锁 root 密码登录:
$ sudo passwd -u root
另外还有删除和锁定密码登录:
$ sudo passwd -dl root
重置 sudo 的超时,迫使下次使用 sudo 时一定要重新输入密码:
$ sudo -k
基础安全模式是一样的,因此这二者所面临的风险也是一样的。任何可以使用 su 或者 sudo 的账号都必须是经过特别许可的用户才能获得。如果该用户的账号被黑客侵入,那么黑客就可以想用户那样获取 root 权限。所以说用户的账号是安全链中脆弱的一环,必须像 root 账号一样受到重视和保护。
另外,sudo 所具有的特性更加鼓励不同的工作习惯,这对系统安全具有正面影响。sudo 通常是用来执行单条命令,而 su 通常都是用来启动一个 shell 并执行多条命令。sudo 可以防范不小心忘了关闭 root shell 所带来的风险,并且促进用户尽可能少的使用 root 权限。
附:
1. 更多关于 sudo 命令