Chinaunix首页 | 论坛 | 博客
  • 博客访问: 300678
  • 博文数量: 81
  • 博客积分: 1400
  • 博客等级: 上尉
  • 技术积分: 952
  • 用 户 组: 普通用户
  • 注册时间: 2009-07-31 22:05
文章分类

全部博文(81)

文章存档

2011年(1)

2010年(1)

2009年(79)

我的朋友

分类: LINUX

2009-08-15 21:25:47

说明
允许其它用户运行 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 和控制台立即退出.
阅读(2364) | 评论(0) | 转发(0) |
0

上一篇:mysql的导入导出

下一篇:linux下C、C++编程

给主人留下些什么吧!~~