Linux提权管理
📅 2026/7/22 4:08:41
👁️ 阅读次数
📝 编程学习
文章目录
- Linux提权管理
- su命令
- sudo命令
- 提权总结
Linux提权管理
su命令
su username启动一个非登录shell,使用当前的环境设置(上一个用户)su -l username启动一个登录shell,设置了shell环境
username 省略时,代表切换到root账户。
不加用户名的nologin shell登录,仍会保留ljw用户的一些环境变量
外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
不加用户名的login shell登录,所有环境变量都改为root用户
尽可能使用loging shell 登录
sudo命令
- su 缺点:
- 用户必须知道 root 用户密码获取 root 用户所有权限。
- 未记录用户执行命令。
- 无法以
/sbin/nologin的用户身份运行命令。 - sudo 优点:
- sudo 允许用户以其他用户身份执行特定命令。
- sudo 需要用户输入用户自己的密码,而非他们想访问的用户密码。
- sudo 执行的命令会记录在
/var/log/secure文件中。
sudo语法: sudo [-u username] command
# 有sudo权限的用户,输入自己的密码,确认是否是本人在操作[ljw@centos7 ~17:32:01]$sudoid[sudo]passwordforljw:uid=0(root)gid=0(root)groups=0(root)context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023# 没有sudo权限的用户[laowang@centos7 ~17:33:22]$sudoidWe trust you have received the usual lecture from thelocalSystem Administrator. It usually boils down to these three things:#1) Respect the privacy of others.#2) Think before you type.#3) With great power comes great responsibility.[sudo]passwordforlaowang: laowang is notinthe sudoers file. This incident will be reportedsudo 配置
root@centos7 ~17:35:11]# export EDITOR=vim[root@centos7 ~17:35:40]# visudo# 其中两条记录,wheel组中成员,可以以任何用户身份执行任何命令rootALL=(ALL)ALL# 组以%开头%wheelALL=(ALL)ALL#给laowang添加只能够执行特定命令laowangALL=(ALL)/sbin/useradd,/sbin/usermod,/sbin/userdel#验证[laowang@centos7 ~17:36:25]$sudoid[sudo]passwordforlaowang: Sorry, user laowang is not allowed to execute'/bin/id'as root on centos7.wanho.net.[laowang@centos7 ~]$sudouseraddlaozhang[sudo]passwordforlaowang:[laowang@centos7 ~]$idlaozhanguid=1002(laozhang)gid=1002(laozhang)groups=1002(laozhang)在分配命令的时候,切记只给用户特定功能的命令(例如用户管理相关命令),而不是通用功能的工具(例如 vim)。
配置文件路径:
- 主配置文件:
/etc/sudoers,正常情况不要修改。 - 从配置文件:
/etc/sudoer.d/*,如果想添加配置,在此处添加
[root@centos7 ~17:40:34]# echo 'laowang ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers.d/laowang[root@centos7 ~17:41:02]# cat /etc/sudoers.d/laowanglaowangALL=(ALL)NOPASSWD:ALL命令别名
Cmnd_Alias SOFTWARE=/bin/rpm, /usr/bin/up2date, /usr/bin/yum# sys组中成员执行以下命令别名中的所有命令%sys ALL=NETWORKING, SOFTWARE, SERVICES, STORAGE, DELEGATING, PROCESSES, LOCATE, DRIVERS提权总结
以下是关于 Linux 中su和sudo使用的几条建议:
- 优先使用
sudo而非susudo允许临时获取管理员权限,操作完成后自动退回普通用户状态,降低误操作风险;而su会直接切换到 root 身份,长期保持高权限状态存在安全隐患。 - 限制
su的使用范围尽量仅在需要长时间执行多个管理员操作时使用su,且完成后立即通过exit退出 root 身份,避免在 root 权限下进行日常操作。 - 合理配置
sudoers文件通过visudo命令配置sudoers,精确控制用户可执行的管理员命令(如user ALL=(ALL) /bin/apt),避免授予无限制的sudo权限。 - 注意命令的完整路径使用
sudo时,尽量指定命令的绝对路径(如sudo /usr/bin/apt update),防止因环境变量篡改导致的安全风险。 - 避免在脚本中硬编码
sudo密码不要在脚本中直接写入sudo密码(如通过管道传递),可通过配置sudoers实现特定命令免密执行,或使用更安全的权限管理方式。 - 定期审计操作日志
sudo的操作会记录在/var/log/auth.log(或/var/log/secure)中,定期检查日志可追踪权限使用情况,及时发现异常操作。 - 使用
sudo -i替代su进行交互式操作若需要类似su的交互式 root 环境,可使用sudo -i,它会加载 root 的环境变量,同时保留sudo的日志记录功能。
编程学习
技术分享
实战经验