首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >“passwd”命令如何获得根用户权限?

“passwd”命令如何获得根用户权限?
EN

Unix & Linux用户
提问于 2013-11-09 13:50:39
回答 2查看 13.1K关注 0票数 11

Linux如何知道它必须只将euid 0(root的uid)给某些进程,如passwd、setuid等等。

如果一个进程可以获得根权限,那么它不会导致Linux平台中潜在的安全漏洞吗?

例如,如果我编写的程序可以获得根用户权限(如passwd ),则可能损坏重要的系统文件,如/etc/passwd、/etc/group。

Linux是如何管理仍然是安全的?

EN

回答 2

Unix & Linux用户

发布于 2013-11-09 14:11:42

passwd程序设置了setuid位,您可以在ls -l中看到这一点:

代码语言:javascript
运行
复制
-rwsr-xr-x 1 root root 39104 2009-12-06 05:35 /usr/bin/passwd

这是s (行的第四个字符)。

具有此权限位设置的所有程序都以该程序的所有者身份运行。在本例中,用户是root (行的第三个字)。

这些setuid程序需要确保它们不会损坏任何东西,因为系统的每个用户都可以使用有效的根权限运行它们。这就是为什么你只能更改你自己的密码。Linux和其他类似的操作系统仍然是安全的,因为这些setuid程序的作者非常小心。

例如,请参见Apache中的suexec.c,这是一个流行的setuid程序。在该源代码中有异常多的注释。

票数 17
EN

Unix & Linux用户

发布于 2014-12-08 14:04:43

作为Roland答案的补充,完全有可能编写一个程序,当给定根权限时,它会以各种方式破坏系统文件和/或损害您的系统。

问题是,仅仅编写它并不意味着它会自动作为root运行--它需要将其所有者设置为root,然后必须设置Roland引用的setuid位--只有root才有权这样做。

简而言之:是的,每个设置setuid位的二进制文件至少都有潜在的安全风险。利用启用setuid的二进制文件中的漏洞来获取根权限是所谓特权提升攻击的最常见来源,当它们发生时往往是一件大事。正因为如此,使用setuid的软件相对较少,而存在的软件往往受到严格的审查。

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

https://unix.stackexchange.com/questions/101467

复制
相关文章

相似问题

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