系统安全及应用——用户切换与提权

大多数Linux服务器并不建议用户直接以root用户进行登录。一方面可以大大减少因误操作而导致的破坏,另一方面也降低了特权密码在不安全的网络中被泄露的风险。鉴于这些原因,需要为普
通用户提供一种身份切换或权限提升机制,以便在必要的时候执行管理任务,Linux系统为我们提供了su、sudo 两种命令,其中su命令主要用来切换用户,而sudo命令用来提升执行权限,下面分别进行介绍。
在这里插入图片描述

上述命令操作中,选项”-” 等同于"–login” 或“-1”, 表 示切换用户后进入目标用户的登录Shell环境,若缺少此选项则仅切换身份.不切换用户环境。对于切换为root用户的情况, "root”可 ;以省略。
默认情况下,任何用户都允许使用su命令,从而有机会反复尝试其他用户(如 root)的登录密码,这样带来了安全风险。为了加强su命令的使用控制,可以借助于pam. wheel 认证模块,只允许
极个别用户使用su命令进行切换。实现过程如下:将授权使用su命令的用户添加到wheel组,修改/etc/pam. d/su认证配置以启用pam wheel 认证。
在这里插入图片描述

启用pam. _wheel认证以后,未加入到wheel组内的其他用户将无法使用su命令,尝试进行切换时将提示“拒绝权限”,从而将切换用户的权限控制在最小范围内。
在这里插入图片描述

注意;
使用sU命令切换用户的操作将会记录到安全日志/var/log/secure文件中.可以根据需要进行查看。

2.sudo命令一提升执行权限

通过su命令可以非常方便地切换为另一个用户,但前提条件是必须知道目标用户的登录密码。例如,若要从jerry用户切换为root用户,必须知道root用户的密码。对于生产环境中的Linux服务
器,每多一个人知道特权密码,其安全风险也就增加一-分。那么,有没有-种折中的办法,既可以让普通用户拥有一部分管理权限,又不需要将root用户的密码告诉他呢?答案是肯定的,使sudo命令就可以提升执行权限。不过,需要由管理员预先进行授权,指定允许哪些用户以超级用户(或其他普通用户) 的身份来执行哪些命令。

在配置文件/etc/sudoers 中添加授权
sudo机制的配置文件为/etc/sudoers,文件的默认权限为440,需使用专门的visudo工具进行编辑。虽然也可以用vi进行编辑,但保存时必须执行” :W!”命令来强制操作,否则系统将提示为只读文件而拒绝保存。配置文件/etc/sudoers中,授权记录的基 本配置格式如下所示。
在这里插入图片描述

授权配置主要包括用户、主机、命令三个部分,即授权哪些人在哪些主机上执行哪些命令。各部分的具体含义如下。
在这里插入图片描述

典型的sudo配置记录中,每行对应- -个用户或组的sudo授权配置。例如,若要授权用户jerry能够执行ifconfig 命令来修改IP地址,而wheel组的用户无需验证密码即可执行任何命令,可以执行以下操作。
在这里插入图片描述

当使用相同授权的用户较多,或者授权的命令较多时,可以采用集中定义的别名。用户、主机、命令部分都可以定义为别名(必须为大写),分别通过关键字User. Alias. Host Alias. Cmnd_ Alias 进行设置,例如,以下操作通过别名方式来添加授权记录,允许用户jerry. tom. tsengyia 在主机smtp.pop中执行rpm、yum命令。
在这里插入图片描述

sudo配置记录的命令部分允许使用通配符" * ”、 取反符号“ !”, 当 需要授权某个目录下的所有命令或取消其中个别命令时特别有用。例如,若要授权用户syrianer可以执行/sbin/目录下除ifconfig.route以外的其他所有命令程序,可以执行以下操作。

[ root@localhost ~] # visudo

syriane rlocalhost=/sbin/, !/sbin/ifconfig, ! /sbin/route

默认情况下,通过sudo方式执行的操作并不记录。若要启用sudo日志记录以备管理员查看,应在/etc/sudoers文件中增加"Defaults logfile" 设置。
在这里插入图片描述

2)通过sudo执行特权命令
对于已获得授权的用户,通过sudo方式执行特权命令时,只需要将正常的命令行作为sudo 命令的参数即可。由于特权命令程序通常位于/sbin. /usr/sbin等目录下, 普通用户执行时应使用绝对路径。以下操作验证了使用sudo方式执行命令的过程。
在这里插入图片描述

在当前会话过程中,第一次通过 sudo执行命令时,必须以用户自己的密码(不是root 用户或其他用户的密码)进行验证。此后再次通过sudo执行命令时,只要与前一次sudo操作的间隔时间不超过5min(分),则不再重复验证。若要查看用户自己获得哪些sudo授权,可以执行‘sudo-I” 命令.未授权的用户将会得到"maynot run sudo” 的提示,已授权的用户则可以看到自己的sudo配置.
在这里插入图片描述

用户syrianer 可以在该主机.上运行以下命令
(root) /sbin/ (root) ! /sbin/ifconfig, (root) ! / sbin/ route
如果已经启用sudo日志,则可以从/var/log/sudo 文件中看到用户的sudo 操作记录。
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值