【问题标题】:Does an executable have the same file privileges as the user who ran it?可执行文件是否具有与运行它的用户相同的文件权限?
【发布时间】:2018-11-07 14:05:34
【问题描述】:

在 Unix 中,如果我运行一个包含文件的二进制文件,该二进制文件是否与我(运行该二进制文件的用户)具有相同的文件权限?

【问题讨论】:

  • 其实不是二进制有权限,而是进程。该过程由用户启动。因此,该进程继承了该用户当前 shell 的 当前 权限、设置和环境。无论当前在特定情况下意味着什么......

标签: linux unix file-permissions setuid


【解决方案1】:

在大多数情况下,答案是肯定的!

但是,如果您在该二进制文件上启用了setuidsetgid 位,则情况并非如此。

启用setuid 的经典二进制示例。

ls -ltra `which passwd`

如果该命令在执行期间无法授予您(执行该命令的用户)与 root 相同的权限以修改 /etc/password/etc/shadow 等文件,该命令将无法工作

看看:

https://docs.oracle.com/cd/E19683-01/816-4883/secfile-69/index.html

setuid 权限

当设置用户标识 (setuid) 权限设置在 可执行文件,运行此文件的进程被授予基于访问权限 在文件的所有者(通常是 root)上,而不是在文件的所有者上 运行可执行文件。此特殊权限允许用户 访问通常只有 所有者。

setgid 权限

set-group标识(setgid)权限类似于setuid, 除了进程的有效组 ID (GID) 更改为 文件的组所有者,并且用户被授予访问权限 授予该组的权限。 /usr/bin/mail 命令有 设置gid权限

如果您想进一步了解 Linux 如何管理进程和子进程,您可能还想看看 forkexec

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-27
    • 2014-07-18
    • 2017-08-15
    • 2016-01-10
    • 2015-01-24
    相关资源
    最近更新 更多