альтернатива sudo, позволяющая определенному пользователю выполнять chmod из программы

я хотел бы позволить определенному пользователю, который не владеет файлами в каталоге, выполнить chmod на них. В интерактивном режиме я знаю, что могу сделать это, настроив sudo с конфигурационным файлом (файлами) sudoers, и я также могу определить псевдоним как

alias chmod='sudo chmod'

in .bashrc,.профиль или. файл, так что пользователю не нужно вводить sudo chmod каждый раз больше. Этот подход ломается, хотя если chmod выполняется не из командной строки в оболочке bash, а из командной строки программа. Как я могу заставить это работать?

фон находится в настройке Syncthing, который я хочу использовать для синхронизации файлов от разных пользователей. Также,syncthing не должно работать как root но как пользователь syncuser. The syncuser пользователь не имеет прав на выполнение chmod для файлов, которыми он не владеет, но которые он синхронизировал (разрешения на чтение/запись, управляемые группами), и здесь он терпит неудачу.

эта ситуация должна произойти больше часто. Я в значительной степени убежден, что есть другое решение, чем запуск syncthing as root, но на данный момент я не вижу, как...

21
задан bdoering
31.01.2023 19:46 Количество просмотров материала 2620
Распечатать страницу

3 ответа

когда у меня была аналогичная проблема с совершенно другим фоном, я обнаружил, что chmod ограничен root. Это сделано специально. Моим решением было задание incron (inotify) [1] в папке, где хранились файлы. Incron (Запуск от имени root) будет chmod все новые файлы "пользователь:пользователь", позволяя ему быть обработаны дальше.

[1] http://inotify.aiken.cz/?section=inotify&page=about&lang=en

0
отвечен Foppe 2023-02-02 03:34

Если вы на достаточно недавнем Linux, вы можете использовать возможности системы, чтобы дать syncthing возможность chmod любой файл. Это также даст ему некоторые дополнительные возможности, такие как изменение расширенных атрибутов файлов или изменение времени доступа к любому файлу. См.man 7 capabilities полный список.

для этого используйте setcap "CAP_FOWNER=EP" syncthing. Заменить syncthing С полным путем к исполняемому файлу, если вы не в нужной папке.

0
отвечен user2313067 2023-02-02 05:51

я столкнулся с той же проблемой:

[YNQCP] 12:42:21 INFO: Puller: shortcut: chmod /some/file.name: operation not permitted

см. Также этот другой более ранний вопрос по более общей проблеме разрешения использования chmod и chown.

в моем случае, у нас есть один компьютер с несколькими пользователями, которые имеют права судо. Они совместно используют одну папку с несколькими вложенными папками это должно синхронизироваться автоматически и быть доступно всем. I chmod 777 основная папка и вложенные папки, но syncthing все еще жалуется и пытается chmod файлы по какой-то причине (почему?).

я использовал взломать решение работает syncthing как root. Это прекрасно работает, но производит:

enter image description here

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

альтернативное решение состоит в том, чтобы сделать пользователя syncthing и предоставить ему право собственности на файлы, и другие используют их через chmod 777.

проблема также сообщил еще!

0
отвечен Deleet 2023-02-02 08:08

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх