У меня есть виртуальный частный сервер, на котором я хочу разместить несколько веб-сайтов и предоставить доступ другому веб-разработчику. Я не забочусь о том, чтобы налагать на него слишком много ограничений, хотя я был бы не против изолировать сайт, который он будет развивать, от других сайтов на сервере, который я буду разрабатывать.
В основном я хочу убедиться, что сохраняю контроль над сервером в будущем. Я хочу зарезервировать возможность создавать / повышать / понижать в должности и другие административные функции, не имеющие отношения к веб-программному обеспечению. Если я сделаю его администратором, он сможет выполнить sudo su - например, стать пользователем root и удалить с меня права root.
Он нужен мне, чтобы не уметь:
Я бы хотел, чтобы он по-прежнему мог:
/etc/
Я никогда не настраивал хороший файл sudoers, поэтому простые примеры настроек были бы очень полезны, даже если они лишь немного похожи на настройки, на которые я надеюсь выше.
Редактировать: Я еще не доработал разрешения, поэтому стандартные, полезные настройки sudo, безусловно, являются вариантом, приведенные выше списки - это больше, чем я надеюсь, я могу сделать, я не знаю, что эта настройка жестяная банка быть сделано. Я уверен, что люди это решили тип проблемы раньше, тем не менее, и я хотел бы пойти с чем-то несколько протестированным, а не с тем, что я сам выращивал.
Если вы не застряли на Debian / Ubuntu (и у вас есть возможность изменить / выбрать свою ОС), FreeBSD Jails были созданы с учетом этого и находятся в производстве в течение многих лет:
В зависимости от количества приложений, которые вы хотите разрешить ему выполнять, можно разрешить ему выполнять команды, даже не используя sudo. Это может помешать вам предоставить ему root-доступ, в то же время позволяя ему выполнять свои задачи: для этого добавьте в файл sudoers строку, подобную этой, для каждого приложения, которое ему должно быть разрешено:
username ALL=NOPASSWD: /path/to/application
Изменить: решение виртуальной машины наверняка будет самым безопасным вариантом
К сожалению, учитывая предоставленные вами привилегии, на самом деле нет хорошего способа создать надежную конфигурацию, чтобы он не пытался заблокировать доступ от вас. Возможность редактировать произвольные файлы в / etc, возможность установки программного обеспечения почти наверняка означает, что этот человек сможет обойти все, что вы настроили с помощью sudo.
Настоящий вопрос возвращается к физическому доступу. Если у вас есть физический доступ к системе, он действительно ничего не может сделать, чего нельзя было бы легко обойти, просто перезагружая систему с livecd и исправляя ошибки.
Я считаю, что в наши дни большинство людей решают подобные проблемы, настраивая виртуальную машину и предоставляя доступ к ней. Если они делают что-то не так или делают ошибку конфигурации, то для исправления этого обычно требуется перезагрузка.