sudo命令详解

17 篇文章 0 订阅
6 篇文章 0 订阅

原文地址:http://linux.chinaunix.net/techdoc/system/2008/12/27/1055474.shtml

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 shutdownwhich useradd

/sbin/shutdown,/usr/sbin/useradd这个进去就OK了,多个命令使用","分隔

现在保存退出就没有报错哈~


你可以切换到michael这个用户,使用#sudo useradd xxxx 
然后输入michael用户的密码,命令就可以执行成功

普通用户的PATH没有加/usr/sbin,自己加上export PATH=$PATH:/usr/sbin,然后我们再试试哈~
[url=http://redking.blog.51cto.com/attachment/200812/25/27212_1230186893P47B.png]
ok,可以了哈~
大型的主机就使用这种方法把权限分配给不同的管理员
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值