3

Есть ли способ запустить команду от имени пользователя root (возможно, используя sudo ), но файлы, созданные этой командой, принадлежат кому-то другому?

Некоторый контекст: у меня есть веб-сервер, который я запускаю от имени пользователя root, чтобы иметь доступ к порту 80. Этот веб-сервер создает файлы, которые затем принадлежат пользователю root. Но когда я делаю make (используя Maven на самом деле) как обычный пользователь, я получаю кучу ошибок, потому что он не может удалить некоторые файлы, принадлежащие root. Поэтому было бы неплохо, если бы я мог запустить веб-сервер от имени пользователя root, но созданные мной файлы принадлежали мне.

Я сделал скрипт, чтобы "очистить" файлы, которые мешают работе с make, поэтому меня не очень интересуют решения этой проблемы ... Мне просто любопытно, есть ли способ запустить от имени пользователя root, но создавать файлы как кто-то другой.

2 ответа2

1

Есть несколько способов добиться этого ...

  1. Файлы имеют флаги для других (o, последний набор прав слева направо), чтобы иметь возможность писать в них. Таким образом, вы можете изменять свои файлы, не будучи root.

  2. Ваш пользователь входит в группу, общую с пользователем root. Например, если у вас есть права доступа группы (g, средний набор разрешений) для записи файлов, вы можете изменять их, не будучи пользователем root.

РЕДАКТИРОВАТЬ: Кроме того, как сказал Дэниел , для того, чтобы иметь возможность удалять файлы, вам также необходимо иметь разрешения для родительской папки.

1

Именно из-за дополнительных привилегий, которые часто требуются для начала прослушивания порта http, большинство веб-серверов имеют встроенную функцию, позволяющую предположить, что однажды началось другое удостоверение. Например, в Apache файл httpd.conf содержит записи user и group, управляющие этой функцией.

Обычно веб-серверы получают своих собственных выделенных пользователей и группы. Просмотрите вашу конфигурацию и проверьте, можете ли вы настроить это.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .