合理运用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

相关文章

Linux ls命令操作详解

《Linuxls命令操作详解》通过ls命令,我们可以查看指定目录下的文件和子目录,并结合不同的选项获取详细的文件信息,如权限、大小、修改时间等,:本文主要介绍Linuxls命令详解,需要的朋友可... 目录1. 命令简介2. 命令的基本语法和用法2.1 语法格式2.2 使用示例2.2.1 列出当前目录下的文

Spring Boot项目部署命令java -jar的各种参数及作用详解

《SpringBoot项目部署命令java-jar的各种参数及作用详解》:本文主要介绍SpringBoot项目部署命令java-jar的各种参数及作用的相关资料,包括设置内存大小、垃圾回收... 目录前言一、基础命令结构二、常见的 Java 命令参数1. 设置内存大小2. 配置垃圾回收器3. 配置线程栈大小

Python从零打造高安全密码管理器

《Python从零打造高安全密码管理器》在数字化时代,每人平均需要管理近百个账号密码,本文将带大家深入剖析一个基于Python的高安全性密码管理器实现方案,感兴趣的小伙伴可以参考一下... 目录一、前言:为什么我们需要专属密码管理器二、系统架构设计2.1 安全加密体系2.2 密码强度策略三、核心功能实现详解

最新Spring Security实战教程之Spring Security安全框架指南

《最新SpringSecurity实战教程之SpringSecurity安全框架指南》SpringSecurity是Spring生态系统中的核心组件,提供认证、授权和防护机制,以保护应用免受各种安... 目录前言什么是Spring Security?同类框架对比Spring Security典型应用场景传统

Linux find 命令完全指南及核心用法

《Linuxfind命令完全指南及核心用法》find是Linux系统最强大的文件搜索工具,支持嵌套遍历、条件筛选、执行动作,下面给大家介绍Linuxfind命令完全指南,感兴趣的朋友一起看看吧... 目录一、基础搜索模式1. 按文件名搜索(精确/模糊匹配)2. 排除指定目录/文件二、根据文件类型筛选三、时间

mysql删除无用用户的方法实现

《mysql删除无用用户的方法实现》本文主要介绍了mysql删除无用用户的方法实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 1、删除不用的账户(1) 查看当前已存在账户mysql> select user,host,pa

使用mvn deploy命令上传jar包的实现

《使用mvndeploy命令上传jar包的实现》本文介绍了使用mvndeploy:deploy-file命令将本地仓库中的JAR包重新发布到Maven私服,文中通过示例代码介绍的非常详细,对大家的学... 目录一、背景二、环境三、配置nexus上传账号四、执行deploy命令上传包1. 首先需要把本地仓中要

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 打包和解压命令打