Разрешения диска Linux для диска, используемого двумя системами

970
Fred Hamilton

У меня есть большой массив RAID5 на основе mdadm, который я использую с системой Ubuntu 8.04. Я устанавливаю новую систему 9.10 (альфа 6) на том же оборудовании. mdadm делает большую работу по автоматическому поиску и повторной сборке массива, но когда я собираюсь его смонтировать, ему нужен мой пароль («Требуется аутентификация для монтирования устройства»). Я использую одно и то же имя пользователя для обеих систем, но я предполагаю, что linux достаточно умен, чтобы понять, что пользователь "joeblow" из одной системы не обязательно совпадает с человеком "joeblow" в другой системе.

Так что же является правильным способом (вместо того, чтобы просто сходить с ума от команд chmod), чтобы диск был смонтирован при загрузке с теми же правами на устройство / файл и т. Д., Которые у меня были раньше? Я просто хочу, чтобы он вел себя так же, как в моей старой системе ...

2

2 ответа на вопрос

2
nagul

Владение файлами основывается на uid и gid пользователя, а не на имени. Проверьте uid и gid для файлов в массиве, и если они отличаются, вы можете изменить владельца на нового пользователя с помощью этой команды:

chown -R joeblow:joeblow /mount_point 

Тем не менее, если вы собираетесь использовать обе системы, я предлагаю вам синхронизировать UID и GID для joeblow пользователя на обеих системах, использующих usermodи groupmodкоманды.

Звучит хорошо, но я читал немного о usermod и groupmod, и одна вещь не ясна. Если я изменю соответствующие uids / gids в новой системе B, чтобы они соответствовали uids / gids старой системы A, нарушит ли она все существующие ассоциации в системе B? Fred Hamilton 14 лет назад 0
@Fred Да, тебе придется сделать аналогичный прием в системе B. Однако это не должно быть слишком сложно. `find` поддерживает опции -uid и -user, поэтому вы можете запустить команду, подобную этой, чтобы идентифицировать и изменить все такие файлы:` find / -uid old_uid -exec chown -R joeblow: joeblow {} \; `В целях безопасности, Я бы просто запустил команду, чтобы вывести список таких файлов, и осмотреть список, прежде чем фактически изменить их. nagul 14 лет назад 1
Просто для пояснения, в приведенном выше комментарии `\;` является частью команды find. nagul 14 лет назад 1
0
Johan

Если вы сравниваете файлы, такие как / etc / passwd и / etc / group, в новой и старой системе, различаются ли uid и gid?

Если вы убедитесь, что у joeblow всегда uid 500 и gid 100 (или аналогичный), возможно, это не будет проблемой?