开始整了个ubuntu 及其root用户的问题

从网上下载了vmplayer, 又下载了个ubuntu server 10.10的"包", 解压到本本上, 就vmplayer打开, 就可以用了.

启动和关闭的速度飞快, 这还是虚拟机呢, 感觉很爽.

打算下一步在上面跑php/mysql.

只是下载页面只给出了一个普通用户名和密码, 没有root, 好奇怪啊.

难道是制作者故意藏私? 不像啊

找了几个破解root密码的方法, 试验不成功.

今天不甘心, 继续找资料, 直到看到下面这篇, 心里才豁然开朗. 用sudo进去试了一下, 果然没错. ubuntu颠覆了我对root的传统理解.

 

Ubuntu Server中的root用户

  Ubuntu开发者决定默认禁用root账号,这并不意味着root账号被删除了或是不能访问。它只是被赋予了一个难以破解的密码,因此不应直接用其登录。

  相替代地,用户被鼓励使用一个名为sudo的工具在执行系统的管理任务,sudo允许被认证的用户通过他们自己的密码临时获取root的权限,而无需知道root帐户的密码。这种简单有效的方法为所有用户的行为提供了可述性,并且给予了管理员诸如一个用户给予特定权限后可以执行那些操作这样的粒度控制。

  默认地,Ubuntu安装时创建的第一个用户属于”admin”组的一员,而”admin”组作为已认证的sudo用户已被添加到了/etc/sudoers文件中。

Sudo简单应用

  使用创建的第一个用户(比如Bob)登录后,如果要执行需root权限的命令,比如reboot,则输入

sudo reboot

  命令执行时会提示输入Bob的密码,在15分钟内有效,即在15分钟内再使用sudo命令无需重复输入密码。

 

  如果因为某些原因需要启用root用户,需要赋予root一个密码

sudo passwd root

  系统会提示输入Bob的密码,并为root设置新的密码

[sudo] password for username: (enter your own password)Enter new UNIX password: (enter a new password for root)Retype new UNIX password: (repeat new password for root)passwd: password updated successfully

 

  使用完毕后,应该立即锁定root用户。

sudo passwd -l root

 

  如果你想要让其他的用户通过sudo获得完整的root权限,你只需要简单地将其加入到admin用户组中即可。比如新用户Sam

sudo adduser samsudo adduser sam admin

 

Sudo的特点

  Redhat发行版的Linux中(Redhat,RHEL,Fedora)默认使用的是su,而Debian发行版的Linux中(Debian,Ubuntu)则默认启用了sudo。su为切换用户,在执行命令时实际上是切换为root用户运行,切换时需要输入root的密码。而启用sudo,默认将root用户锁定,密码未知,执行相应命令时输入当前用户的密码,由sudo用户判断是否有相应权限。此外

  1.sudo能够限制指定用户在指定主机上运行某些命令。
  2.sudo可以提供日志,忠实地记录每个用户使用sudo做了些什么,并且能将日志传到中心主机或者日志服务器。
  3.sudo为系统管理员提供配置文件,允许系统管理员集中地管理用户的使用权限和使用的主机。它默认的存放位置是/etc/sudoers。
  4.sudo使用时间戳文件来完成类似“检票”的系统。当用户执行sudo并且输入密码后,用户获得了一张默认存活期为15分钟的“入场券”(默认值可以在编译的时候改变)。超时以后,用户必须重新输入密码。

 

  以下是一些个人的总结

  安全角度:sudo默认将root锁定,无论是本地、远程,SSH或桌面都无法登录,想要字典暴力破解root基本是不可能,想要破解只能从其他用户下手。首先得知道用户名,其次破解了该用户也未必有足够的权限。

  用户角度:执行命令时需要输入密码以提醒用户再次确认,同时输入密码有一定的有效期,避免了以root登录可以在任何时候做任何事的情况。

  管理角度:可以为不同的用户指定不同的权限(要实现这个还需要进一步学习sudo的配置),而且还可以通过日志记录用户的操作。

posted on 2010-12-11 00:35  anjo  阅读(541)  评论(0编辑  收藏  举报