百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

Linux下如何配置普通用户的sudo命令权限?

gudong366 2025-04-10 22:03 8 浏览

背景

在Linux系统操作时,通常不会直接采用root用户。但当某些命令需要root权限执行时,往往会通过sudo命令提升当前用户的执行权限来完成。

如果普通用户并未进行配置相应的配置,则在使用sudo命令时会提示“xxx 不在 sudoers 文件中。此事将被报告。“

本篇文章就带大家实践一下如何对普通用户配置sudo命令执行的权限。

sudo命令权限配置

sudo 的英文全称是 super user do,即以超级用户(root 用户)的方式执行命令。用户是否拥有sudo命令的执行权限,要看是否在于 /etc/sudoers 文件进行了设置。

/etc/sudoers 是一个文本文件,有其特定的语法,不要直接用 vim 或者 vi 来进行编辑,而是采用 visudo 命令。需要注意的是只有root用户有该命令的执行权限。

切换到root用户,命令行输入 visudo ,即可直接进入/etc/sudoers 的编辑页面。

[root@iZ2zedonrtl5m2zsh6tr1xZ ~]# visudo

忽略掉其他配置信息,直接查看底部如下信息:

# User privilege specification  
root    ALL=(ALL:ALL) ALL  
  
# Members of the admin group may gain root privileges  
%admin ALL=(ALL) ALL  
  
# Allow members of group sudo to execute any command  
%sudo   ALL=(ALL:ALL) ALL  
  
# See sudoers(5) for more information on "#include" directives:  
  
#includedir /etc/sudoers.d  
ubuntu  ALL=(ALL:ALL) NOPASSWD: ALL  

解释下每一列的含义:

  • 第一列表示用户名,如 rootubuntu 等;
  • 第二列,等号左边的 ALL 表示允许从任何主机登录当前的用户账户;
  • 第二列,等号右边的 ALL 表示:第一列的用户可以切换到系统中任何一个其它用户;
  • 第三列, ALL 表示:第一列的用户能以root用户的身份下达什么命令,ALL 表示可以下达任何命令。
  • ubuntu用户第三列有一个 NOPASSWD 关键字,表明ubuntu用户在请求 sudo 时不需要输入密码。

如果你的用户在切换时,如果出现”不在 sudoers 文件中“的警告信息,那么核查一下,对应的用户应该没有在该文件中进行配置,因此也无法使用 sudo 命令。

参考ubuntu用户的配置,将需要提升权限的用户(比如test_user)添加到 /etc/sudoers 文件中:

test_user  ALL=(ALL:ALL)  ALL   # test_user 使用sudo需要提供test_user的密码  

上面配置在执行sudo时需要提供密码,那么不需要提供密码配置方式如下:

test_user  ALL=(ALL:ALL)  NOPASSWD:ALL   # test_user 使用sudo需要提供test_user的密码  

添加完毕,esc退出编辑,执行:wq,退出并保存。

此时切换到test_user用户,执行需要root权限的命令时,前面添加sudo即可。

[test_user@iZ2zedonrtl5m2zsh6tr1xZ ~]$ sudo docker ps -a
CONTAINER ID   IMAGE         COMMAND    CREATED             STATUS                         PORTS     NAMES
903734808a1e   hello-world   "/hello"   About an hour ago   Exited (0) About an hour ago             happy_jennings

可以看到,现在 sudo 命令已经可以正常使用了。

小结

针对普通用户临时提升权限执行命令的场景,只需在 /etc/sudoers 文件中进行配置即可。网络上也有其他的配置方案,但未使用visudo命令,而是先对 /etc/sudoers 文件进行全变更,然后再进行修改,最后再将权限变更回去。虽然也能实现同样的修改功能,但绕的太远了。读完这篇文章的朋友,现在你已经解锁了新的、更方便的命令。

相关推荐

Linux系统dev和proc目录详解(linux中dev目录干嘛的)

简介:Linux系统里的/dev和/proc目录那可是相当重要的系统文件。在Linux系统中,/dev目录专门用来存放设备文件。不光有设备文件,系统里还有好多特殊功能也是通过设备的形式...

21、linux命令-lsof(linux lsof命令详解)

21、linux命令-lsof文章目录1.命令简介2.命令格式3.选项说明4.输出字段说明5.常用示例参考文献1.命令简介lsof(listopenfiles)用于查看进程打开的文件,是十分方便的...

Linux Namespace原理(linux常见的namespace类型有哪些)

LinuxNamespace是内核提供的轻量级虚拟化技术,通过隔离全局系统资源(如进程树、网络栈、挂载点等)实现进程间的环境隔离。其内核实现原理可分为以下核心模块:一、Namespace内核数据...

Linux必学技能 | 17个案例带运维小白快速精通Awk命令,拿来即用

awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在对数据分析并生成报告时,显得尤为强大。简单来说awk就是把文件逐行地读入,以空格为默认分隔符将每行切片,切开的部分再进行各种...

重新分配扇区计数警告可以修复吗(重新分配扇区计数警告有什么影响)

当硬盘的“重新分配扇区计数(ReallocatedSectorsCount)”出现警告时,意味着硬盘可能已出现物理损坏隐患。不过,不同情况下仍有相应的应对策略,以下为你详细解读。“重新分配扇区...

Linux分区页框分配器之水位(linux分区调整工具)

我们讲页框分配器的时候讲到了快速分配和慢速分配,其中伙伴算法是在快速分配里做的,忘记的小伙伴我们再看下:staticstructpage*get_page_from_freelist(gfp_t...

Linux使用中的一些问题及解决过程(记录1)

1.在Linux虚拟中安装dhcpv6后,Server发送的dhcpv6advertise报文中的udp校验和出错,导致用户不能获取IPv6地址修正方法:将该接口的校验关闭ethtool--of...

图文详解Linux的IO模型和相关技术

阻塞IO模型(BlockingI/O)Linux内核一开始提供了read与write阻塞式操作。当客户端连接时,会在对应进程的文件描述符目录(/proc/进程号/fd)生成对应的文件描述符...

iptables -m connlimit导致内存不足

题描述:Udp高频攻击导致slabkmalloc-64持续申请,导致内存不足。A7低版本内核无该问题,MA35/AM62在kernel6版本上也无该问题,此问题只出在A7kernel6上。问...

linux 汇编2-关于寄存器及系统调用

后续主要在linux操作系统下学习基于X86的32位汇编语言32位的X86处理器中有8个32位的通用寄存器(EAX、EBX、ECX、EDX、ESI、)。EDI、ESP、EBP),由于历史的原因,EAX...

Linux NameSpace的机制(linux namespace是一种资源限制方案)

一、Namespace核心原理隔离类型Linux支持6种Namespace:PID:隔离进程ID,不同Namespace的进程可拥有相同PID。Network:隔离网络设备、IP地址、端口等。Moun...

Linux信号量(2)-POSIX 信号量(linux信号量与pv操作实验)

上一章,讲述了SYSTEMV信号量,主要运行于进程之间,本章主要介绍POSIX信号量:有名信号量、无名信号量。POSIX信号量POSIX信号量进程是3种IPC(Inter-ProcessComm...

Linux文本三剑客:grep/sed/awk组合技,解决90%文本处理难题

一、grep:文本世界的"探照灯"当你面对GB级日志文件大海捞针时,grep就是那盏精准的探照灯。--color=auto参数能让匹配内容瞬间穿上"红马甲",在黑底白字...

AWK 语法速查表(Linux 文本处理工具实用指南)

本文适用于系统管理员、运维工程师、开发人员以及数据处理人员,提供速查+示例的格式,方便在使用AWK时快速查阅。1.基本结构awk'条件{动作}'文件名条件:可以是模式匹...

linux/unix下如何统计文件行数(linux统计文件行数,单词数,字节数)

在日志分析过程中,经常会遇到文件行计数的情况。它可以帮助我们分析业务数据。那么在Linux中如何使用linux命令行统计文件行数呢?使用linuxwc命令统计文件行数wc-ltest.txt使...