进程属性 - 修改文件所有者权限,为什么Linux系统用户能够修改自己的密码

修改文件的所有者权限

  进程在创建的时候,会生成与进程相关的进程属性,包括进程的权限、进程的有效用户(组)、真实用户(组)。

实验:修改suid文件的所有者权限为root,即有效用户修改为root

  1. 创建suid.c文件
#include<stdio.h>
#include<stdlib.h>
#include<unistd.h>
#include<sys/types.h>
int main(void){
    printf("real uid: %d, real gid: %d\n",getuid(),getgid());
    printf("effective uid: %d, effective gid: %d\n",geteuid(),getegid());
    exit(0);
}

然后按照以下步骤执行观察可执行文件suid权限的改变:
在这里插入图片描述

修改用户的密码

  为什么用户可以修改自己的密码呢?
  用户是通过执行passwd命令,修该密码。在执行该命令的时候,该进程的有效id不等于真实用户,而是文件所有者root
  Linux根据进程的有效用户进行权限检查,有效用户等于日root,则允许执行任何操作。(包括对/etc/shadow的读写操作)
  如果清除掉/usr/bin/passwd的setuid的权限位,则普通用户不能修改密码。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值