Предоставить общий доступ к каталогу одному (не всем) другому пользователю без полномочий root в Linux (без прав root)

284
0range

Можно ли поделиться каталогом с одним другим пользователем без полномочий root, но только с этим без привилегий root?

  • Система Ubuntu с ядром 4.4.0.

  • У меня нет привилегий root.

  • Система имеет большое количество пользователей; администраторы вряд ли согласятся создать новую группу только для меня.

  • Система не позволяет мне использовать setfacl(вероятно, пакет acl не установлен)

Подход 1: Использование группы пользователей (не работает)

Если бы у меня были привилегии root, я мог бы добавить другого пользователя в свою группу пользователей и предоставить этой группе права на каталог (предположим, что пользователи user_a(я) и user_b(другой) и каталог ~/shared_directory):

sudo usermod -a -G user_a user_b 

(это добавит user_bгруппу user_a, user_aгруппу пользователей)

chgrp user_a ~/shared_directory 

(это устанавливает группу владельцев ~/shared_directoryв user_a; почти во всех случаях это уже должна быть группа владельцев, и команда не должна быть необходимой)

chmod g=rwx ~/shared_directory 

(это дает группе все права на чтение, запись и выполнение (доступ) к каталогу).

Однако у меня нет доступа с правами root, и мне не разрешено выполнять usermod или записывать в соответствующий файл /etc/group(что было бы плохо!).

Подход 2: Использование списков контроля доступа к файлам (ACL) (не работает)

Кроме того, я не могу ни выполнить, setfaclни найти этот исполняемый файл; вероятно, потому что пакет acl не установлен. Следовательно, я не могу попытаться использовать подход, предложенный в этом ответе :

setfacl -m u:user_b:rwx ~/shared_directory 

(Это даст user_bдоступ к каталогу по желанию, если файловая система и ядро ​​поддерживают ACL.)

Я все еще чувствую, что подход 1 (группа пользователей и права доступа) должен быть ключом к решению этой проблемы.

Разве мне нельзя позволять контролировать, кто входит в мою группу пользователей? Или я неправильно понимаю назначение групп пользователей с одинаковыми именами?

Некоторые ответы на этот вопрос в Unix & Linux обсуждали роль, права и назначение групп пользователей.

Или есть другой способ добиться этого, который не требует привилегий root?

3
Я подозреваю, что вам нужно работать с вашими сисадминами. Zoredache 5 лет назад 1
Если эта функция реализована в опциях ядра (Ubuntu? Она есть), она не отключена («noacl» не используется для / home или аналогично), а также точка монтирования разрешает выполнение («noexec» не используется для / home) тогда отсутствие установленной команды не помешает запустить локальную версию команды. Вы можете просто загрузить пакеты (включая зависимости), распаковать их где-нибудь в вашем пользовательском каталоге и с помощью нескольких хитростей (LD_LIBRARY_PATH ...) запустить команду оттуда. Но если это считается запрещенным, системные администраторы могут просто добавить две опции выше, чтобы предотвратить это в любом случае. A.B 5 лет назад 1
конечно setfacl не требует привилегий root. наличие вашей учетной записи и другой учетной записи с общей * выделенной * группой требует привилегии root для ее добавления. В противном случае вы можете выбрать общую родовую группу, если она существует. например: оба пользователя в группе cdrom? это общая группа. Надеюсь, что нет никакого взаимодействия с apparmor / selinux A.B 5 лет назад 1
@AB Это классная идея. Я могу загрузить и выполнить `getfacl` и` setfacl`, даже без каких-либо проблем с библиотечными зависимостями. Однако вы правы, что это не будет работать, если оно отключено в ядре; Я получаю "Операция не поддерживается". Думаю, это означает, что ядро ​​не позволяет этого. 0range 5 лет назад 0

0 ответов на вопрос