Ubuntu的root帐号激活

  1. 云栖社区>
  2. 博客>
  3. 正文

Ubuntu的root帐号激活

叶林森 2011-02-11 17:58:00 浏览548
激活Ubuntu的root帐号

    Ubuntu 中的 root 帐号默认是被禁用了的。在这种情况之下,如果你想要使用 root 的权限来干些事情,就需要 sudo 指令。对某些朋友来说,他们可能需要激活 Ubuntu 中的 root 帐号。
在 Ubuntu 中激活 root 帐号的过程如下:

      1. 在终端执行 sudo passwd root 指令后,系统将会提示你设置一个新的 root 帐号密码。在你没经过当前用户密码验证的时候,还要求你先输入当前用户密码,然后才能设置新的root密码。
      2. 点击 System -> Preferences -> Login Window 菜单,并切换到 Security 选项页,然后选中其下的“Allow local
system administrator login”选项。

执行上述两步后,你便可以使用 root 帐号登录 Ubuntu 系统了。

如果要再次禁用 root 帐号,那么可以执行 sudo passwd -l root。

新接触ubuntu的人(base on debian),大多会因为安装中没有提示root密码而不太清楚为什么会这样。根据ubuntu的中文文档,总结了本文。
关键词:
如何设定/改变/启用 root 使用者的密码?
sudo passwd root
为了启用 root 帐号 (也就是 设置一个口令) 使用:
sudo passwd root
当你使用完毕后屏蔽 root 帐号 使用:
sudo passwd -l root
这个将锁住 root 帐号.
如何在终端机模式下切换到 root 身份?
sudo -s -H
Password: <在这注明您的密码>缺省禁止 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 的好处
使用 sudo 的不足
误解
回到传统 root 帐号
激活 root 帐号
屏蔽 root 帐号
让 sudo 询问 root 密码
激活图形化 root 登陆
在 Gnome
在 KDE
从 Linux 控制台
在 Linux (和普通的 Unix), 超级用户的名字叫做 root. Windows 对应的 root 帐户是 Administrator. 超级用户可以做任何事情, 因此在日常工作中超级用户变的很危险. 你可以输入一个错误的命令毁掉整个系统. 从理论上讲, 你运行的用户应该仅仅拥有手头上任务所需要的权限. 在某些情况下, 它需要 root, 但是大部分事件下是正常的用户.
Ubuntu 的 root 帐号缺省是锁住的. 这意味您不能作为 root 登陆或者使用 su. 相反, 安装程序将在安装过程中建立和设置 sudo 来允许用户运行所有的管理命令.
意思是在终端下你可以为需要 root 权限的命令使用 sudo . 使用菜单上的程序将使用一个图形化的 sudo 用来提示输入口令. 当 sudo 询问口令时, 它需要 您的用户密码; 这意味着不需要 root 口令.

说明
密码缺省保存 15 分钟. 超过这个时间, 您需要重新输入您的密码.
但输入您的密码时将 不 在屏幕上显示, 甚至不会有一排的星号 (******). 然而, 这是正常的!
使用 sudo 运行图形化的设置工具, 可以简单的通过菜单来运行程序.
通常在用户下利用 sudo 来运行程序, 如运行 gedit, 按 Alt+F2 并回车 gksudo gedit.
对于 Kubuntu 的用户, 使用 kdesu 代替 gksudo.
Ubuntu 5.10 (Breezy Badger) 用户, 到 Applications --> System Tools --> Run as different user.
在命令行运行 sudo , 在命令前加上 sudo, 如下:
例子 #1
sudo chown bob:bob /home/bob/*
例子 #2
sudo /etc/init.d/networking restart
不要 使用 sudo 运行一个图形程序. 您应该 gksudo 或 kdesu 运行这些程序, 否则重新登陆时可能会失败. 如果在登陆时提示如下的错误报告: "Unable to read ICE authority file", 使用登陆失败下终端并运行下面的命令, 使用您的帐户名字取代下面的 user.

rm /home/*/.{ICE,X}authority
启动一个 root shell (例. 一个你可以允许 root 命令的窗口) 使用:

sudo -i
允许其它用户运行 sudo
给 sudo 增加一个新的用户, 从 System --> Administration 菜单打开 Users and Groups 工具. 然后点击用户并继续打开属性. 选择 User Privileges 页. 在本页, 查找 Executing system administration tasks 并选择.
在终端可以这样: sudo adduser $user admin, 这里您使用用户的名字替换 $user.

使用 sudo 的好处
缺省屏蔽 root 的好处包括了以下几个部分:
安装可以询问较少的问题
用户不需要记住额外的密码, 因为他们很可能容易忘记
交互式的缺省登陆避免了 "我可以作 任何事情 " - 在修改变化前您将被提示输入一个口令, 这样可以让你考虑一下这样做的结果.
Sudo 对于运行的命令增加了一个日志 (在 /var/log/auth.log). 如果您弄乱了, 您可以一直回去并看到曾经运行的命令. 这同样有利于审查.
所有的破解者尝试使用 强力破解进入你的系统时都知道有一个帐户的名字叫做 root 并且将首次尝试. 他们并不知道您的其它用户的用户名叫做什么.
允许简单的修改管理规则, 在短期或者长期, 从用户组增加或删除用户, 其中不会危及到 root 帐号.
sudo 可以设置更加细致的安全规则
使用 sudo 的不足
尽管对于桌面使用 sudo 有很多好处, 下面有可能产生需要注意的问题:
使用 sudo 运行的命令的输出的重定向能够发现新用户. 对于下面的场合 sudo ls > /root/somefile , 到 shell 尝试写入那个文件时将无法工作. 您可以使用 ls | sudo tee -a /root/somefile 来增加, 或 ls | sudo tee /root/somefile 来覆盖内容.
在一些办公室环境在系统上仅仅只有一个 root 本地用户. 所有其它的用户使用 NSS 技巧输入 如 nss-ldap. 要么设置一个工作站, 或者修复它, 在网络故障导致 nss-ldap 断开时, root 必须要. 除非破解否则将无法修复或者离开系统. 这里需要一个额外的本地用户, 或者激活 root 口令.
误解
是否 sudo 没有 su 安全?
安全模型都是一样的, 并且这两种方式都用他们主要的缺点. 必须考虑任何用户都可以使用 su 或者 sudo 成为一个特权用户. 如果用户的帐号对于攻击者都是安全的, 在下一次用户这样做的时候攻击者也可以同样获得 root 权限. 在链条里面用户帐号也是脆弱的链接, 因此冰区象 root 一样给予同样的保护.
在更细致的登记上, sudo 对于不同工作的特性提供了重要的作用, 它可以影响系统的安全. sudo 通常被使用仅仅执行一个单个的命令, su 通常被使用打开一个 shell 并执行多个命令. sudo 通过减少使用 root shell 的可能性, 并鼓励用户最小的使用 root 权限.
我不能进入一个单用户模式!
在 Ubuntu 的 sulogin 程序被修改到可以支持确认 root 口令被锁住的操作.
回到传统 root 帐号
并不推荐!
如果您需要在一个 root 控制台工作, 您最好使用如下命令:
sudo -i
激活 root 帐号
为了激活 root 帐号 (例如设置一个口令) 使用:
sudo passwd root
Enter your existing password
Enter password for root
Confirm password for root

屏蔽 root 帐号
如果您激活了 root 口令并希望重新屏蔽它. 在你激活 root 帐号后屏蔽它使用:
sudo passwd -l root
这个将锁住 root 帐号.
这个也在 Ubuntu 6.06 (Dapper Drake) 之前的版本防止您启动电脑到恢复模式
这个是因为当请求恢复 root 的口令时, 在 /etc/shadow 中 root 的口令不会自动的回到单个 * 字符. (你将被询问一个口令, 同样的依然存在, 但被锁住了无法用来登陆.) 您将在激活 root 帐号后又锁住时需要编辑 /etc/shadow 来防止这个问题. 这个在 Ubuntu 6.06 (Dapper Drake) (Flight 3 之前) 已经修复了, 当恢复模式启动时锁住的密码和 空 (*) 密码修正为一致.
让 sudo 询问 root 密码
您可以使 sudo 询问 root 密码代替用户密码, 您可以增加一个关键词 rootpw 到 /etc/sudoers 中以 Defaults 开头的行.
如果您打算锁住 root 帐号时请确定不要做这个
激活图形化 root 登陆
非常 不 推荐 允许 root 登陆图形系统!

在 Gnome
打开 System --> Administration --> Login Screen Setup
点击 security 页
选择 Allow root login

在 KDE
打开 Konqueror 并打开 /etc/kde3/kdm/ 目录
在 kdmrc 文件上按右键选择 --> 'Edit as root'
在 246 行将 AllowRootLogin=false 修改为 'true'
保存并退出.
从 Linux 控制台
使用 Ctrl+Alt+F1 (or F2, F3, ..., F6) 切换到一个虚礼的终端. 您可以使用 Ctrl+Alt+F7 回到 X session .
使用您的帐户登陆.
使用 "sudo -i" 成为 root .
使用 "startx -- :1" 启动一个新的 X server 在 :1.
你可以运行一个不同的 window 管理器 (比如, fvwm) 使用如下 "startx fvwm -- :1".
你必须使用 display :1, 因为缺省的 (display :0) 已经被你使用了.
小心, 你现在是超级用户. 别忘记当你使用完毕后从 X 和控制台立即退出.