Как допустить, что пользователь изменяет только определенный защищенный файл sudo

Я должен допустить, что пользователь изменяет некоторые файлы sudo, которые имеют только доступ только для чтения.

Например, я хочу допустить, что пользователь 'hosteditor' изменяет '/etc/hosts' 'файл. Я добавил к sudoers, следуют за строкой:

hosteditor ALL=(root) /usr/bin/vim /etc/hosts

Теперь, пользователь hosteditor может использовать энергию только для изменения/etc/hosts файл. Но если они пользователь при изменении файла входят!/bin/sh он заставит предоставление выполнять все команды с корневым разрешением.

Что я должен, чтобы сделать, чтобы допустить, что пользователь изменяет только определенный файл без системы взлома возможности.

2
задан 23 March 2015 в 17:46
3 ответа

După ce am studiat această problemă, am găsit a treia variantă de rezolvare a acestei probleme.

Prin editarea sudoerilor putem acorda utilizatorului permisiunea de a rula sudoedit . Este o modalitate sigură de a modifica fișierele numai root, fără posibilitatea de hack. Deci, răspunsul este

hosteditor ALL=(root) sudoedit /etc/hosts
4
ответ дан 3 December 2019 в 09:04

Не используйте для этого SUDO. Вместо этого добавьте хостедитора в группу и делегируйте доступ на запись этой группе, используя списки управления доступом к файлам POSIX. Найдите на http://linux.die.net/man/1/setfacl команду для управления списками контроля доступа и http://linux.die.net/man/5 / acl для фактической записи ACL в Linux. Это, конечно, предполагает, что вы используете файловую систему и систему аутентификации, которые поддерживают списки контроля доступа к файлам POSIX. Чтобы убедиться, что разрешения остаются в силе,вы, вероятно, захотите делегировать применение ACL инструменту управления конфигурацией. Puppet может выполнять списки ACL POSIX (см. https://github.com/dobbymoodge/puppet-acl ). CFEngine может это сделать (см. https://auth.cfengine.com/archive/manuals/cf-manuals/cf2-Reference#acl ), и я уверен, что Chef тоже.

Другой вариант - предоставить команду или службу, которую хостедитор может использовать для создания файла / etc / hosts из базы данных / электронной таблицы и шаблона. Это повысит гибкость и позволит вам добавлять элементы управления в команду или службу.

Я уверен, что есть и другие хорошие способы решить эту проблему, включая отдельный экземпляр DNS (или даже отдельное представление DNS, если используется BIND9) и предоставление учетной записи хостедитора возможности добавлять и удалять записи с помощью NSUPDATE команда (см. http://linux.die.net/man/8/nsupdate )

Удачи.

2
ответ дан 3 December 2019 в 09:04

Из vi можно запускать любую команду, включая оболочку, поэтому разрешение пользователю запускать vi через sudo небезопасно. Более безопасным вариантом было бы установить разрешения, как предлагает предыдущий ответ. Если вы не можете этого сделать, настройте sudo, чтобы разрешить копирование в файл:

Cmnd_Alias ​​CP_ETC_HOSTS = / bin / cp -v ./hosts / etc / hosts

Они могут редактировать копию файла и копировать свои измененная версия на /etc/hosts.

1
ответ дан 3 December 2019 в 09:04

Теги

Похожие вопросы