无密码使用sudo命令

     每次执行sudo命令,linux会读取/etc/sudoers文件的配置。该文件可以说明哪些用户可以用sudo命令,并且可以设置用户组或普通用户在无需输入密码的情况下执行sudo命令。
    我们用一个实例来详细解释/etc/sudoers文件的配置语法,请看下面的例子:

jorge ALL=(root) /usr/bin/find, /bin/rm

    上面的第一栏规定它的适用对象:用户或组,就本例来说,它是用户jorge。此外,因为系统中的组和用户可以重名,要想指定该规则的适用对象是组而非用户的话,组对象的名称一定要用百分号%开头。

    第二栏指定该规则的适用主机。当我们在多个系统之间部署sudo环境时,这一栏格外有用,这里的ALL代表所有主机。但是,对于桌面系统或不想将sudo部署到多个系统的情况,这一栏就换成相应的主机名。

    第三栏的值放在括号内,指出第一栏规定的用户能够以何种身份来执行命令。本例中该值设为root,这意味着用户jorge能够以root用户的身份来运行后面列出的命令。该值也可以设成通配符ALL,jorge便能作为系统中的任何用户来执行列出的命令了。

    最后一栏(即/usr/bin/find, /bin/rm)是使用逗号分开的命令表,这些命令能被第一栏规定的用户以第三栏指出的身份来运行它们。本例中,该配置允许jorge作为超级用户运行 /usr/bin/find和 /bin/rm这两个命令。需要指出的是,这里列出的命令一定要使用绝对路径。

打开/etc/sudoers文件:
$su -
#visudo
执行了该命令后,会把/etc/sudoers复制成/etc/sudoers.tmp,修改完配置后,另存为/etc/sudoers就可以使配置生效了。
退出/etc/sudoers的时候,使用命令ctrl+x.

写入/etc/sudoers文件的时候,使用命令ctrl+o.

   现在我们通过配置/etc/sudoers文件来实现普通用户无密码使用某些需要sudo权限的命令。

    以普通用户oneadmin为例子,该用户需要在脚本执行sudo命令。执行带有sudo命令的脚本要求用户的交互来输入密码。但是脚本是在软件运行的过程中自动执行的,需要尽量避免用户交互。所以接下来,我将要通过配置/etc/sudoers文件来使oneadmin在无需输入密码的情况下执行某些sudo命令。

编辑/etc/sudoers文件:
%su -
#visudo
这样就打开了sudoers.tmp文件。
在文件中添加一句:

oneadmin ALL = NOPASSWD: /srv/cloud/vnet/ovs/bin/*, /srv/cloud/vnet/ovs/sbin/*, /sbin/insmod, /sbin/rmmod, /bin/kill

    oneadmin是用户名,ALL是缺省值表示主机名,NOPASSWD表示不需要密码,冒号后面写明不需要密码的命令的绝对路径,命令之间用逗号隔开。

    这样就可以使oneadmin无密码使用ovs的命令了。其中ovs的命令放在/srv/cloud/vnet/ovs/bin/和/srv/cloud/vnet/ovs/sbin/目录下。

    /etc/sudoers.tmp文件修改好后,另存为/etc/sudoers文件,这样就生效了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值