Linux命令之设置普通用户具有超级管理员权限sudo
概述
sudo
命令可以让普通用户具有超级管理员 root
才有的权限。
有时候需要让普通用户执行一些只有超级管理员才有权限执行的命令,但如果告诉普通用户超级管理员的密码,就可能造成密码泄露。所以使用 sudo
可以让普通用户执行一些超级管理员才有权限执行的命令,这样减少了 root
用户的登录和管理时间,也提高了安全性。
注:
sudo
命令默认情况下只能root
用户才能使用。如果需要让普通用户也能使用sudo
命令,必须在/etc/sudoers
文件中进行配置。
/etc/sudoers
文件
如果需要让普通用户也能使用 sudo
命令,必须在 /etc/sudoers
文件中进行配置。并且该文件也只有 root
用户才有权限进行修改。
修改该文件必须使用 visudo
命令,因为该文件是一个只读文件,必须通过特殊的方式才能修改。并且 visudo
命令可以对修改后的 /etc/sudoers
文件进行语法检查,判断你的修改是否有效。
这两行说明如下:
root ALL=(ALL) ALL
用户名 被管理主机的地址=(可使用的身份) 授权命令(绝对路径)%wheel ALL=(ALL) ALL
%组名 被管理主机的地址=(可使用的身份) 授权命令(绝对路径)
关于各字段说明如下:
字段 | 说明 |
---|---|
用户名 |
表示系统中哪个用户,可以使用 sudo 这个命令
|
组名 |
表示系统中哪个组,可以使用 sudo 这个命令
|
被管理主机的地址 |
用户可以管理指定 IP 地址的服务器。这里如果写 ALL,则代表用户可以管理任何主机;如果写固定 IP,则代表用户可以管理指定的服务器。通常写 ALL
|
可使用的身份 | 就是把来源用户切换成什么身份使用,(ALL)代表可以切换成任意身份。这个字段可以省略 |
授权命令 | 表示可以执行什么命令,命令必须写绝对路径。默认值是 ALL,表示可以执行任何命令 |
例如:
# 表示用户 zhangsan 可以执行 useradd 命令
zhangsan ALL=(ALL) /usr/sbin/useradd# 表示名为 lisi 的用户组中的所有成员可以执行 userdel 命令
%lisi ALL=(ALL) /usr/sbin/userdel
进行测试:首先使用 visudo
命令在文件中的如下位置添加如下内容(注意,首先要有如下的用户和用户组):
接着登录 zhangsan
用户,然后使用 sudo useradd zhangsan-son
命令添加用户:
注意:可以写多个授权命令,之间用逗号分隔。
语法
该命令的语法如下:
sudo [选项] 命令
该命令支持的选项有:
选项 | 说明 |
---|---|
-V | 显示版本编号 |
-h | 会显示版本编号及指令的使用方式说明 |
-l | 显示出自己(执行 sudo 的使用者)的权限 |
-v | 因为 sudo 在第一次执行时或是在 N 分钟内没有执行(N 预设为五)会问密码,这个参数是重新做一次确认,如果超过 N 分钟,也会问密码 |
-k | 将会强迫使用者在下一次执行 sudo 时问密码(不论有没有超过 N 分钟) |
-b | 将要执行的指令放在背景执行 |
-p prompt | 可以更改问密码的提示语,其中 %u 会代换为使用者的帐号名称, %h 会显示主机名称 |
-u, --user=user | 不加此参数,代表要以 root 的身份执行指令,而加了此参数,可以以 user 的身份执行指令 |
-s | 执行环境变数中的 SHELL 所指定的 shell ,或是 /etc/passwd 里所指定的 shell |
-H | 将环境变数中的 HOME (家目录)指定为要变更身份的使用者家目录(如不加 -u 参数就是系统管理者 root ) |
使用
执行命令
如果要使用 sudo
执行命令:
# 语法
sudo 命令
# 示例
sudo useradd zhangsan-son
查看当前用户可执行的 sudo
命令
如果要查看当前用户可以以超级管理员身份执行哪些命令,加上 -l
选项:
# 语法
sudo -l
Linux命令之设置普通用户具有超级管理员权限sudo相关推荐
- Linux用户获得超级管理员权限
问题描述 在创建了新的虚拟机和用户后,用户可能还没有超级管理员的操作权限: [peng@localhost network-scripts]$ sudo su [sudo] password for ...
- 如何在 Linux 命令行中切换用户
如何在 Linux 命令行中切换用户 我在cnaaa上购买了云服务器. Linux 系统有不同类型的用户,用户有不同类型的权限. 并非所有用户都可以执行所有命令,也不是所有用户都可以切换到其他用户.我 ...
- 在 Linux 命令行里与其他用户通信
在 Linux 命令行里向其他用户发送信息很简单,很多命令都可以做到这点,麻烦的是你需要从众多命令中挑选一个合适的命令来使用.因此,我挑选了四种常用的 Linux 用户通信命令分享给大家并为你们讲解这 ...
- linux命令chmod如果当前用户属于多个组,那这个命令中的g指的是哪个组?按什么规则?
linux命令chmod如果当前用户属于多个组,那这个命令中的g指的是哪个组?按什么规则? 比如这种命令 chmod u=rwx,g=rw,o=r /home/test1 主用户组,即id命令显示的g ...
- 我的世界linux开服权限不足,我的世界路由器开服怎么获得超级管理员权限
我的世界路由器开服怎么获得超级管理员权限.小伙伴们使用路由器开服的时候会发现一个明显的问题,部分路由器并没有给你最高管理员的权限,导致大家开服的时候出现各种问题.那么路由器开服怎么才能快速获得超级管理 ...
- win10系统用户:如何获得超级管理员权限(vue开发之Win10踩坑)
作为win10系统的使用者Permission denied:cmd没权限.git没权限.npm没权限.delete文件夹也没权限.等等等:要权限没权限?或每次只给一次性权限?开发之痛,十指共愤! 如 ...
- 图书管理系统之普通用户、超级管理员页面布局(四)
图书管理系统之普通用户.超级管理员页面布局(四) 相关源码下载连接:https://download.csdn.net/download/baidu_39378193/85033291 前言: 在上一 ...
- 普通用户如何获取超级管理员权限的步骤
普通用户如何获取超级管理员权限的步骤 在程序开发或者一些特定程序的使用中,需要超级管理员权限,当然,我们可以获取在超级管理员模式下运行.可是进入超级管理员模式下后,我们安装在标准用户下的软件没有被关联 ...
- 计算机用户怎么获取管理员权限,window系统管理员权限怎么设置 管理员权限怎么获得...
经常看到技术博客或论坛上管理员权限,对于电脑老手来说并不复杂,但是小白并不知道什么是管理员权限?怎么知道自己有没有管理员权限,如果没有管理员权限应该如何获取呢?本文就来介绍一下XP和WIN7下管理员权 ...
- linux进入超级管理员权限,一直处于超级管理员权限下
当有些是后使用sudo + 命令语句会体是权限不足,则需要进入root权限模式 #进入超级管理员权限,进入root权限 sudo -s #退出超级管理员权限,退出root权限 exit
最新文章
- 用日志记录LINQ中的所有增删改的SQL语句的方法
- spring框架使用Quartz执行定时任务实例详解
- windbg调试命令2(!gle、g、p)
- WebApi 接口参数不再困惑:传参详解
- 网管型工业交换机的三大指标介绍
- 将MyEclipse项目导入到Eclipse中
- NVIDIA向交通运输行业开源其自动驾驶汽车深度神经网络
- 万能文件在线预览项目,开源!
- v-bind:href= 拼接字符串 - 代码篇
- mysql修改字段null为空字符串
- 使用spring-data-jpa实现简单的两表联查
- 什么是数字孪生?终于有人讲明白了
- Python 标准库 —— urllib(下载进度)
- 【渝粤题库】陕西师范大学180213《消费经济学》作业 (高起本)
- 《计算机组成原理》----第1章 计算机系统体系结构 1.1 什么是计算机系统体系结构...
- 渗透测试服务 网站渗透真的难吗?
- python垃圾分类游戏_垃圾分类就要来了?教你使用Python轻松完成垃圾分类
- Matrix Factorization
- 在C#中使用钩子实现Alt+F4健窗口最小化功能
- MFC win32 API串口异步模式代码示范 vs2015