Linux下如何让普通用户运行特权程序访问受限文件

当普通用户需要读取root权限文件时,可以通过创建一个owner为root的程序并开启Set-User-ID位来实现。在root账号下,将程序的u+s权限设置好后,普通用户运行此程序,其Effective User ID会变为root,从而能访问受限文件。
摘要由CSDN通过智能技术生成

问题: 如下这个文件,由root账号创建,权限为 rw-r-----,即对普通用户来说,read/write权限都没有.

-rw-r-----  1 root   root         0 7月   9 21:22 rootfile

在非root账号即普通用户账号下,试图读取该文件会报错:

$ cat rootfile 
cat: rootfile: 权限不够

在某些特殊情况下,普通用户也需要读取该文件的内容.怎么办?

解决办法:

1. 编写一个owner id为root的程序,读写rootfile,名为 ReadRootFile(源代码见下文 )。此时该程序只能由root账号执行。

-rwxr-xr-x  1 root   root      8968 7月   9 21:37 ReadRootFile

   如果尝试在普通账号下运行该程序,会报错:

$ ./ReadRootFile rootfile 
Open fail: : Permission denied
Real User ID:1000, name=liuwei
Effective User ID:1000, name=liuwei

2. 在root账号下,执行 chmod u+s ./ReadRootFile,打开 Set-User-ID 位。设置后,再次查看文件属性。可见文件的用

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值