setuid

需要哪些步骤才能安全地创建可以挂载可移动驱动器而无需提升权限的 unix setuid 二进制文件
setuid

需要哪些步骤才能安全地创建可以挂载可移动驱动器而无需提升权限的 unix setuid 二进制文件

对于愿意在普通用户指定的任意路径上挂载驱动器的 setuid 二进制文件,我能想到的步骤如下: 二进制文件必须检查是否/sys/block/DEV/removable=1 二进制文件必须检查要挂载的目录是否属于调用用户 -o nosuid,uid=UID,gid=GID二进制文件必须始终为调用用户安装 还有什么我忽略的吗? 传统上,noexec 也被添加到挂载选项中,但我不确定这是否严格有必要避免权限提升。 ...

Admin

使用 EUID 是什么意思?如果一个进程的 RUID 和 EUID 分别为 1000、0,并且如果我们运行任何命令,该命令将以 1000 权限级别运行,为什么?
setuid

使用 EUID 是什么意思?如果一个进程的 RUID 和 EUID 分别为 1000、0,并且如果我们运行任何命令,该命令将以 1000 权限级别运行,为什么?

据我了解, 鲁伊德:进程调用者的uid称为真实uid。 欧盟身份证:有效 uid 表示该进程允许的权限。 // setuid_file.c #include<stdio.h> int main(void) { int uid; uid=getuid(); printf("RUID : getuid() : %d\n",uid); uid=geteuid(); printf("EUID : geteuid() : %d\n",uid); syste...

Admin

为什么进程的“有效 UID”没有改变为文件所有者的 UID?
setuid

为什么进程的“有效 UID”没有改变为文件所有者的 UID?

script.sh我有 Ubuntu 20.04 虚拟服务器。我在 /opt 中有一个已设置位的可执行文件SetUID。 meliwex@linode:/opt$ ls -ld /opt drwxr-xr-x 2 root root 4096 Dec 19 03:45 /opt meliwex@linode:/opt$ ls -l total 4 -rwsr-xr-x 1 root root 125 Dec 19 03:45 script.sh meliwex@linode:/opt$ 当我以非 root 用户身份运行此文件时,effective UID...

Admin

为什么执行设置了 suid 的脚本时不应用所有者权限?
setuid

为什么执行设置了 suid 的脚本时不应用所有者权限?

我有一个 bash 文件,当由组用户执行时,我想以所有者权限运行它。因此,我使用以下命令设置文件权限: sudo -u owner_user chmod 4750 bash_script 该文件则具有以下权限: -rwsr-x---. 1 owner_user group 6559 Mar 15 09:52 bash_script 该文件包含以下行: cp other_folder/source_file other_folder/destination_file 当我以属于该组但不同于文件所有者的用户身份运行该文件时owner_user,收到以下...

Admin

使用 setuid 进程发送终止信号导致操作不允许
setuid

使用 setuid 进程发送终止信号导致操作不允许

我希望能够从使用与 Prometheus 不同的用户运行的 CI 工具向 Prometheus 进程发送 SIGHUP 信号。假设 CI 使用gitlab-runner用户,Prometheus 使用prometheus用户。我认为我可以通过以下步骤向 Prometheus 进程发送 SIGHUP 信号: 创建一个执行命令的简单 shell 脚本kill: $ cat `which promhup` kill -HUP $(pgrep prometheus) 更改此脚本的所有权并设置setuid此文件的位: chown prometheus pro...

Admin

CentOS 8 auditd AVC 拒绝消息泛滥,原因是 setuid 被拒绝
setuid

CentOS 8 auditd AVC 拒绝消息泛滥,原因是 setuid 被拒绝

今天我的 CentOS 8 突然冻结,不响应用户输入。当我尝试从控制台登录时,我看到如下消息: audit: backlog limit exceeded audit: backlog limit exceeded audit: backlog limit exceeded 使用 rd.break 方法启动到救援模式https://www.linuxtechi.com/boot-centos-8-rhel-8-single-user-mode/并使用中提到的步骤查找导致积压限制超出的原因https://www.hungred.com/how-to/back...

Admin

通过具有特殊权限的脚本修改文件
setuid

通过具有特殊权限的脚本修改文件

这可能很简单..但我没有找到发生了什么的解释..我拥有以下具有以下特定权限的文件: 因此,modtp2 是一个 shell 脚本,我用它来使用不属于“SYS”组、名为“user1”的用户来更改 tp2 内容: modtp2 脚本 我将用户更改为“user1”并尝试执行脚本,但总是出现此错误: 但据我所知,应该是可以执行的,因为即使SUID没有设置正确,SGID是可以的,所以执行有权限写入tp2的脚本时,有效GID应该是SYS的GID。 我知道这是一个错误的解释,因为权限被拒绝了,但你能纠正我吗?有效 GID 是否仅适用于当前脚本而不适用...

Admin

不支持“用户” CIFS 挂载 - fedora 30
setuid

不支持“用户” CIFS 挂载 - fedora 30

我有许多 smb v1 共享。(我知道 smbv1 已经过时且存在漏洞,但我无法改变它) 由于旧的 smb 协议,我无法使用 nautilus 打开它们。相反,我使用 fstab 条目来挂载它们。条目/etc/fstab如下所示: //smbserver/folder /media/user/smbserver/folder cifs credentials=/home/user/.smbcredentials,vers=1.0,noauto,user 0 0 在 Mint 19 机器上,这非常有效,但在新的 Fedora 30 安装中,我只收到以下错...

Admin

scp 到授权文件夹,但其父文件夹对我来说是被禁止的,失败了
setuid

scp 到授权文件夹,但其父文件夹对我来说是被禁止的,失败了

我尝试 scp 到不属于我的文件夹。其权限设置为 777,但 scp 告诉我权限被拒绝。当将其父文件夹的权限(仍然不属于我)设置为 777 时,scp 成功完成其任务。为什么? 重现步骤: me@host1:/tmp$ ls -lah /applis/foo/ drwxr-xr-x 4 you yourgroup 4.0K Jan 25 14:19 . drwxr-xr-x 4 you yourgroup 4.0K Oct 9 13:27 .. drwxrwxrwx 2 you yourgroup 4.0K Jan 25 14:19 build me...

Admin

滥用自杀计划
setuid

滥用自杀计划

我对 setuid 二进制文件有一些疑问。我知道它存在一些危险的程序(如果您允许将此程序与 sudo 一起使用,则有可能退出该程序并获得 root shell),例如 ftp、gdb 或 find。例如,如果我可以使用 root 权限创建 sudo ftp,那么我就可以输入 !/bin/bash 并获得 root shell。 所以我认为如果这个二进制文件有 suid 位,那么它也会遇到同样的问题。所以我在自己的电脑上试了一下,问题就出在这里。我把 suid 放在了 /usr/bin/netkit-ftp 上(/usr/bin/ftp 是指向 /usr/b...

Admin

Setuid 和 setgid 不起作用
setuid

Setuid 和 setgid 不起作用

我在 setuid 和 setgid 方面遇到了问题。我编写了以下 C 代码: int main() { setuid(0); setgid(0); system("/path/to/script.sh"); return 0; } 使用 gcc 进行编译: gcc test.c -o test 然后我使用了chmod +s。里面script.sh只有id命令。以下是可执行文件的权限test: -rwxr-sr-x 1 root root 8464 mag 15 20:14 test 当我执行该程序...

Admin

如何创建某些命令的 setuid 副本?
setuid

如何创建某些命令的 setuid 副本?

我正在读这本书How Linux Works,但有一点我不明白: 在普通的 Linux 系统上,大多数进程具有相同的effective user ID和real user ID。默认情况下,ps其他系统诊断程序会显示effective user ID。要查看系统上的有效用户 ID 和实际用户 ID,请尝试以下操作,但如果您发现系统上所有进程的两个用户 ID 列都相同,请不要感到惊讶: $ ps -eo pid,euser,ruser,comm 要创建异常以便您可以看到列中的不同值,请尝试通过创建该sleep 命令的 setuid...

Admin

setgid 位未在 execl 调用中保留
setuid

setgid 位未在 execl 调用中保留

我遇到了一种无法解释的情况:我有一个启用了 setgid 位的可执行文件。当我调用 getegid() 时,它会返回预期的组。但是,一旦我使用 execl 从中生成一个 shell,该 shell 就不再具有此有效 gid,而是具有启动它的用户的有效 gid。 它实际上对我来说一直有效,但这个系统最近升级了,可能有些设置被更改了。我无法 strace 它,因为在 strace 下 setgid 不起作用。有什么想法吗? ...

Admin

setuid 位根据目录有不同的行为
setuid

setuid 位根据目录有不同的行为

我一直在测试 setuid 权限,但在使其工作时遇到了一些麻烦。 假设我正在与两个用户owneruser和进行测试otheruser。 我编写了一个简单的 C 程序,它所做的就是调用它system()来显示当前用户。 测试id.c: int main(void) { setresgid(222, 222, 222); // To simplify, this numbers represent just harcoded setresuid(222, 222, 222); // values for the owneruser id and...

Admin

如何设置目录的权限,将其权限授予所有子目录?
setuid

如何设置目录的权限,将其权限授予所有子目录?

有没有办法设置 *nix 目录的权限,以便在创建子目录时,该子目录将具有与父目录相同的所有权限? 这是下列的,但它似乎并没有满足我的所有要求: 在大多数系统中,如果设置了目录的 set-group-ID 位,则新创建的子文件将继承与目录相同的组,而新创建的子目录将继承父目录的 set-group-ID 位。在少数系统中,目录的 set-user-ID 位对新子文件的所有权和新子目录的 set-user-ID 位具有类似的影响。这些机制让用户更轻松地共享文件,减少了使用 chmod 或 chown 共享新文件的需要。 ...

Admin