Linux提权管理
文章目录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权限的用户输入自己的密码确认是否是本人在操作[ljwcentos7 ~17:32:01]$sudoid[sudo]passwordforljw:uid0(root)gid0(root)groups0(root)contextunconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023# 没有sudo权限的用户[laowangcentos7 ~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 配置rootcentos7 ~17:35:11]# export EDITORvim[rootcentos7 ~17:35:40]# visudo# 其中两条记录wheel组中成员可以以任何用户身份执行任何命令rootALL(ALL)ALL# 组以%开头%wheelALL(ALL)ALL#给laowang添加只能够执行特定命令laowangALL(ALL)/sbin/useradd,/sbin/usermod,/sbin/userdel#验证[laowangcentos7 ~17:36:25]$sudoid[sudo]passwordforlaowang: Sorry, user laowang is not allowed to execute/bin/idas root on centos7.wanho.net.[laowangcentos7 ~]$sudouseraddlaozhang[sudo]passwordforlaowang:[laowangcentos7 ~]$idlaozhanguid1002(laozhang)gid1002(laozhang)groups1002(laozhang)在分配命令的时候切记只给用户特定功能的命令例如用户管理相关命令而不是通用功能的工具例如 vim。配置文件路径主配置文件/etc/sudoers正常情况不要修改。从配置文件/etc/sudoer.d/*如果想添加配置在此处添加[rootcentos7 ~17:40:34]# echo laowang ALL(ALL) NOPASSWD:ALL /etc/sudoers.d/laowang[rootcentos7 ~17:41:02]# cat /etc/sudoers.d/laowanglaowangALL(ALL)NOPASSWD:ALL命令别名Cmnd_Alias SOFTWARE/bin/rpm, /usr/bin/up2date, /usr/bin/yum# sys组中成员执行以下命令别名中的所有命令%sys ALLNETWORKING, 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的日志记录功能。