Почему существуют разрешения по умолчанию для / media / username root: root?

18

Я изменил разрешения на /media/username от root:root до username:root [1]. Я понимаю, что ориентированное на пользователя местоположение разрешает пользовательские разрешения [2].

Но почему в первую очередь были разрешения для этой папки root:root ?

[1] Чтобы я мог монтировать зашифрованные папки там с помощью Gnome EncFS Manager. Например, теперь я могу установить зашифрованную папку как /media/username/personal-documents .

[2] Из Почему Ubuntu переместил точки монтирования по умолчанию? :

  

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

    
задан d3vid 17.12.2013 в 16:26
источник

3 ответа

16

В моем случае так выглядят вещи в /media :

$ ls -l /media | grep $USER
drwxr-x---+  3 root root 4096 Jan 22 15:59 oli

В основном это означает, что только пользователь root может взаимодействовать с каталогом. Это отлично подходит для безопасности (безусловно, останавливает других пользователей, не говоря уже о краже / удалении / изменении данных), но это не то, где заканчивается история.

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

$ getfacl /media/$USER
getfacl: Removing leading '/' from absolute path names
# file: media/oli
# owner: root
# group: root
user::rwx
user:oli:r-x
group::---
mask::r-x
other::---

Это через ACL, где моему пользователю разрешено просматривать содержимое /media/oli . Мне все еще не разрешено редактировать содержимое.

Вещь, выполняющая монтаж на современных настольных компьютерах (как Gnome, так и KDE), составляет udisks2 :

root      2882  0.3  0.0 195956  4048 ?        Sl   Jan16  30:35 /usr/lib/udisks/udisks-daemon
root      2887  0.0  0.0  47844   784 ?        S    Jan16   0:00 udisks-daemon: not polling any devices
root      3386  0.0  0.0 429148  6980 ?        Sl   Jan16   7:35 /usr/lib/udisks2/udisksd --no-debug

Как вы можете видеть, он работает там как root, поэтому, когда что-то обращается к нему через DBUS, он может создавать точки монтирования внутри / home / $ USER и отдавать их пользователю, чтобы они могли редактировать содержимое.

Ничто из этого не меняет то, что я сказал первоначально. Я просто объясняю, как это работает на практике. Это то, что что-то на вашем рабочем столе разрешено писать где-то, что разрешено только root, и как ваш пользователь может читать его, несмотря на другое ограничение прав собственности.

Все это превращает его в среду, защищенную для данных пользователя, но которая также затрудняет пользователю использование meddle с помощью материала монтирования. Они не могут, например, удалить точку монтирования или переименовать ее, что может вызвать проблемы, если у них нет доступа root.

Изменить . Мне только что пришло в голову, что он также дает администратору хорошее место для монтирования вещей для одного пользователя. Разрешения по умолчанию помогают сохранить это подключение частным и защитить это монтирование от вмешательства пользователя. Похоже, что это довольно нормальный по умолчанию для того, что было сделано без каталога /media/$user/ , потребуются права root.

    
ответ дан Oli 22.01.2014 в 16:26
источник
2

Я согласен с другим ответом и комментариями в дополнение к этому

root:root , чтобы избежать в основном двух ситуаций.
1. Риск безопасности: сценарий хакера, который выдает / dev / zero / media / user /, который заполняет корневой раздел и, следовательно, не может войти в систему или плохая производительность.
2. Конфликт с udisk2: предположим раздел с меткой backup . Udisks монтирует его @ / media / user / backup. пользователь вручную создал вышеуказанный каталог, который заставит udisk изменить точку монтирования на что-то вроде / media / user / backup1 и, таким образом, ввести в заблуждение сценарии резервного копирования и т. д.

    
ответ дан Prinz 23.01.2014 в 05:11
2

В общем, Linux (и * nix) менталитет основан на принципе Least amount of necessary privileges.

Обычно современные Desktop Environments монтируют ваши устройства в /media/username/devicepartitionname . Это означает, что для использования устройства вам нужно иметь только папку devicepartitionname и все, что находится под ней. Это означает, что ваша папка /media/username все еще может принадлежать root , и это сделает ее более безопасной.

Также добавление чего-либо на /media/username - плохая идея, так как это сделает ваш DE попыткой монтировать раздел в папку на другом смонтированном разделе, что может привести к большому количеству =FUN !! (также вероятная потеря данных).

    
ответ дан Wolfer 16.01.2014 в 18:21