linux提权漏洞需要修复吗?Linux安全之提权命令

人气:311 ℃/2024-07-12 02:03:22

**sudo**是 Linux 系统管理指令,是允许系统管理员让普通用户执行一些或者全部的 root 命令的一个工具,如 halt,reboot,su 等等。这样不仅减少了 root 用户的登录 和管理时间,同样也提高了安全性。sudo 不是对 shell 的一个代替,它是面向每个命令的。

Linux安全之提权命令


1. su 命令

**su**是Switch User的缩写,用于切换当前用户身份到其他用户身份

# 切换到指定用户su -l root# 临时切换用户身份执行指令并退出su -l root -c 'ls'


2. sudo 命令

su和sudo的区别

实战演示

# 以指定身份运行命令sudo -u centos whoami


3. sudo 授权配置

使用sudo授权之后,能够让某用户以另外一个用户的身份运行命令

配置文件/etc/sudoers或者使用visudo使用visudo的原因,防止两个用户同时修改它,也能进行有限的语法检查可以使用man sudoers查询配置文件格式信息等sudoers文件的属主和属组ID必须都是0,文件权限位是0440(-r--r-----)

# 配置文件格式# user: 运行命令者的身份# host: 通过哪些主机# runas: 以哪个用户的身份# command: 运行哪些命令user host=(runas) command

# users列表: 多个用逗号分隔,可以使用!取反 username # 直接给出用户名 #uid # 用户UID user_Alias # 用户别名 %group_name # 用户组 %#gid # 组GID# host列表: 多个用逗号分隔,可以使用!取反 ip # IP地址 hostname # 主机名 netaddr # 网络地址# runas列表: 多个用逗号分隔,可以使用!取反 username # 直接给出用户名 #uid # 用户UID user_alias # 用户别名 %group_name # 用户组 %#gid # 组GID# command列表: 多个用逗号分隔,可以使用!取反 command name # 命令名称 directory # 目录下的所以命令 sudoedit # 拥有sudo授权能力

# 配置文件实例root ALL=(ALL) ALL # 以指定用户%wheel ALL=(ALL) ALL # 组内的用户

# 定义用户别名User_Alias NETADMIN = netuser1, netuser2# 定义命令别名,passwd命令必须指定用户且以a-z开头,并不能修改root用户Cmnd_Alias USERADMINCMNDS = /usr/sbin/useradd, /usr/bin/passwd [a-z]*, !/usr/bin/passwd root# NETADMIN用户只能使用USERADMINCMNDS指定的命令NETADMIN ALL=(ALL) USERADMINCMNDS

# 定义用户别名User_Alias USERADMIN = poweruser1, poweruser2# 定义命令别名Cmnd_Alias USERADMINCMNDS = /usr/sbin/useradd, /usr/sbin/usermod# NOPASSWD参数用于定义sudo切换的使用不用输入密码USERADMIN ALL=(ALL) USERADMINCMNDSUSERADMIN ALL=(ALL) NOPASSWD: USERADMINCMNDS


4. sudo 日志功能

sudo为安全考虑得很周到,不仅可以记录日志,还能在有必要时向系统管理员报告。但是,sudo的日志功能不是自动的,必须由管理员开启。

# 创建日志保存文件touch /var/log/sudo.log# 默认情况下,sudo日志通过syslog3,但要指定自定义日志文件,请使用logfile参数Defaults logfile="/var/log/sudo.log"# 要在自定义日志文件中记录主机名和四位数年份,请分别使用log_host和log_year参数Defaults log_host, log_year, logfile="/var/log/sudo.log"


5. sudo 使用技巧

# 要不询问某个用户的密码Defaults:USER_NAME !authenticate# 密码过期时间,之后就需要密码验证了Defaults:用户名 timestamp_timeout=20 # 这里密码过期时间为20分钟# 禁止root登陆passwd -l root # 使用passwd命令锁住root用户root:!:12345:::::: # 编辑/etc/shadow文件,将root的加密口令列替换为“!”# 增加sudo密码尝试限制,默认值为3次Defaults passwd_tries=5# 输入错误的sudo密码时显示自定义消息Defaults badpass_message="Password is wrong, please try again,thank you!"# 在TTY用户登录会话上启用sudoDefaults requiretty

# 添加下面内容 (使用visudo) 会覆盖sudo的默认行为# 这会将sudo的umask设置为root的默认umask(0022),覆盖掉默认行为# 无论用户的umask设置成什么都会使用这里设定的值Defaults umask = 0022Defaults umask_override

# 1.用户别名组中的用户可以在FILESERVERS这组host里面调用root用户执行OTHERS命令组的权限# 多个命令组用逗号分隔ADMINS FILESERVERS=(ALL) NOPASSWD:OTHERS# 2.用户chenmh这个用户可以在本机以调用root用户来执行所有的命令chenmh localhost=(root) NOPASSWORD:ALL# 3.用户chenmh可以调用root用户创建目录test,也只能创建test目录chenmh ALL=(ALL) NOPASSWD: /bin/mkdir test# 4.dev组的用户可以执行关机shutdown命令

百科

More+
首页/电脑版/网名
© 2026 NiBaKu.Com All Rights Reserved.