Linux 中不输入密码运行 sudo 命令的方法
sudo命令允许受信任的用户作为另一个用户运行程序,默认情况下是root用户。如果您在命令行上花费了大量时间,那么sudo将会是您一直使用的命令之一。
通常,要授予sudo访问权限,请将用户添加到sudoers文件中定义的sudo组。在Debian,Ubuntu及其衍生产品上,sudo组的成员在基于RedHat的发行版(如CentOS和Fedora)上获得sudo权限,sudo组的名称是wheel。
在运行sudo命令之前,系统将提示该组的每个成员输入密码。这增加了额外的安全层,是向用户授予sudo权限的首选方式。
如下图:
但是,在某些情况下,例如运行自动脚本,您可能需要配置sudoers文件并允许某些用户运行sudo命令而不要求输入密码。
将用户添加到Sudoers文件
sudoers文件包含确定用户和组的sudo权限的信息。
您可以通过修改sudoers文件或将配置文件添加到/etc/sudoers.d
目录来配置用户sudo访问权限。此目录中的所有文件都包含在sudoers文件中。
在进行任何更改之前,最好备份当前文件:
linuxidc@linuxidc:~/www.linuxidc.com sudo cp /etc/sudoers{,.backup_(date +%Y%m%d)}
date命令会将当前日期附加到备份文件名。
使用visudo命令打开/etc/sudoers文件:
sudo visudo
更改sudoers文件时始终使用visudo此命令检查后编辑,如果存在语法错误,则不会保存更改。 如果使用文本编辑器打开文件,语法错误将导致丢失sudo访问权限。
在大多数系统上,visudo命令使用vim文本编辑器打开/etc/sudoers文件。 如果您没有使用vim的经验,可以使用其他文本编辑器。 例如,要将编辑器更改为GNU nano,您将运行:
sudo EDITOR=nano visudo
向下滚动到文件的末尾并添加以下行,该行允许用户“linuxidc”使用sudo运行任何命令而无需开始询问密码:
/etc/sudoers
linuxidc ALL=(ALL) NOPASSWD:ALL
如下图:
不要忘记使用您要授予访问权限的用户名更改“linuxidc”。
如果要允许用户仅运行特定命令而不输入密码,请在NOPASSWD关键字后指定命令。
例如,要仅允许使用mkdir和mv命令:
在/etc/sudoers文件
linuxidc ALL=(ALL) NOPASSWD:/bin/mkdir,/bin/mv
完成后,保存文件并退出编辑器。
使用/etc/sudoers.d
您可以使用授权规则将新文件添加到/etc/sudoers.d目录,而不是编辑sudoers文件。 这种方法将使sudo权限的管理更加可维护。
打开文本编辑器并创建文件:
sudo nano /etc/sudoers.d/linuxidc
您可以根据需要命名文件,但通常最好使用用户名作为文件名。
/etc/sudoers.d/linuxidc
添加与添加到sudoers文件中相同的规则:
linuxidc ALL=(ALL) NOPASSWD:ALL
最后,保存文件并关闭编辑器。
总结
当您拥有非root用户需要执行管理任务的脚本时,运行不带密码的sudo非常有用。
以上所述是小编给大家介绍的Linux 中不输入密码运行 sudo 命令的方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对ZaLou.Cn网站的支持! 如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!
- Jquery 获取checkbox属性checked为undefined和改变状态 值不变
- Hibernate--Criteria Query and DetachedCriteria
- Python3 大作战之 encode 与 decode 讲解
- SpringMVC 文件下载时 浏览器不能正确显示另存的文件名
- 手把手教你用python抢火车票
- SpringMVC 实现多文件上传的两种方式及其效率比较
- Spring 之加载配置属性文件和注解属性绑定
- SpringMVC 提交表单400 Bad Request
- 如何在三年内快速成长为一名技术专家
- 【微信开发】getAccessToken 和 getJsapi_ticket缓存支持
- 微信JS-SDK 注入权限验证配置
- Maven 项目下slf4j 包冲突问题
- 谷歌教你学 AI-第三讲简单易懂的估算器
- 黑产是如何强刷用户银行卡8.1万元的?
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法