Как я правильно позволяю пользователю jenkins писать в определенный каталог при пользователе корневой каталог Minecraft?

[1120160] AMD Catalyst™ 14. 4 Проприетарный Linux x86 Display Driver[1120738] отлично работает на Ubuntu 14.04 LTS, и сенсорная панель тоже отлично работает на нем.[1120161].
1
07.07.2014, 13:59
1 ответ

Традиционным способом будет использование групп. Пользователь Jenkins добавляется в группу minecraft (группа, отвечающая за коррозию пользовательского minecraft). Затем пользователь minecraft дает разрешение на запись для данной директории (например, chmod g+w ~minecraft/some_directory). Конечно, также возможно (для root) создать пользовательскую группу, которая будет просто использоваться с этим каталогом (например, новая группа minewriters или что-то в этом роде). Если minecraft-user является администратором группы minecraft, то он может добавлять пользователей в группу с помощью gpasswd -a user group ( gpasswd -a jenkins minecraft ) - иначе корень должен добавлять пользователей в группу.

Более новым, лучшим и тонким способом (хотя и немного сложным) является использование Access Control Lists (acl), где владелец файла или каталога может предоставить определенным пользователям и/или группам доступ к файлу или каталогу. Пользователь minecraft просто добавит jenkins в "список доступа" соответствующей директории и даст jenkins права на запись в эту директорию.

setfacl -m user:jenkins:rwx ~minecraft/some_directory

Это даст пользователю jenkins право создавать новые файлы (w), прослушивать содержимое с помощью ls (r) и переходить в каталог (x).

+++

Доступ к файлам и каталогам в некоторой степени зависит от доступа пользователей к вышеперечисленным каталогам. Если пользователь jenkins не может войти в домашний каталог пользователя minecraft (/home/minecraft), то он также не может получить доступ ни к каким каталогам под ним... даже если ему было дано разрешение с помощью chmod или setfacl к конкретному каталогу.

Таким образом, пользователь minecraft должен имплицитно или явно также дать пользователю jenkins , по крайней мере, выполнить (x) разрешение на его домашний каталог (и все каталоги между его домашним каталогом и каталогом jenkins должны быть разрешены к записи). Выполнить разрешение на директорию, дает право "вводить" директорию (например, командой cd). Большинство пользователей также получит разрешение на чтение (r) - что дает им право перечислять содержимое каталога командами типа ls - чтобы они могли ориентироваться.

Если разрешения домашнего каталога minecraft уже есть 'rwxr-x---' или 'rwxr-xr-x' (что часто бывает), то этого достаточно. ... если это 'rwx------', то доступ должен быть изменен, чтобы дать доступ хотя бы членам группы minecraft - или пользователю jenkins.

+++

Также хорошей идеей является добавление sticky-бита в каталог, в который jenkins должно быть разрешено записывать (т.е. chmod a+t ~minecraft/some_directory ). Это не позволяет пользователям с разрешениями на запись в каталог удалять файлы, принадлежащие пользователям другим пользователям (за исключением владельца каталога, который все еще может удалять любые файлы).

.
4
27.01.2020, 23:21

Теги

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