说明
允许其它用户运行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并回车gksudogedit.
对于Kubuntu的用户,使用kdesu代替gksudo.
Ubuntu5.10(BreezyBadger)用户,到Applications-->SystemTools-->Runasdifferentuser.
在命令行运行sudo,在命令前加上sudo,如下:
例子#1
sudochownbob:bob/home/bob/*
例子#2
sudo/etc/init.d/networkingrestart
不要使用sudo运行一个图形程序.您应该gksudo或kdesu运行这些程序,否则重新登陆时可能会失败.如果在登陆时提示如下的错误报告:"UnabletoreadICEauthorityfile",使用登陆失败下终端并运行下面的命令,使用您的帐户名字取代下面的user.
rm/home/*/.{ICE,X}authority
启动一个rootshell(例.一个你可以允许root命令的窗口)使用:
sudo-i
允许其它用户运行sudo
给sudo增加一个新的用户,从System-->Administration菜单打开UsersandGroups工具.然后点击用户并继续打开属性.选择UserPrivileges页.在本页,查找Executingsystemadministrationtasks并选择.
在终端可以这样:sudoadduser$useradmin,这里您使用用户的名字替换$user.
使用sudo的好处
缺省屏蔽root的好处包括了以下几个部分:
安装可以询问较少的问题
用户不需要记住额外的密码,因为他们很可能容易忘记
交互式的缺省登陆避免了"我可以作任何事情"-在修改变化前您将被提示输入一个口令,这样可以让你考虑一下这样做的结果.
Sudo对于运行的命令增加了一个日志(在/var/log/auth.log).如果您弄乱了,您可以一直回去并看到曾经运行的命令.这同样有利于审查.
所有的破解者尝试使用强力破解进入你的系统时都知道有一个帐户的名字叫做root并且将首次尝试.他们并不知道您的其它用户的用户名叫做什么.
允许简单的修改管理规则,在短期或者长期,从用户组增加或删除用户,其中不会危及到root帐号.
sudo可以设置更加细致的安全规则
使用sudo的不足
尽管对于桌面使用sudo有很多好处,下面有可能产生需要注意的问题:
使用sudo运行的命令的输出的重定向能够发现新用户.对于下面的场合sudols>/root/somefile,到shell尝试写入那个文件时将无法工作.您可以使用ls|sudotee-a/root/somefile来增加,或ls|sudotee/root/somefile来覆盖内容.
在一些办公室环境在系统上仅仅只有一个root本地用户.所有其它的用户使用NSS技巧输入如nss-ldap.要么设置一个工作站,或者修复它,在网络故障导致nss-ldap断开时,root必须要.除非破解否则将无法修复或者离开系统.这里需要一个额外的本地用户,或者激活root口令.
误解
是否sudo没有su安全?
安全模型都是一样的,并且这两种方式都用他们主要的缺点.必须考虑任何用户都可以使用su或者sudo成为一个特权用户.如果用户的帐号对于攻击者都是安全的,在下一次用户这样做的时候攻击者也可以同样获得root权限.在链条里面用户帐号也是脆弱的链接,因此冰区象root一样给予同样的保护.
在更细致的登记上,sudo对于不同工作的特性提供了重要的作用,它可以影响系统的安全.sudo通常被使用仅仅执行一个单个的命令,su通常被使用打开一个shell并执行多个命令.sudo通过减少使用rootshell的可能性,并鼓励用户最小的使用root权限.
我不能进入一个单用户模式!
在Ubuntu的sulogin程序被修改到可以支持确认root口令被锁住的操作.
回到传统root帐号
并不推荐!
如果您需要在一个root控制台工作,您最好使用如下命令:
sudo-i
激活root帐号
为了激活root帐号(例如设置一个口令)使用:
sudopasswdroot
Enteryourexistingpassword
Enterpasswordforroot
Confirmpasswordforroot
屏蔽root帐号
如果您激活了root口令并希望重新屏蔽它.在你激活root帐号后屏蔽它使用:
sudopasswd-lroot
这个将锁住root帐号.
这个也在Ubuntu6.06(DapperDrake)之前的版本防止您启动电脑到恢复模式
这个是因为当请求恢复root的口令时,在/etc/shadow中root的口令不会自动的回到单个*字符.(你将被询问一个口令,同样的依然存在,但被锁住了无法用来登陆.)您将在激活root帐号后又锁住时需要编辑/etc/shadow来防止这个问题.这个在Ubuntu6.06(DapperDrake)(Flight3之前)已经修复了,当恢复模式启动时锁住的密码和空(*)密码修正为一致.
让sudo询问root密码
您可以使sudo询问root密码代替用户密码,您可以增加一个关键词rootpw到/etc/sudoers中以Defaults开头的行.
如果您打算锁住root帐号时请确定不要做这个
激活图形化root登陆
非常不推荐允许root登陆图形系统!
在Gnome
打开System-->Administration-->LoginScreenSetup
点击security页
选择Allowrootlogin
在KDE
打开Konqueror并打开/etc/kde3/kdm/目录
在kdmrc文件上按右键选择-->''Editasroot''
在246行将AllowRootLogin=false修改为''true''
保存并退出.
从Linux控制台
使用Ctrl Alt F1(orF2,F3,...,F6)切换到一个虚礼的终端.您可以使用Ctrl Alt F7回到Xsession.
使用您的帐户登陆.
使用"sudo-i"成为root.
使用"startx--:1"启动一个新的Xserver在:1.
你可以运行一个不同的window管理器(比如,fvwm)使用如下"startxfvwm--:1".
你必须使用display:1,因为缺省的(display:0)已经被你使用了.
小心,你现在是超级用户.别忘记当你使用完毕后从X和控制台立即退出.