首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不理解塞图德

不理解塞图德
EN

Stack Overflow用户
提问于 2022-11-23 19:36:07
回答 1查看 17关注 0票数 0

我创建了一个非常简单的脚本:

代码语言:javascript
复制
//#escalate.c - a setuid utility so that we can call shutdown
//# and other things safely without needing root access.  We 
//# do need to:
//#   gcc escalate.c -o escalate.out
//#   sudo chown root:root escalate.out
//#   sudo chmod 4755 escalate.out

#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <unistd.h>
#include <errno.h>

int main()
{
    int status;
    status = setuid( 0 );   // you can set it at run time also
    system("date > /tmp/date.fil");
    return errno;
 }

在Raspian上,它在/tmp中生成由根拥有的文件,并按预期返回0。

在Ubuntu22上,它创建了我拥有的文件,返回状态为1。关于setuid(0);,我遗漏了什么?

我试着创建,修改权限和所有权等等。在拉斯宾,它的工作就像一个魅力,而在Ubuntu,它没有。

==================我自己解决了。在Ubuntu上,我运行的是一个加密的家庭,所以它用nosuid集挂载。

EN

回答 1

Stack Overflow用户

发布于 2022-11-23 20:06:28

问题是文件系统被挂载了

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74552164

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档