Linux 系统sudo命令
Linux系统中有许多的系统命令和服务为了安全性考虑,因此只有root超级用户才可以去使用。如果普通用户需要做此类操作,则可以使用su - 命令(减号(-)指完全切换到新的用户,即把环境变量信息也变更为新的用户,而不保留原始的用户信息)切换到root帐号来操作,但是每次得输入root帐号的密码,无疑会暴露了root超级管理员的密码。因此我们可以使用sudo程序来把特定命令的执行权限赋予给指定的用户,这样既可保证了正常工作的同时也避免了泄露root超级用户密码。
使用 visudo 命令或 vi编辑/etc/sudoers 配置文件
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
rusky ALL=(ALL) ALL --添加这一行
rusky 允许使用sudo的用户名
ALL 允许任何终端(任何机器)使用sudo
(ALL) 允许以任何用户执行sudo
ALL 允许sudo权限执行所有命令
测试:
[root@rhel7 ~]# su - rusky
Last login: Fri Jul 21 04:29:02 EDT 2017 on pts/0
[rusky@rhel7 ~]$ ls /root/
ls: cannot open directory /root/: Permission denied
[rusky@rhel7 ~]$ sudo ls /root --使用sudo来查看/root目录文件
[sudo] password for rusky:
anaconda-ks.cfg Desktop Documents Downloads Music Pictures Public Templates Videos
[rusky@rhel7 ~]$ shutdown
Must be root.
[rusky@rhel7 ~]$ sudo shutdown --使用sudo来关机
Shutdown scheduled for Fri 2017-07-21 04:32:17 EDT, use 'shutdown -c' to cancel.
[rusky@rhel7 ~]$
Broadcast message from root@rhel7.rusky.com (Fri 2017-07-21 04:31:17 EDT): The system is going down for power-off at Fri 2017-07-21 04:32:17 EDT!
例:rusky属于admin组
1. 如果想把admin组的用户都sudo不用密码那么可以将这一行换为:
%admin ALL=(ALL) NOPASSWD: NOPASSWD ALL
2. 如果仅仅想让rusky用户sudo不需密码,则可修改为如下行:
rusky ALL = (ALL) NOPASSWD: ALL
3. 如果让rusky用户sudo不用密码即可执行某几个命令,可以写成这样:
rusky ALL = NOPASSWD: /usr/bin/abc.sh, /usr/sbin/adduser
注意:有时添加"rusky ALL = NOPASSWD: ALL"这样一行;但是,rusky执行sudo时还是需要输入密码,这是为什么?
原来是这一行在"%admin ALL=(ALL) ALL"组策略之前,后面的组配置覆盖了前面的配置,而rusky属于admin组,所以需要密码。
这时,只需要将%admin行用#注释掉即可。
Linux 系统sudo命令的更多相关文章
- 【转载】Linux系统下命令行连接蓝牙设备 查看查找 蓝牙
Linux系统下命令行连接蓝牙设备 2018年11月26日 10:47:27 Zz笑对一切 阅读数:741 1.打开系统蓝牙 sudo service bluetooth start 1 进入bl ...
- 查看linux系统版本命令 (转)
查看linux系统版本命令 分类: Linux 知识小结2011-10-10 15:26 240162人阅读 评论(9) 收藏 举报 linuxredhatdebianx86susesun 一.查看内 ...
- Linux系统ifconfig命令找不到,centos ifconfig Command not found
centos ifconfig Command not found,Linux系统ifconfig命令找不到 >>>>>>>>>>>& ...
- Linux系统基础命令
这是看itercast的学习笔记 Linux系统基础命令 日期时间 命令date用以查看.设置当前系统时间:格式化显示时间: +%Y--%m--%d 命令hwclock(clock)用以显示硬件时钟时 ...
- Linux系统-解压缩命令集合
Linux系统-解压缩命令集合 linux zip命令 zip -r myfile.zip ./* 将当前目录下的所有文件和文件夹全部压缩成myfile.zip文件,-r表示递归压缩子目录下所有文件. ...
- LINUX系统VMSTAT命令详解
linux系统vmstat命令详解 [转自 https://www.cnblogs.com/wensiyang0916/p/6514820.html] vmstat 1 1表示每秒采集一次vms ...
- Linux系统——awk命令
awk命令不仅仅是Linux系统的命令,也是一种编程语言,用来处理数据和生成报告(Exel),处理的数据可以是一个或多个文件(标准输入和管道获取标准输入).可在命令行上编辑操作,也可以写成awk程序运 ...
- 给大家介绍一下linux系统高级命令
输出重定向(mip.0834jl.com) ;覆盖文件内容 回声' 123 ' 测试;覆盖原始内容 回声' 123 ' 测试;原始存在(共存) echo 'ken2 '(www.jl0834.com) ...
- spark实验(一)--linux系统常见命令及其文件互传(2)
2.使用 Linux 系统的常用命令 启动 Linux 虚拟机,进入 Linux 系统,通过查阅相关 Linux 书籍和网络资料,或者参考 本教程官网的“实验指南”的“Linux 系统常用命令”,完成 ...
随机推荐
- Tomcat报BAD packet signature 18245错误的原因
今天在启动服务器时,报了一个BAD packet signature 18245错误 详细错误如下: 2009-6-5 11:09:11 org.apache.jk.common.MsgAjp pro ...
- [转]C++之多态性与虚函数
面向对象程序设计中的多态性是指向不同的对象发送同一个消息,不同对象对应同一消息产生不同行为.在程序中消息就是调用函数,不同的行为就是指不同的实现方法,即执行不同的函数体.也可以这样说就是实现了“一个接 ...
- C++运算符重载(成员函数方式)
一.运算符重载 C++中预定义的运算符的操作对象只能是基本数据类型,实际上,对于很多用户自定义类型,也需要有类似的运算操作.如果将C++中这些现存的运算符直接作用于用户自定义的类型数据上,会得到什么样 ...
- ubuntu下如何查看软件安装目录以及安装版本
1)aptitude show 软件名 例如aptitude show kde-runtime 显示如下 ****@ubuntu:~$ aptitude show kde-runtime 软件包: k ...
- 通过java读取HDFS的数据 (转)
原文链接:通过java读取HDFS的数据 通过JAVA直接读取HDFS中的时候,一定会用到FSDataInputStream类,通过FSDataInputStream以流的形式从HDFS读数据代码如下 ...
- 使用自由软件Icarus Verilog Simulator进行仿真
Icarus Verilog Simulator(http://iverilog.icarus.com/home)使用iverilog作为源代码编译器,编译生成vvp程序文本,使用vvp作为运行时引擎 ...
- 网站日志访问记录组件UserVisitLogsHelp开源了!
之前在<一种基于自定义代码记录用户访问日志在Sharepoint网站的应用方法!>一文利用本人几年前的开发的UserVisitLogsHelp组件进行了网站用户访问日志记录,可用于网站分析 ...
- pytorch hook使用
由于pytorch会自动舍弃图计算的中间结果,所以想要获取这些数值就需要使用钩子函数. 钩子函数包括Variable的钩子和nn.Module钩子,用法相似. import torch from to ...
- Memento 备忘录 快照模式 MD
备忘录模式 简介 在不破坏封装的前提下,捕获一个对象的[内部状态],并在该对象之外保存这个状态,这样以后就可以将该对象恢复到原先保存的状态. 角色: 发起人Originator:要被备份的成员,它提供 ...
- vue-router路由知识补充
1.render函数 var app = new Vue({ el: '#app', router, render: h => h(App) //新添加的函数操作 }) 我们新加了render: ...