Существует ли причина, почему полномочия 'владельца' существуют? Разве полномочия группы не достаточно?

Любой пользователь, включая корень, может переслать их локальную электронную почту путем помещения адреса пересылки в названный файл ~/.forward. У Вас может быть несколько адресов там, все на одной строке и разделенный запятой. Если Вы хотите и локальную доставку и передачу, помещаете root@localhost как один из адресов.

Системный администратор может определить дополнительные адреса электронной почты в файле /etc/aliases. Этот файл содержит строки как root: cwd@mailhost.example.com, /root/mailbox; эффект совпадает с наличием cwd@mailhost.example.com, /root/mailbox в ~root/.forward. Вы, возможно, должны запустить программу такой как newaliases после изменения /etc/aliases.

Обратите внимание что работы .forward и /etc/aliases зависьте от своего MTA. Большинство MTAs реализует основные опции, обеспеченные традиционным sendmail, но проверяет документацию Вашего MTA.

21
10.11.2019, 16:38
4 ответа

История

Первоначально, Unix только имел полномочия для пользователя владения, и для других пользователей: не было никаких групп. См. документацию версии 1 Unix в особенности chmod(1). Таким образом, обратная совместимость, если ничто иное, требует полномочий для пользователя владения.

Группы приехали позже. ACLs, позволяющий вовлечение больше чем одной группы в полномочиях файла, прибыл намного позже.

Выразительное питание

Наличие трех полномочий для файла позволяет полномочия с более прекрасными зернами, чем наличие всего два по очень низкой цене (намного ниже, чем ACLs). Например, файл может иметь режим rw-r-----: перезаписываемый только пользователем владения, читаемым группой.

Другой вариант использования является setuid исполняемыми файлами, которые являются только исполняемым файлом одной группой. Например, программа с режимом rwsr-x--- принадлежавший root:admin позволяет только пользователям в admin группа для запущения той программы как корня.

“Существуют полномочия, которые не может выразить эта схема”, ужасный аргумент против него. Применимый критерий, там достаточно общих выразимых случаев, которые выравнивают по ширине стоимость? В этом экземпляре стоимость минимальна, особенно учитывая другие причины user/group/other триптиха.

Простота

Наличие одной группы на пользователя имеет маленькое, но весьма значительное управление наверху. Хорошо, что чрезвычайно общий падеж частного файла не зависит от этого. Приложение, которое создает частный файл (например, программа доставки электронной почты) знает, что все, что оно должно сделать, дают файлу режим 600. Это не должно пересекать базу данных группы, ища группу, которая только содержит пользователя — и что сделать, если нет такой группы или больше чем одного?

При прибытии из другого направления предположите наблюдение файла, и Вы хотите контролировать его полномочия (т.е. проверять, что они - то, чем они должны быть). Намного легче, когда можно пойти “только доступные для пользователя, прекрасного, затем” чем тогда, когда необходимо проследить через определения группы. (Такая сложность является отравой систем, которые делают интенсивное использование расширенных функций, таких как ACLs или возможности.)

Ортогональность

Каждый процесс выполняет доступы к файловой системе как конкретного пользователя и конкретную группу (с более сложными правилами о современных нельдах, которые поддерживают дополнительные группы). Пользователь используется для большого количества вещей, включая тестирование на корень (uid 0) и (основанное на пользователе) разрешение доставки сигнала. Существует естественная симметрия между различением пользователей и группами в полномочиях процесса и различении пользователей и групп в полномочиях файловой системы.

24
27.01.2020, 19:43
  • 1
    Превосходный ответ, и я любил узнавать о 'человеке старшего возраста. Однако у меня есть некоторое резервирование о том, что Вы сказали. Более простая система, которая может на самом деле сделать почти (если не точно) целый ACLs, позволен, каждые из 'rwx' полномочий несут группу (а не наоборот). Таким образом, у Вас будут группа чтения, группа записи и выполнить группа. Если действительно необходимый в целях ОС, можно присоединить владельца к файлу. Тем путем можно также указать специальную группу 'владельца' и 'всех' группа. Кроме иерархии, я думаю, что это покрывает все, включая простоту и ортогональность. –  Yuval 13.11.2012, 21:00
  • 2
    @Yuval, Что Вы описываете, является системой ACL — то же как Linux, кроме без прямой способности присвоить полномочия пользователю. –  Gilles 'SO- stop being evil' 13.11.2012, 21:13
  • 3
    Это могло бы быть. То, что я пытался подчеркнуть, - то, что в настоящее время каждая запись файла содержит два идентификатора (группа, владелец) и битовая маска. Разве не было бы более эффективно (снова, аргумент стоимости/усиления) просто содержать четыре идентификатора? (выполните группу, считайте группу, запишите группе, владельцу), –  Yuval 23.12.2013, 11:25
  • 4
    @Yuval, Почему четыре идентификатора? Это было бы намного более строго, чем ACLs (потому что Вы должны будете базироваться для определения группы для каждого набора), и едва больше гибкий, чем текущие полномочия Unix (различение, считанное из, выполняются, чрезвычайно редко, и для записи Вы часто хотели бы объединение группы чтения и группы записи). При разрешении списка групп для каждого разрешения и списка пользователей в придачу (потому что существует не всегда правильная группа, не, все системы имеют группу на пользователя), Вы в основном получили Solaris/Linux ACLs. –  Gilles 'SO- stop being evil' 23.12.2013, 15:31
  • 5
    Вы утверждаете, что то, что я описал, является ACL, но это означает, что текущая схема разрешения Linux является инвалидами ACL, этому позволяют иметь только одну пользовательскую запись, одну запись группы и одну запись для Всех (для использования малопонятного жаргона Windows). Я предложил изменить мыс инвалидов путем реконструкции семантики. Вместо того, чтобы предписывать объекты, предпишите полномочия. Это могло бы быть то, как традиционные ACLs реализованы - я не знаю. Точка, она стала минимальной стоимостью, с точки зрения устройства хранения данных и простоты, по сравнению с текущим состоянием, все еще ортогональным, но с полным выразительным питанием ACLs. –  Yuval 06.07.2015, 11:20

Этот преднамеренный дизайн или патч? Это - полномочия владельца/группы были разработаны и созданы вместе с некоторым объяснением, или они прибывали один за другим для ответа на потребность?

user/group/other полномочия на файле являются частью исходного дизайна Unix.

Существует ли сценарий, где user/group/other схема полезна, но схема группы/владельца не будет достаточна?

Да, фактически каждый сценарий, который я мог вообразить, где управление безопасностью и управление доступом важны.

Пример: можно хотеть дать некоторые двоичные файлы/сценарии на системном доступе только выполнения к other, и сохраните доступ для чтения-записи ограниченным root.

Я не уверен, что Вы имеете в виду для модели разрешения файловой системы, которая имеет только полномочия владельца/группы. Я не знаю, как у Вас могла быть безопасная операционная система без существования other категория.

Править: Предположим, Вы имели в виду здесь group/other полномочия - все, что было бы необходимо, затем я предлагаю создать некоторый способ управлять криптографическими ключами или способом, которым только правильные пользователи могут получить доступ к своей почтовой шпульке. Существуют случаи, где закрытому ключу, возможно, понадобится строго user:user владение, но другие случаи, где имеет смысл давать его user:group владение.

частные файлы - очень легко доступный путем создания группы в расчете на пользователя, что-то, что часто делается, как находится во многих системах.

Предоставленный, что это легко сделано, но это столь же легко сделано с существованием other группа...

позволяя только владельцу (например, системная служба) писать в файл, позволяя только определенной группе читать, и запретить всего другого доступа - проблема с этим примером состоит в том, что, после того как требование - чтобы у группы были доступ для записи, сбои user/group/other с этим. Ответ и для использует ACLs и не выравнивает по ширине, по моему скромному мнению, существование полномочий владельца.

Я выделил часть Вашего оператора, который, кажется, повторяет мою точку о логической необходимости other категория в полномочиях файловой системы Unix.

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

10
27.01.2020, 19:43
  • 1
    я думаю "группа/владелец", был опечаткой, предназначенной, чтобы быть "группой/другой" А-ч –  Random832 12.11.2012, 23:31
  • 2
    , Вы, вероятно, правы! В этом случае я добавлю другой контрпример. –  Charles Boyd 12.11.2012, 23:34
  • 3
    Поскольку можно читать в The UNIX Time-Sharing System, записанный Dennis M. Ritchie и Ken Thomson в 1974, первоначально, было 7 битов для полномочий: Also given for new files is a set of seven protection bits. Six of these specify independently read, write, and execute permission for the owner of the file and for all other users. (Седьмой бит был setuid бит). –  Carlos Campderrós 13.11.2012, 17:27

Этот преднамеренный дизайн или патч? Это - полномочия владельца/группы были разработаны и созданы вместе с некоторым объяснением, или они прибывали один за другим для ответа на потребность?

Да это - преднамеренный дизайн, который присутствовал в UNIX с первых лет. Это было реализовано в системах, где память измерялась в КБ, и центральные процессоры были чрезвычайно медленными по сегодняшним стандартам. Размер и скорость таких поисков были важны. ACLs потребовал бы большего количества пространства и был бы медленнее. Функционально, everyone группа представлена другими флагами безопасности.

Существует ли сценарий, где user/group/other схема полезна, но схема группы/владельца не будет достаточна?

Полномочия, которые я обычно использую для доступа к файлу: (Я использую битовые значения для простоты и потому что это - способ, которым я обычно устанавливал их.)

  • 600 или 400: Пользователь только получает доступ (и да я действительно предоставляю доступ только для чтения пользователю).
  • 640 или 660: Пользователь и групповой доступ.
  • 644, 666 или 664: Пользователь, группа и другой доступ. Любые две схемы разрешения уровня могут только обработать два этих три случая. Третье потребовало бы ACLs.

Для каталогов и программ я обычно использую:

  • 700 или 500: Пользователь только доступ
  • 750 или 710: Группа только доступ
  • 755, 777, 775, или 751: Пользователь, группа и другой доступ. Те же комментарии применяются что касается файлов.

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

Как был отмечен выше, очень легко перечислить разрешение в списке каталогов. Если ACLs не используются, я могу контролировать права доступа только со списком каталогов. Когда я работаю с основанными на ACL системами, я нахожу очень трудным проверить или контролировать полномочия.

4
27.01.2020, 19:43

user/group/other система разрешения была разработана, прежде чем ACLs были изобретены. Это возвращается к первым годам UNIX, таким образом, Вы не можете сказать, что проблема должна быть решена с ACLs. Даже если бы понятие ACL кажется очевидным, оно включило бы значительное [в течение дня] сумма дополнительных издержек, чтобы сохранить и управлять переменной суммой данных полномочий с каждым файлом, а не установленной суммой.

Используя ACLs для всего также означает, что у Вас нет четко определенного подмножества данных полномочий, которые можно показать "сразу". Вывод для ls -l показывает стандарт (user/group/other) полномочия, имя пользователя и группы и дополнительной нотации (например. + или @ знак) на записях, которым связали ACL с ними, всеми в одной строке. Ваша система потребовала бы, чтобы это определило "лучшие две" группы в ACL для обеспечения эквивалентной функциональности.

Как дополнительная точка, файл все еще должен иметь владельца в модели UNIX, потому что UNIX, который не предусматривают ACLs, кому разрешают изменить ACL.

3
27.01.2020, 19:43

Теги

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