sudo命令详解 | ||
| ||
来源: ChinaUnix博客 日期: 2008.12.27 13:54 (共有条评论) 我要评论 | ||
sudo是Unix/Linux平台上的一个非常有用的工具,它允许系统管理员分配给普通用户一些合理的“权利”,让他们执行一些只有超级用户或其他特许用户才能完成的任务 大家知道ubuntu吧,他就封闭了root用户,都是使用的sudo sudo能够限制指定用户在指定主机上运行某些命令。 sudo可以提供日志,忠实地记录每个用户使用sudo做了些什么,并且能将日志传到中心主机或者日志服务器。 sudo为系统管理员提供配置文件,允许系统管理员集中地管理用户的使用权限和使用的主机。它默认的存放位置是/etc/sudoers。 sudo使用时间戳文件来完成类似“检票”的系统。当用户执行sudo并且输入密码后,用户获得了一张默认存活期为5分钟的“入场券”(默认值可以在编译的时候改变)。超时以后,用户必须重新输入密码。 编辑/etc/sudoers文件,只有超级用户才可以修改它。 [/url] sudoers文件就是sudo的配置文件了,但是我们不建议用户直接vim这个文件,建议使用visudo这个命令来编辑这个文件:#visudo 之所以使用visudo有两个原因,一是它能够防止两个用户同时修改它;二是它也能进行有限的语法检查。所以,即使只有你一个超级用户,你也最好用visudo来检查一下语法。 sudo的常用参数 sudo -l :列出当前用户可以执行的命令。只有在sudoers里的用户才能使用该选项。 sudo -u 用户名 命令:以指定用户的身份执行命令。后面的用户是除root以外的,可以是用户名,也可以是#uid。 sudo -k:清除“入场卷”上的时间,下次再使用sudo时要再输入密码。 sudo -b 命令:在后台执行指定的命令。 sudo -p 提示语:可以更改询问密码的提示语,其中%u会代换为使用者帐号名称,%h会显示主机名称。非常人性化的设计。 sudo -e 文件名:不是执行命令,而是修改文件,相当于命令sudoedit。 现在我们来试试,请大家使用visudo这个命令 然后使用/root查 查到这行root ALL=(ALL) ALL 这个文件最重要的也就这么一行 我给大家解释下: 第一个root 代表用户名 第一个ALL代表所有主机 (ALL)代表所有用户 后面那个ALL代表所有命令 这句话的意思就是:root用户可以在任何机器上运行所有用户的所有命令 第一个主机你就理解成这个主机吧,他主要是对一个域来定义的 如果我要让michael这个用户可以执行所有用户的shutdown和useradd命令就这样写 michael ALL=(ALL) shutdown,useradd 然后保存退出,如果没有提示的话就证明成功了 visudo默认的是在vi里打开配置文件,用vi来修改文件。我们可以在编译时修改这个默认项。visudo不会擅自保存带有语法错误的配置文件,它会提示你出现的问题,并询问该如何处理,就像: >>> sudoers file: syntax error, line 71 我故意说错了这个命令,那两个命令michael用户是没有环境变量的,也就是michael没那两个命令,所以会报错,就像这样看下图: 比如把命令改成system-confg-users命令的可执行文件 先使用which system-config-users到他的可执行文件/usr/bin/system-config-users 需要注意的是,当我们为用户定义可以运行的命令时,必须使用完整的命令路径。这样做是完全出于安全的考虑,如果我们给出的命令只是简单的useradd而非/usr/sbin/useradd,那么用户有可能创建一个他自己的脚本,也叫做useradd,然后放在它的本地路径中,如此一来他就能够通过这个名为useradd的本地脚本,作为root来执行任何他想要的命令了。这是相当危险的! 我们来查下:which shutdown和which useradd 写/sbin/shutdown,/usr/sbin/useradd这个进去就OK了,多个命令使用","分隔 现在保存退出就没有报错哈~ 你可以切换到michael这个用户,使用#sudo useradd xxxx 然后输入michael用户的密码,命令就可以执行成功 普通用户的PATH没有加/usr/sbin,自己加上export PATH=$PATH:/usr/sbin,然后我们再试试哈~ [url=redking.blog.51cto/attachment/200812/25/27212_1230186893P47B.png] ok,可以了哈~ 大型的主机就使用这种方法把权限分配给不同的管理员 | ||
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论