sudo是linux下的一个强大的系统管理工具。 他可以使得管理员在命令一级上 实现对用户的访问控制。也就是说,如果想控制每个用户能执行什么命令,就需要sudo命令了。 为什么需要如此奇怪的管理?因为unix系统的文件系统最原始的访问控制就是将用户粗力度的分为 文件的拥有者,文件拥有者的同组人以及其他用户三类。 对每类用户只有可读,可写以及可执行三种权限的排列组合(3!=6种可能性)。虽然后来的ext2 ext3文件系统有了更仔细的访问控制机制,可以对每个用户的每个文件进行很细致的访问控制,但是如果要管理员如此细致去管理服务器上的所有文件, 10个管理员9个会崩溃的。 如果仅仅依靠文件访问权限,很多时候管理工作会变得很麻烦。 比如一个系统的超级管理员和文件备份管理员往往不是一个人, 超级管理员root用户具有最大权限,而文件管理员可能是公司的某个专人,需要对所有的文件具有读取的权限,但是如果仅仅把root的用户给文件管理员用,那就乱死了, 文件管理员除了文件备份外可以在系统中为所欲为,这是管理者所不希望看到的。管理者所希望的是文件管理员只能使用tar命令把所有的文件进行一下备份,而不能执行所有其他任何特权程序(比如删除整个磁盘)。 sudo就是用于这个目的的, sudo根据/etc/sudoers文件所规定的哪些用户可以以管理员身份执行哪些特权程序进行了详细的设定,甚至包括可执行的程序可以有哪些参数,用户可以从什么地方登陆上来进行这些命令操作。这样的话就很方便, 大个比方,比如当管理员A碰到问题的时候需要另外一个部门的系统管理员B帮他查问题所在的时候, 可以给他一个普通用户账号登陆系统, 当B需要一些特权操作时,A可以随时在/etc/sudoers文件里面指定B能进行哪些操作,而不用实际给他root账号。
我很久前就知道sudo的强大,但是发现sudo的配置文件的说明文档(man sudoers)甚为难懂晦涩所以一直不愿意用,最近改用ubuntu后,ubuntu使用sudo来实现特权操作,而实际的root用户没有口令(也就是说没法登陆系统),可以提高很大安全性。 今天周末,没事看看sudo的文档,基本搞懂了sudo的配置, 现在把我的debian服务器也改成了sudo,去掉了root的密码,不让root登陆系统。 由于sudo的文档太细致,我也提不起劲来。如果大家有兴趣的话,我来做一个简单的入门教程把。
我很久前就知道sudo的强大,但是发现sudo的配置文件的说明文档(man sudoers)甚为难懂晦涩所以一直不愿意用,最近改用ubuntu后,ubuntu使用sudo来实现特权操作,而实际的root用户没有口令(也就是说没法登陆系统),可以提高很大安全性。 今天周末,没事看看sudo的文档,基本搞懂了sudo的配置, 现在把我的debian服务器也改成了sudo,去掉了root的密码,不让root登陆系统。 由于sudo的文档太细致,我也提不起劲来。如果大家有兴趣的话,我来做一个简单的入门教程把。