Это не очень хорошая идея, если у вас весь сервер спроектирован для работы с правами root, где-то есть ошибка проектирования.
Здесь происходит то, что пользователь root создает файл /tmp/sock.sock
со своимсобственные привилегии, и этот файл доступен только пользователю, который его создал.
Проблема в том, что даже если метод bind
в Linux (но не в Mac OS!) был исправлен, чтобы не следовать символическим ссылкамвы все еще создаете проблему безопасности. Предположим, что файла там нет, а сервер не работает. Обычный пользователь может затем создать символическую ссылку от /tmp/sock.sock
до /etc/passwd
, и когда сервер попытается запустить, он попытается выполнить привязку, установить разрешения и затем потерпит неудачу из-за символической ссылки, но разрешения будут установлены. Таким образом, ваш файл passwd будет установлен как доступный для записи.
Даже если проблем с разрешениями не было, предположим, что кто-то отправляет действительно большой объем данных и заполняет диск, что приводит к сбою сервера. Если вы запускаете сервер с обычным пользователем, вы можете установить максимальную квоту, но вы не хотите устанавливать ее для root.
Мое предложение таково: создайте нового пользователя, единственной задачей которого является запуск сервераи клиент и имеет минимальный набор необходимых разрешений.