setuid

不支持“用户” 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

iptables、groups 和 setgid
setuid

iptables、groups 和 setgid

我对 iptables 的“所有者”模块有疑问。我发现它可以仅允许某些程序根据其 (e?)gid 使用服务。 在此基础上,我可以使用set-group-id位来改变程序的egid,从而对应用程序进行过滤。例如,只允许firefox使用HTTP和HTTPS服务。 尽管如此,我知道使用 set-group-id 位不是一个好的做法,但只是出于好奇:如果我为每个可执行文件使用单独的组(因此 Firefox 的“firefox”组等),并且这些组对其可执行文件只有读取和执行权限,这种用法是否会导致安全漏洞?如果是这样,你能给我举个例子吗? ...

Admin

不允许用户使用 setuid 位终止以其他用户身份启动的程序
setuid

不允许用户使用 setuid 位终止以其他用户身份启动的程序

我有一个具有以下权限的二进制文件。 -rwsr-xr-x. 1 root root 因此,当某个用户 X 尝试执行该二进制文件时,它将以 root 身份运行。此外,用户可以使用 kill -9 任何方式从其 ID 中终止此进程(以 root 身份运行),以防止用户终止该进程。 ...

Admin

Android / linux 忽略 setuid 标志
setuid

Android / linux 忽略 setuid 标志

我正在尝试获取我的中国 x86 平板电脑的 root 访问权限。使用 adb,我拥有 root 权限。我复制了一个“sh”二进制文件并设置了 setuid 位,然后从 adb 中它按预期工作: 1|shell@x98air3g_c5j8:/ $ which su.sh /system/xbin/su.sh shell@x98air3g_c5j8:/ $ ls -al /system/xbin/su.sh -rwsr-sr-x root shell 395004 2016-01-02 17:39 su.sh shell@x98air3g_c...

Admin

如何使用 Bash 脚本包装一个合理的文本文件,以允许每个用户查找 $USER?
setuid

如何使用 Bash 脚本包装一个合理的文本文件,以允许每个用户查找 $USER?

所以我有一个文件data.txt,里面存储着用户名和一些数据,每个用户一行。我想要一个用户可以运行的 Bash 脚本,并允许他们调用 grep -w "^$USER" data.txt 检索他们的信息片段,但无法读取全部data.txt。是否有任何简单的 setuid 技巧可以做到这一点? 不一定是 Bash,任何 C 或 Perl 解决方案都可以。 ...

Admin

已设置 root 的 Setuid 位,但实际用户 ID 不为 0
setuid

已设置 root 的 Setuid 位,但实际用户 ID 不为 0

我的程序permissiontest具有以下权限: -rwsrwxrwx 1 root root 8664 Nov 18 15:59 permissiontest 以非root用户身份运行时,它由以下代码组成: #include <stdio.h> #include <stdlib.h> int main(int argc, char** argv) { printf("EUID: %d\n", geteuid()); printf("RUID: %d\n", getuid()); return (E...

Admin