При монтировании сторонней файловой системы как Ubuntu подбирает пользователей?

Если я монтирую файловую систему, которая была частью другой установки Ubuntu (давайте назовем systemB), как моя система (systemA) работает с разрешениями? В частности:

  • Получает ли пользователь A в моей системе доступ к файлам пользователя A в чужой файловой системе из systemB только потому, что они имеют одинаковые имена? Должны ли пароли совпадать? Это подразумевает, что файловая система должна где-то хранить пользователя и пароль, чтобы они могли путешествовать с файловой системой.
  • Что произойдет, если в systemB есть пользователь B, а в моей системе нет соответствующего пользователя? Кто может получить доступ к его файлам из systemA? Может ли root?
1
задан 14 April 2013 в 15:31

1 ответ

Разрешения предоставляются на основе идентификатора пользователя в / etc / password. Имена просто удобны. (Кстати, это также, как это делается в Windows).

Пример:

Локальная система «A» имела диск с такой настройкой:

Joe,            uid 500
Jane,           uid 501
Job,            uid 502

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

Теперь я перемещаю этот диск в систему «B». В системе B есть два пользователя:

Janette,        uid 500
slartibartfast, uid 501
Mark,           uid 599

Файлы, которые принадлежали пользователю 500 (Джо) в системе «A», теперь будут доступны для пользователя 500 по системе "B". Владелец будет указан как «Джанетт»

. Это основная причина, по которой люди сохраняют свои идентификаторы UID одинаковыми во всех системах, в которые они входят. Особенно когда NFS участвует.


(Будет завершено: владелец Fles от Jane теперь будет отображаться как принадлежащий slartibartfast, а файлы, принадлежащие Job, будут просто перечислены с идентификатором 502, поскольку нет подходящее имя.)

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


[Отредактировано немного, чтобы ответить на вопросы напрямую]

Если я смонтирую файловую систему, которая была частью другой установки Ubuntu (systemB, назовем это), как моя система (systemA) вырабатывает разрешения?

Система вырабатывает разрешение, проверяя, есть ли у активного пользователя права на файл, или если активный пользователь находится в группе, которая имеет права на этот файл. Везде, где я писал активный пользователь, нужно понимать, что пользователь - это просто число. (Удостоверение личности). И это игнорирует дополнительные ограничения, установленные SE-Linux.

В частности: получает ли userA в моей системе доступ к файлам userA во внешней файловой системе из systemB только потому, что они имеют одинаковые имена?

Нет. Только если у них одинаковые идентификаторы.

Должны ли пароли совпадать?

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

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

Не проверяется пароль при доступе к файлам, поэтому это не имеет значения.

Что произойдет, если в systemB есть пользователь B, а в моей системе нет подходящего пользователя?

Если нет пользователя с таким же идентификатором, тогда невозможно перевести UID к имени. Таким образом, необработанное числовое значение показывается.

Кто может получить доступ к его файлам из systemA? Может ли root?

Каждый пользователь с тем же идентификатором или с идентификатором 0.

0
ответ дан 14 April 2013 в 15:31

Другие вопросы по тегам:

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