Sudo是Linux系统管理下的指令,它可以让系统管理员执行root命令。现在,许多Linux用户都熟悉sudo。Ubuntu在普及sudo上做了不少工作,强迫而非鼓励用户转换到root帐号安装软件和执行其他管理任务。以下介绍sodu在Linux下的使用技巧:
许多用户不甚知晓的是sudo可以用来以任何用户身份执行命令,而不单是root用户。在经验丰富的管理员手里,sudo可用来建立细粒度的权限,授予用户执行一些管理任务的权限却不用洞门大开。让我们来看看利用sudo控制系统访问权限且用户依然能保有效率的一些***实践吧。
记住,你必须使用visudo命令来编辑/etc/sudoers文件。
授予信任的用户以完全访问权限,让他们能以任何用户身份执行任何命令,这个办法看上去既诱人又简单。请将这种诱惑拒之门外,因为你想要将访问权限限制到可能的***限度。
1.限定帐号切换:只要有一丝可能,就不要配置sudo允许用户切换到其他帐号。作为替代,可尝试配置sudo允许用户以他们需要用来操作的用户身份执行特定命令。例如,用户需要安装软件了,可允许他们以root用户身份运行RPM或APT,但不用转换为root用户。
2.不要使用ALL:最常见的错误就是授予ALL权限——这意味着可以访问所有命令、访问所有用户,或者访问其它任何权限排列。虽然权限锁定耗时费力,但这样的麻烦值得一受。
3.分割sudoers:如果有许多系统要管理,又不想复制同样的/etc/sudoers文件到所有系统,那么可以将sudoers文件分割成几块,并 用特定的sudo配置调用include文件。例如,如果想在管理Apache和MySQL时使用同一套指令,就可以分出一个独立的 sudo.mysql文件,并使用include指令从主sudoers文件调用它。
4.善用组:如果可能,按组授权,而不是按单个用户授权。例如,有一个admin组具有管理软件包和更新的管理特权。在这种情况下,用不着每增加或删除一个用户就编辑sudoers文件——只需确保在admin组中对该用户合适地管理和增加/删除就行了。
5.超时设置:确保有合适的超时设置。太短的话,用户会很快感到灰心丧气。好办法是设置为5分钟左右。
6.遵从正确路径:通过在sudo中指定secure_path指令锁定二进制文件的路径——确保用户不能在secure_path之外执行命令。
7.将日志记录到其他文件:默认情况下,sudo可能将日志与其它系统消息一同记录在一个普通的messages日志文件中。对单用户系统如 Ubuntu桌面而言,这是可接受的方案,但是对服务器也这么做可不妙。配置sudo以使其拥有自己的日志文件,这样sudo的使用和sudoers的变化更为透明。
哪些地方sudo不能用是的,sudo是个强大的工具, 但是要配置好它不容易,而且难于维护。如果有经验的管理员在系统不多的情况下使用,它是实现基于角色访问控制的完备方法。不过如果是更大型的企业,拥有数 十名IT人员和几十乃至几百服务器的情形,sudo的权限很快就展露无遗。可以使用其它工具为sudo提供支持。一种方法是使用配置框架如 Puppet来跨多系统管理sudo配置。对那些主要基于Linux和Unix的企业来说这会是特别有效的,尽管Puppet的学习曲线可能有点陡峭。
倘若企业已经在混合了Linux和Windows服务器的网络里 部署了Microsoft Active Directory(活动目录),那么也可以使用Likewise Enterprise将Linux和Unix系统纳入Active Directory管理。这样不仅可将Linux和Unix登录和Active Directory可信网络挂钩,而且也能在网络中对所有服务器管理sudo配置。
【编辑推荐】