Назад | Перейти на главную страницу

Как работает защита пользователей / групп в Linux?

Например, как монтировать решить, есть ли у текущего пользователя права на монтирование файловой системы? Насколько я знаю, он проверяет fstab файл и группа, к которой принадлежит пользователь (я думаю, plugdev, по крайней мере, в Ubuntu).

Эти настройки жестко запрограммированы в программе или где она их берет? Например, скажем, я хотел дать пользователям из другой группы возможность монтировать файловую систему, как это сделать?

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

Согласно страница руководства, есть несколько вариантов, которые вы можете добавить fstab чтобы контролировать, кто может монтировать файловые системы: "owner"позволить монтировать его только владельцу блочного устройства",group"позволить кому-либо в группе устройства установить его, или"user" или "users", чтобы это мог делать любой обычный пользователь. По умолчанию, если ничего из этого не указано, только root может смонтировать файловую систему. Конечно, какой бы пользователь ни выполнял монтирование, он должен иметь разрешение на выполнение для mount сама программа.

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

Кроме того, я не уверен, что все эти параметры существуют во всех системах. Вы должны проверить man mount(8) в вашей собственной системе, прежде чем делать что-либо из этого.

Механизм безопасности полностью ограничен разрешениями на файлы и программы, такие как nfsd, которые запускаются от имени пользователя root (перекрывая права доступа к файлам) и поддерживают свои собственные механизмы безопасности. Разрешения для файлов блочного устройства определяют, может ли пользователь смонтировать это устройство. Каждый файл имеет три набора разрешений (чтение, запись, выполнение) для трех классов пользователей (владелец, группа, мир), а также несколько специальных битов, обсуждаемых ниже.

В unix-традиции «все является файлом» необработанные устройства и экспортируемые тома отображаются как специальные файлы с разрешениями файловой системы. Удаленное монтирование удаленных томов немного сложнее и обсуждается ниже.

Если пользователь вошел в систему с тем же uid, что и владелец файла, то owner разрешения могут быть использованы. У каждого пользователя есть группа по умолчанию, и ее можно добавить в записи группы в /etc/group файл. Когда у пользователя есть доступ к группе, используются права доступа к файлу для группы. В противном случае у пользователя есть разрешения на «мир». ACL (списки контроля доступа) могут использоваться для предоставления разрешений определенным пользователям, если они доступны.

Программы могут отменять безопасность на уровне пользователя, если setuid установленный бит в их записи inode. Это запускает программу с привилегиями владельца двоичного файла, а не с привилегиями вошедшего в систему пользователя. Примеры таких программ: nfsd, mount и sudo. У этих программ есть свои собственные механизмы безопасности; например sudo имеет /etc/sudoers который используется для управления разрешениями.

mount и nfsd работа на основе uid и gid, которые должны быть синхронизированы на обеих машинах (часто традиционно выполняется через NIS). nfsd имеет файл с именем /etc/exports который имеет экспортированные файловые системы и некоторые данные о разрешениях. mount и его драйверы nfs представляют учетные данные, которые nfsd использует для аутентификации права пользователя на монтирование тома. При монтировании локального тома используются права доступа к файлам блочного устройства.