可执行文件是否具有与运行它的用户相同的文件特权?

猛禽

在Unix中,如果我运行一个随处可见的二进制文件,那么该二进制文件是否具有与我本人(运行二进制文件的用户)相同的文件权限?

艾伦

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

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

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权限

设置组标识(setgid)权限与setuid相似,不同之处在于,将进程的有效组ID(GID)更改为文件的组所有者,并根据授予该组的权限为用户授予访问权限。/ usr / bin / mail命令具有setgid权限

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

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Bash是否具有可执行文件缓存?

具有相关扩展名的Python可执行文件运行文件

以编程方式检查可执行文件是否存在,而无需运行它或使用“哪个”

赋予可执行文件比运行用户更多的权限

在Linux中具有相同名称的多个可执行文件之间进行选择

具有不同图标的相同可执行文件

目录具有可执行文件模式

在可执行文件之后运行&&

从makefile运行可执行文件

运行可执行文件

Dockerfile运行可执行文件

运行可执行文件的语法?

有什么方法可以阻止用户创建可执行文件并运行它们?

在Windows cmd中,如何在当前目录中运行可执行文件(而不是在%PATH%中具有相同名称的可执行文件)而不引用完整路径?

使用nsis安装可执行文件的特权

如何检查特定的可执行文件是否具有实时进程

linux是否具有可执行文件的签名系统?

Inno Setup-防止桌面快捷方式打开子文件夹,而不是运行具有相同名称的可执行文件

使用与当前可执行文件相同的可执行文件启动Java进程

如何为具有相同依赖项的多个可执行文件正确编写生成文件 - C

将可执行文件移动到 make 文件中的不同目录后运行它

可执行文件包装程序,从PATH的末尾运行原始可执行文件

没有设置可执行位时,如何从CD运行可执行文件?

运行具有固定执行时间和内存限制的可执行文件,并获取退出代码

cmake-是否可以在运行时将可执行文件链接到具有相对路径的共享库?

PyInstaller:单文件可执行文件不运行

可执行文件在一个帐户下没有sudo特权运行,但在另一个帐户下没有?

当非特权用户更改可执行文件的所有者或组时,为什么会清除S_ISUID和S_ISGID模式位

我可以在没有管理员级别特权的情况下将可执行文件放入用户的PATH吗?