создайте shell.sh, который может выполнить любой, который внутренне работает от имени пользователя root - PullRequest
0 голосов
/ 22 декабря 2018

Могу ли я написать сценарий оболочки, который любой может выполнить, который ВНУТРЕННИМ образом переключает пользователя (или повышает права пользователя root), а затем запускает эти команды, не подвергая исполняющего пользователя привилегиями root?

Некоторые сведения: у меня есть оболочкаскрипт, который получает файл из моей локальной сети (используя smbclient), а затем конвертирует и обрабатывает указанный файл в csv, готовый для импорта в мою базу данных MYSQL.Я могу запустить файл как сам, но когда я пытаюсь выполнить его через PHP exec () или shell_exec (), я получаю проблемы с разрешениями, потому что его пользователь - www-data.

Я потратил целый день на то, чтобы вносить изменения в разрешения файлов, вносить поправки в среду пути и даже читать о предоставлении прав на www-data sudo (без успеха), но вместо всего, что я могу создать файл, любой (www-data) может выполнять и безопасно выполнять команды внутри (и только команды внутри) как мой пользователь или sudo?

1 Ответ

0 голосов
/ 22 декабря 2018

Вы можете сделать это, отредактировав / etc / sudoers

sudoedit /etc/sudoers

, добавив эту строку

Cmnd_Alias YOUR_CMD_ALIAS= /path/yourShellScript

[User's name] ALL=(ALL) NOPASSWD: YOUR_CMD_ALIAS

, затем выполните свой код с помощью sudo

sudo /path/yourShellScript
...