合理运用su和sudo命令以保证系统用户安全

2024-08-22 19:38

本文主要是介绍合理运用su和sudo命令以保证系统用户安全,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Linux系统为我们提供了su、sudo两种用户权限管理机制,其中su主要是用来切换用户,而sudo用户来提升执行权限。下面分别进行详细讲解。

一、su命令——切换用户

使用su命令,可以切换为指定的另一个用户,从而具有该用户的所有权限。当然,切换时需要目标用户的密码进行验证(从root切换为其他用户时列外)

例如:当普通用户切换root身份时,需要输入root的密码。

163534235.jpg

上述命令操作中,选项“-”等同于“--login”或“-l”,表示切换后进入目标用户的登录shell环境,若缺少此选项则仅切换身份,不切换用户环境。

默认情况下,任何用户都允许使用su命令,从而有机会反复尝试其他用户的登录密码,带来安全风险。为了加强su命令的使用控制,可以借助于pam_wheel认证模块,只允许极个别用户使用su命令进行切换。实现过程如下:

1、将需要使用su命令的用户加入wheel组

164222174.jpg

2、修改配置文件/etc/pam.d/su、启用pam_sheel认证。

vim /etc/pam.d/su

auth    required    pam_wheel.so use_uid

......//省略部分内容

3、此时user用户就可以使用su命令了,而其他没有加入wheel组的用户就不可以使用su命令。


二、sudo命令——提升权限

使用sudo命令可以使某些用户具有一些特殊的权限,而这个用户不需要知道管理员的密码,不过,这需要有管理员预先进行授权,指定允许那些用户以管理员的身份来执行那些命令。

sudo命令的配置文件在/etc/sudoers中,需要向这个配置文件中添加指定用户的指定权限,此用户才能执行这些权限,可以使用visudo命令或vim等命令进行编辑。(注意:使用vim进行编辑时需要加!强制保存)

配置文件/etc/sudoers中,授权记录的基本配置格式如下所示。

user    MACHING=COMMANDS

主要包括用户、主机、命令三个部分,即那些用户从那些主机执行那些命令。

用户(user):授权的用户名,或采用“%组名”的形式表示一个组。

主机(MACHING):使用此配置文件的主机名,一般设为localhost。

命令(COMMABDS):允许授权的用户通过sudo方式执行的命令,需要填写命令程序的完整路径,多个命令之间使用逗号“,”隔开。

1、修改/etc/sudores配置文件给指定用户授权

列如:授权用户user具有执行ifconfig命令的权限。

[root@lcoalhost /]#visudo

......//省略部分内容

user    localhost=/sbin/ifconfig

2、使用别名定义的方式给多个用户授权

当使用相同授权的用户较多时,或者授权的命令较多时,可以采用集中定义别名。用户、主机、命令部分都可以定义别名(别名必须大写),分别通过关键字User_Alias、Host_Alias、Cmnd_Alias来进行设置。

如下:设置允许用户user1、user2、user3在主机localhost执行rpm、yum等命令

[root@lcoalhost /]#visudo

......//省略部分内容

User_Alias    USERS=user1,user2,user3

Cmnd_Alias    PKGTOOLS=/bin/rpm,/usr/bin/yum

USERS        localhost=PKGTOOLS

在给用户授权时,命令部分可以使用通配符“*”和取反符号“!”,当需要授权某个目录下的所有命令,取消其中个别命令时特别有用。

3、为sudo启用日志记录功能

默认情况下,通过sudo方式执行的操作并不记录。若要启用sudo日志记录功能,应在/etc/sudores文件中增加“Defaults logfile”选项。

如下:添加sudo日志记录功能

[root@lcoalhost /]#visudo

......//省略部分内容

Defaults logfile=“/var/log/sudo”

4、用户通过sudo命令执行授权命令

对于已获得授权的用户,通过sudo方式执行特权命令时,只需要将正常的命令行作为sudo命令的参数即可。如下:user用户执行ifconfig命令

172203577.jpg

首次执行sudo命令需要输入当前用户的密码,有效期是5分钟,也就是输入密码后5分钟内没有使用sudo密码,那么下次执行sudo命令时又会提示输入密码。

若不希望用户执行sudo命令时输入密码,可以修改配置文件/etc/sudores如下:

[root@lcoalhost /]#visudo

......//省略部分内容

user    localhost=NOPASSWD:/sbin/ifconfig

此时在使用user用户执行ifconfig命令时就不在提示输入密码了。

若要查看当前用户以获得哪些sudo授权命令时,可是执行“sudo -l”命令。




本文出自 “邓奇的Blog” 博客,请务必保留此出处http://dengqi.blog.51cto.com/5685776/1260039

这篇关于合理运用su和sudo命令以保证系统用户安全的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1097206

相关文章

Windows命令之tasklist命令用法详解(Windows查看进程)

《Windows命令之tasklist命令用法详解(Windows查看进程)》tasklist命令显示本地计算机或远程计算机上当前正在运行的进程列表,命令结合筛选器一起使用,可以按照我们的需求进行过滤... 目录命令帮助1、基本使用2、执行原理2.1、tasklist命令无法使用3、筛选器3.1、根据PID

Linux系统之authconfig命令的使用解读

《Linux系统之authconfig命令的使用解读》authconfig是一个用于配置Linux系统身份验证和账户管理设置的命令行工具,主要用于RedHat系列的Linux发行版,它提供了一系列选项... 目录linux authconfig命令的使用基本语法常用选项示例总结Linux authconfi

linux打包解压命令方式

《linux打包解压命令方式》文章介绍了Linux系统中常用的打包和解压命令,包括tar和zip,使用tar命令可以创建和解压tar格式的归档文件,使用zip命令可以创建和解压zip格式的压缩文件,每... 目录Lijavascriptnux 打包和解压命令打包命令解压命令总结linux 打包和解压命令打

Python itertools中accumulate函数用法及使用运用详细讲解

《Pythonitertools中accumulate函数用法及使用运用详细讲解》:本文主要介绍Python的itertools库中的accumulate函数,该函数可以计算累积和或通过指定函数... 目录1.1前言:1.2定义:1.3衍生用法:1.3Leetcode的实际运用:总结 1.1前言:本文将详

TP-Link PDDNS服将于务6月30日正式停运:用户需转向第三方DDNS服务

《TP-LinkPDDNS服将于务6月30日正式停运:用户需转向第三方DDNS服务》近期,路由器制造巨头普联(TP-Link)在用户群体中引发了一系列重要变动,上个月,公司发出了一则通知,明确要求所... 路由器厂商普联(TP-Link)上个月发布公告要求所有用户必须完成实名认证后才能继续使用普联提供的 D

Oracle数据库如何切换登录用户(system和sys)

《Oracle数据库如何切换登录用户(system和sys)》文章介绍了如何使用SQL*Plus工具登录Oracle数据库的system用户,包括打开登录入口、输入用户名和口令、以及切换到sys用户的... 目录打开登录入口登录system用户总结打开登录入口win+R打开运行对话框,输php入:sqlp

Redis的Zset类型及相关命令详细讲解

《Redis的Zset类型及相关命令详细讲解》:本文主要介绍Redis的Zset类型及相关命令的相关资料,有序集合Zset是一种Redis数据结构,它类似于集合Set,但每个元素都有一个关联的分数... 目录Zset简介ZADDZCARDZCOUNTZRANGEZREVRANGEZRANGEBYSCOREZ

浅析Rust多线程中如何安全的使用变量

《浅析Rust多线程中如何安全的使用变量》这篇文章主要为大家详细介绍了Rust如何在线程的闭包中安全的使用变量,包括共享变量和修改变量,文中的示例代码讲解详细,有需要的小伙伴可以参考下... 目录1. 向线程传递变量2. 多线程共享变量引用3. 多线程中修改变量4. 总结在Rust语言中,一个既引人入胜又可

数据库oracle用户密码过期查询及解决方案

《数据库oracle用户密码过期查询及解决方案》:本文主要介绍如何处理ORACLE数据库用户密码过期和修改密码期限的问题,包括创建用户、赋予权限、修改密码、解锁用户和设置密码期限,文中通过代码介绍... 目录前言一、创建用户、赋予权限、修改密码、解锁用户和设置期限二、查询用户密码期限和过期后的修改1.查询用

Linux使用dd命令来复制和转换数据的操作方法

《Linux使用dd命令来复制和转换数据的操作方法》Linux中的dd命令是一个功能强大的数据复制和转换实用程序,它以较低级别运行,通常用于创建可启动的USB驱动器、克隆磁盘和生成随机数据等任务,本文... 目录简介功能和能力语法常用选项示例用法基础用法创建可启动www.chinasem.cn的 USB 驱动