Назад | Перейти на главную страницу

конфигурация sudoers, позволяющая редактировать файлы в определенном каталоге (и дочерних)

Как я могу предоставить sudo доступ для пользователя, но ограничить их только редактированием файлов и только файлами, которые находятся в назначенном каталоге. Например, я бы хотел, чтобы пользователь abc чтобы иметь возможность редактировать все файлы в /var/www/vhosts/hostabc/ и его дети.

Ты можешь использовать sudoedit:

%editors_group ALL=(root) sudoedit /var/www/vhosts/hostabc/*

И добавляем всех редакторов в editors_group

Обратите внимание, что подстановочный знак позволит этому работать с такими путями, как /var/www/vhosts/hostabc/../../../../etc/sudoers.

Похоже, прямого пути нет. An старый пост в списке рассылки подразумевает, что такая функция обсуждалась несколько лет назад, но взгляните на текущий журнал изменений показывает, что пессимизм публикации правильный, и из этого ничего не вышло.

Можете ли вы изменить групповое владение этими файлами? Если вы можете, вы можете использовать chmod g+S /var/www/vhosts/hostabc, а затем новые файлы также получат эту группу. В качестве альтернативы, что, возможно, лучше, хотя и менее прозрачно, вы можете использовать ACL. Эти подходы позволят вам избежать использования sudo вообще.

Или, чтобы расширить предложение mattdm, не забывайте, что sudo можно использовать для предоставления доступа другим пользователям, кроме root. Вы можете создать специального пользователя только для этой цели, chown -R customuser:customgroup /var/www/vhosts/hostabc, затем предоставьте пользователю customuser привилегии sudo userabc. Пользователь не используется ни для чего другого, так что это достаточно безопасно.

Вам также не нужно беспокоиться об использовании chmod + S для обеспечения наследования, поскольку изменения будут выполняться от имени пользователя customuser.