6

Как я могу предоставить разрешение для файлов конкретному пользователю или определенной группе?

У нас есть три группы: "g12" ("u1" и "u2)," g34 "и" g56 ".

  • g12 - должен только читать файл.

  • g34 - должен написать и прочитать.

  • g56 - должен иметь все разрешения (rwx).

И другие не должны получить доступ к файлу вообще.

4 ответа4

11

Вам нужно использовать списки контроля доступа. Они являются более продвинутым способом обработки разрешений, чем пользовательский / групповой / другой способ по умолчанию в Linux. Смотрите эту страницу, например: Ubuntu Access Control Lists

Пример с этой страницы:

setfacl -m u:mike:rwx file or directory

Я сам использовал эти команды только в лаборатории на курсе по администрированию сервера, но, насколько я мог видеть, это довольно простой способ сделать это.

3

Как корень:

chown u1:u1 f1.txt
chmod 400 f1.txt

Это гарантирует, что файл принадлежит пользователю u1 (chown) и группе u1 (при условии, что группа пользователя u1 по умолчанию - u1) и что только этот пользователь может читать файл (chmod). Если вы хотите, чтобы пользователь мог писать в файл, измените 400 на 600.

Вы можете добавить второго пользователя в группу по умолчанию первого пользователя с помощью:

useradd -G u1 u2

Приведенная выше команда предполагает, что группа по умолчанию для пользователя u1 также называется u1, а второй пользователь - u2.

Теперь мы изменим разрешения для f1.txt, чтобы разрешить членам группы u1 доступ на чтение (второе "4" в 400 - это разрешения группы):

chmod 440 f1.txt

Каждая из трех цифр, следующих за командой chmod, представляет разрешения для владельца (первая цифра), группы (вторая цифра) и всех других пользователей (третья цифра) в системе. Значение 1 - разрешение на выполнение, 2 - разрешение на запись и 4 - разрешение на чтение. Вы добавляете эти числа вместе, чтобы "смешать" эти три типа разрешений. Например, 4 (чтение) + 1 (выполнение) = 5, чтобы позволить владельцу и группе прочитать и выполнить файл, но ограничить доступ ко всем остальным, что вы использовали бы 550, чтобы позволить владельцу читать и записывать в файл и группа и все другие пользователи, чтобы прочитать файл, вы бы использовали 644.

Существуют другие форматы для установки разрешений, введите:

man chmod

в командной строке для более подробной информации.

1

короткий ответ, вы не можете

вы не устанавливаете разрешения для групп или пользователей, вы устанавливаете разрешения для файлов. У файла есть владелец и группа, и вы можете установить разрешения на "чтение", "запись" и "выполнение" отдельно для одного пользователя, одной группы и всех остальных.

Можете ли вы привести пример того, что вы хотите сделать?

-1

Я думаю, что вы хотите сделать, это как вы организовываете свои группы.

Я относительно новичок в Linux, но, насколько я понимаю, вы можете создать несколько новых групп. Скажите что-то вроде AccessLow и AccessAll. Допустим, вы хотите, чтобы Джим получил доступ ко всем, а затем просто поместите Джима в эту группу. Затем вы указываете конкретный каталог, к которому хотите, чтобы у них был доступ к группе владельцев AccessAll. Затем скажите, что вы хотите, чтобы они могли делать с chmod (если вы хотите, чтобы они обращались к нему с помощью execute, просто дайте им Chmod 750. Это дает владельцу полный контроль, в то время как группа AccessAll имеет только возможность чтения и выполнения, но не может выполнять запись в папку. Если вы хотите, чтобы папка имела ограниченный доступ, то используйте принадлежность группы к AccessLow и сделайте соответствующий режим для того, что вы хотите, чтобы они могли делать. Я думаю, что это будет работать, зная, что я знаю. Если появляется новый человек, которому вы хотите предоставить доступ, вы можете просто рассмотреть "Другое" и указать конкретный chmod, чтобы он мог просто читать, но если вы хотите, чтобы он делал немного больше, чем то, что "Другое" указывает, но все еще хочет чтобы некоторые вещи все еще были скрыты, тогда я предлагаю поместить их в группу, которая обладает способностью делать немного больше, но не такой низкий доступ, как "Другой". Это требует небольшой настройки, но, кажется, в состоянии сделать то, что вы ищете. Это все, что я знаю из того, что я читал здесь, в поисках способа изменить собственника на что-то очень похожее. Используя сервер Ubuntu, я ограничился изменением этих параметров, но обнаружил в процессе и в итоге решил написать о том, что, по моему мнению, может работать.

РЕДАКТИРОВАТЬ: Размышляя об этом, я задаюсь вопросом, есть ли способ назначить людей более чем в одну группу, потому что у меня появилась идея сделать другой тип обмена в Samba. Я могу исследовать это позже и получить свой собственный ответ. Но в Windows вы можете это сделать, поэтому подумайте, что это может быть как-то возможно здесь. Было бы неплохо сказать, что люди, которые в настоящее время имеют доступ к моему домену, могут иметь большинство разрешений, доступных для них, в то время как кто-то, прошедший проверку подлинности, но не в домене, обладает только способностями к чтению и может выполняться вообще без записи и т.д. Я думаю, что это можно сделать, сделав их конкретными, но обобщенными именами входа. Как и для доступа к моему каталогу музыки, я могу просто войти в систему под названием "музыка" (с простым паролем), которая уже настроена в Samba, чтобы иметь возможность доступа к определенному каталогу Музыка с полной способностью чтения и больше ничего не видеть.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .