Вот основа моей проблемы: я хотел бы добавить права sudo
для пользователя, но не использовать его как root
по соображениям безопасности.
У меня есть PHP-скрипт, необходимый для запуска команды (drush
) через exec()
. Тем не менее, PHP запускается как пользователь, и я хочу, чтобы команда выполнялась как другой пользователь. Это необходимо, поскольку в противном случае существует проблема с разрешением на запись в каталог другого пользователя.
Сама команда drush
работает, я сделал ее доступной для всех пользователей.
Текущий пользователь (A) является реселлером cPanel, который создал другую учетную запись / пользователя (B).
Я могу запустить exec('ls -la')
как пользователь A, и он будет возвращать содержимое CWD, пока мы находимся в домашнем каталоге пользователя A. Сбой того же кода с добавленным sudo
как пользователя A нет в списке sudoers.
Последняя команда загружает файлы в каталог пользователя B и выглядит так:'<pwd> | sudo -S -u <usrB> drush dl drupal <irrelevant options>'
-S
должен автоматически выполнять команду как пользователь B, используя свой пароль.
Выполнение точно такой же команды, как root, работает отлично.
Я хотел знать, есть ли способ добавить пользователя A в sudoers без доступа от имени root, и будет ли это безопасно для предотвращения потенциальных недостатков безопасности. Если это невозможно, есть ли альтернативы? Я видел, что можно исключить каталоги из использования sudoers !
, но потом я понял, что это будет довольно некорректно.
Обратите внимание, что я разработчик, поэтому, хотя я знаю некоторые основы, я не профессионал. Сервер работает под управлением CentOS 6.5, WHM/cPanel, и у меня есть root-доступ при необходимости. Идея состоит в том, что однократная настройка предотвратит настройку при создании нового пользователя.