Вы не должны предоставлять им доступ к sudo, если вам нужно иметь ответственность и вы не можете легко привлечь их к ответственности. Может быть, если вы заблокируете его специально для "перезагрузки sudo service apache2" и позволите им выполнить эту команду с этими аргументами.
Для редактирования конфигурации используйте разрешения acl / filesystem, чтобы дать им доступ для записи в конкретные файлы конфигурации, которые они должны изменить. Предоставление им доступа sudo
к редактору означает, что они могут редактировать / изменять любой файл в системе, включая сам sudo
, или изменять конфигурацию sudo
, чтобы он ничего не регистрировал.
Если они могут установить программное обеспечение, они могут установить вредоносное программное обеспечение. Не позволяйте им делать это, попросите кого-нибудь, кого вы можете привлечь к ответственности за благополучие системы, сделать это.
Если они могут исправлять библиотеки, они могут исправлять основные библиотеки и внедрять вредоносный код. Не позволяйте им делать это, попросите кого-нибудь, кого вы можете привлечь к ответственности за благополучие системы, сделать это (если это необходимо сделать).
Само sudo
может быть настроено на запись каждой команды в системный журнал, и вы можете настроить системный журнал для пересылки записей журнала на защищенный сервер по сети, чтобы сохранить подотчетность в журналах.
Я, вероятно, не дал бы ему доступ sudo
, но настроил бы систему так, чтобы он был в группе, которая может записывать файлы конфигурации apache и webroot.
Ему понадобится способ сообщить apache для перезагрузки конфигурации, так что вы можете посмотреть ssh-ключ, который не может быть сброшен в оболочку, но вызывает service apache2 restart
когда кто-то входит в нее. Альтернативой может быть использование программы setuid, которая не принимает никаких входных данных и перезапускает apache. Или он может просто пинговать вас по электронной почте или через мгновенное сообщение, когда ему это нужно перезагрузить.
Для установки пакетов я бы просто попросил его выслать вам список, а затем, посмотрев по списку, установить их. С точки зрения безопасности, кто-то из ответственных (вы) должен загружать / компилировать / исправлять любые библиотеки, которые должны быть исправлены.
sudo
уже должен регистрировать каждую команду в syslog (по крайней мере, по умолчанию в Ubuntu, если я правильно помню, она может отличаться в вашей настройке), поэтому вам, вероятно, следует убедиться, что она выполняется независимо, и для дополнительной ответственности настройте syslog на войти на удаленный сервер системного журнала, который может быть защищен.
Если вы обычно доверяете подрядчику, то, вероятно, вам не о чем беспокоиться. Но если вы должны быть в состоянии привлечь его к ответственности, тогда необходимо взглянуть на это с точки зрения «что худшего он мог сделать с привилегией X?"точка зрения.