在麒麟系统中应通过sudo机制替代直接使用root:一、配置sudoers实现最小权限控制;二、用sudo -i/-s切换类root环境;三、禁用root远程SSH登录;四、建管理组统一授权;五、启用sudo日志审计。

如果您在麒麟操作系统中需要执行需要更高权限的系统管理任务,但又希望避免直接使用root用户带来的安全风险,则必须理解sudo机制与root用户的区别及正确用法。以下是针对该场景的多种实践方式:
一、配置sudoers文件实现精细化权限控制
通过编辑/etc/sudoers文件,可为特定用户或用户组授予指定命令的无密码或受限执行权限,从而避免赋予全部root权限。此方法基于策略驱动,确保最小权限原则落地。
1、以root身份运行visudo命令打开sudoers配置文件:sudo visudo。
2、在文件末尾添加一行,例如允许用户zhangsan仅执行systemctl restart nginx:zhangsan ALL=(ALL) NOPASSWD: /bin/systemctl restart nginx。
3、保存并退出后,验证配置语法是否正确:sudo visudo -c,若输出“parsed OK”,则配置生效。
二、使用sudo -i与sudo -s切换至类root环境
sudo -i启动一个以root身份运行的登录shell,加载完整root环境变量;sudo -s则启动非登录shell,保留当前用户部分环境设置。二者均不需启用root账户登录,规避了root密码暴露风险。
1、执行sudo -i进入root登录shell,提示符变为“#”,且HOME目录切换为/root。
2、执行sudo -s进入root非登录shell,当前工作目录和部分环境变量(如PATH)仍继承自原用户。
3、退出当前shell时,输入exit或按Ctrl+D,立即返回原始用户会话。
三、限制root用户远程SSH登录并禁用其密码认证
禁用root用户的SSH密码登录可显著降低暴力破解风险,强制通过密钥+sudo组合完成远程管理,提升系统纵深防御能力。
1、编辑SSH服务配置文件:sudo nano /etc/ssh/sshd_config。
2、定位PermitRootLogin行,将其值修改为no;若该行被注释,取消注释后再修改。
套采用php+mysql的多用户网上商城系统,安全、负载量高,访问迅捷,能与论坛、博客、CMS等系统整合并支持一站登陆。功能包括用户管理、商品管理、订单管理、销售统计、广告/公告管理、附件管理等,这些管理权限与用户等级挂钩。内置多套模板,支持界面个性化设计和人性化的采购方式。系统内置贝宝、支付宝、快钱在线等支付网关以及QQ、旺旺、雅虎通即时网络通讯工具。
3、确保PasswordAuthentication设为no,并确认PubkeyAuthentication为yes。
4、重启SSH服务使配置生效:sudo systemctl restart sshd。
四、创建具有受限sudo权限的管理组
将多个运维人员加入统一管理组(如admingrp),再通过sudoers文件对该组整体授权,便于批量维护权限策略,避免逐个配置用户。
1、创建专用管理组:sudo groupadd admingrp。
2、将用户加入该组:sudo usermod -aG admingrp user01。
3、在/etc/sudoers中添加组级规则,例如仅允许执行日志查看与服务状态检查:%admingrp ALL=(ALL) /bin/journalctl, /bin/systemctl status *。
五、审计sudo操作行为并记录完整命令行
启用sudo日志记录功能,可捕获每次sudo调用的发起用户、目标主机、执行时间、完整命令及返回码,为安全事件回溯提供原始依据。
1、确认rsyslog服务正在运行:sudo systemctl is-active rsyslog。
2、编辑/etc/sudoers,添加日志路径配置:Defaults logfile="/var/log/sudo.log"。
3、确保sudo日志文件存在且权限正确:sudo touch /var/log/sudo.log && sudo chmod 600 /var/log/sudo.log。
4、查看最近一次sudo操作记录:sudo tail -n 5 /var/log/sudo.log。









