如何让sudo命令不需要输入密码就可执行
通过visudo 来编辑/etc/sudoers来实现
在该文件中追加一下记录即可
username ALL=(ALL) NOPASSWD:ALL
——-下面文章转载自网络———–
# User privilege specification
root ALL=(ALL) ALL
# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL
下面对以上配置做简要说明:
第一项配置的作用,是允许root用户使用sudo命令变成系统中任何其它类型的用户。第二个配置规定,管理组中的所有成员都能以root的身份执行所有
命令。因此,在默认安装的Ubuntu系统中,要想作为root身份来执行命令的话,只要在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这两个命令。需要指出的是,这里列出的命令一定要使用绝对路径。
进一步:
我们可以利用这些规则为系统创建具体的角色。例如,要让一个组负责帐户管理,你一方面不想让这些用户具备完全的root访问权限,另一方面还得让他们具有
增加和删除用户的权利,那么我们可以在系统上创建一个名为accounts的组,然后把那些用户添加到这个组里。之后,再使用visudo为
/etc/sudoers添加下列内容: %accounts ALL=(root) /usr/sbin/useradd,
/usr/sbin/userdel, /usr/sbin/usermod
现在好了,accounts组中的任何成员都能运行useradd、userdel和usermod命令了。如果过一段时间后,您发现该角色还需要其他工具,只要在该表的尾部将其添上就行了。这样真是方便极了!
需要注意的是,当我们为用户定义可以运行的命令时,必须使用完整的命令路径。这样做是完全出于安全的考虑,如果我们给出的命令只是简单的userad
而非
/usr/sbin/useradd,那么用户有可能创建一个他自己的脚本,也叫做userad,然后放在它的本地路径中,如此一来他就能够通过这个名为
useradd的本地脚本,作为root来执行任何他想要的命令了。这是相当危险的!
sudo命令的另一个便捷的功能,是它能够指出哪些命令在执行时不需要输入密码。这很有用,尤其是在非交互式脚本中以超级用户的身份来运行某些命令的
时候。例如,想要让用户作为超级用户不必输入密码就能执行kill命令,以便用户能立刻杀死一个失控的进程。为此,在命令行前边加上NOPASSWD:属
性即可。例如,可以在/etc/sudoers文件中加上下面一行,从而让jorge获得这种权力: jorge ALL=(root)
NOPASSWD: /bin/kill, /usr/bin/killall
如何让sudo命令不需要输入密码就可执行的更多相关文章
- Linux 基础教程 43-su和sudo命令
在使用Linux系统中,有时候还需要做身份切换,这是为什么? 使用普通账号:系统日常操作的好习惯 虽然使用root对系统进行各种操作不受权限等方面的限制,但却存在重大的安全隐患,假如有人不 ...
- sudoers文件设置sudo命令无密码(root密码)登录
参考博客:http://xvshell.iteye.com/blog/1838093 1. 当用户执行sudo时,Linux系统会去寻找/etc/sudoers文件,并且这是主动的,判断用户是否有执行 ...
- Linux中新建用户用不了sudo命令问题:rootr is not in the sudoers file.This incident will be reported解决
参考:https://blog.csdn.net/lichangzai/article/details/39501025 如果执行sudo命令的用户没有执行sudo的权限,执行sudo命令时会报下面的 ...
- Linux下 sudo命令
平常使用Linux的时候,都是用普通用户登录执行命令,但是有些命令需要root权限才能执行,如果切换到root用户去执行,就需要输入root密码,为了系统的安全性,应该尽可能少的直接在终端上输入roo ...
- (转)企业配置sudo命令用户行为日志审计
原文:https://www.cnblogs.com/Csir/p/6403830.html?utm_source=itdadao&utm_medium=referral 第15章 企业配置s ...
- 在脚本中使用sudo命令,将密码保存在脚本中,不需要手动输入密码
在脚本中使用sudo命令,将密码保存在脚本中,不需要手动输入密码. #!/bin/bash echo 'xxx密码xxx'|sudo -S service mysql start echo 'xxx密 ...
- Ubuntu不输入密码执行sudo命令方法介绍
作为ubuntu等桌面系统,默认登录的帐号是没有root权限的,为了提升权限来执行任务,我们一般用到sudo+命令来执行,但是不难发现我们一般都要输入密码.那么有没有什么方法可以让我们执行sudo的时 ...
- 如何在linux下使用sudo命令不用输入密码
用过linux的小伙伴可能都知道,每次使用sudo的时候需要输入密码,这样很耽误事,那么接下来我会教大家如何去设置 一.1.输入su root进入root模式 2.输入visudo会打开/etc/su ...
- linux sudo 命令
简单的说,sudo 是一种权限管理机制,管理员可以授权于一些普通用户去执行一些 root 执行的操作,而不需要知道 root 的密码.严谨些说,sudo 允许一个已授权用户以超级用户或者其它用户的角色 ...
随机推荐
- [React Fundamentals] Component Lifecycle - Mounting Usage
The previous lesson introduced the React component lifecycle mounting and unmounting. In this lesson ...
- 离线安装Cloudera Manager5.3.4与CDH5.3.4(二)
Cloudera Manager Server和Agent所有后发先至.也能够进行CDH5的安装和配置. 然后,主节点可以通过浏览器访问7180port测试(因为CM Server需要花时间来启动,可 ...
- MyEclipse设置默认的目光格式
首先,选择菜单 windows-->preference Java-->Code Style-->Code Templates code-->new Java files 然后 ...
- hdu4081 次小生成树变形
pid=4081">http://acm.hdu.edu.cn/showproblem.php?pid=4081 Problem Description During the Warr ...
- Ruby简介,附带示例程序
Ruby语言是日本人松本行弘于1993年器开始着手研发,经历2年时间,发布了Ruby语言的第一个版本:0.95版. Ruby是一种非常简介的解释性语言,一种纯粹的面向对象编程语言,甚至比Jav ...
- 隐式Intent实例
注意:The <strong>categories</strong>, if supplied, must <em>all</em> be listed ...
- Introducing the Blog Module
Introducing the Blog Module Now that we know about the basics of the zend-mvc skeleton application, ...
- Python 基础【第五篇】元组和列表
一 .Python之列表: 其实所谓的列表我个人感觉和shell 中的数组是一样的(只是个人见解哦),列表其实说白了就是元素的组合: 格式: Name = [a,b,c,d] 下标: 每一个列表中的元 ...
- 【推理】UVa 10771 - Barbarian tribes
Barbarian tribes In a lost land two primitive tribes coexist: Gareds and Kekas. Every summer sols ...
- ajax发送请求
首先创建XMLHttpRequest对象,利用此对象发送请求 主页面 <!doctype html> <html lang="en"> <head&g ...