1

Говоря конкретно о Mac или, возможно, Unix, я немного запутался в том, как владелец файла / группа, когда файл перемещается из одной системы в другую.

Например, на моем Mac, если я создаю файл, я являюсь его владельцем, поэтому предположим, что владелец - «Ахмед», а группа - «Персонал».

Когда этот файл будет скопирован в другой MacBook, будет ли пользователь «Ахмед» по-прежнему владельцем, а группа - «персоналом»? хотя на втором MacBook пользователь «ахмед» или группа «персонал» могут существовать или не существовать. ?

Может кто-нибудь, пожалуйста, объясните, это довольно запутанно.

Спасибо Ахмед

3 ответа3

1

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

ahmed@macbook$ scp foo.txt remoteuser@remotemachine:/home/remoteuser/

это создаст новый файл, принадлежащий remoteuser . Чтобы скопировать файл на новый компьютер, вам нужно каким-то образом получить доступ к новому компьютеру. Это означает, что вам придется войти на новый компьютер с каким-то именем пользователя. Копирование файлов означает создание новых на новом компьютере, это данные, а не физические объекты, поэтому вы ничего не перемещаете. Поскольку вы будете создавать новые файлы, применяются обычные правила создания файлов.

0

Если вы просто копируете файлы, не спрашивая o/s о сохранении разрешений (обычно это флаг -p для 'cp'), то копируемые файлы воссоздаются в целевой области, принадлежащей пользователю, выдавшему копию. Например, если я (freudy) скопировал файл, принадлежащий Ахмеду, в /tmp, в мой домашний каталог:

cp /tmp/ahmedsFile .

Тогда я (Фрейд) был бы владельцем копии.

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

так,

sudo su -
cp -p /tmp/ahmedsFile /home/freudy

В результате /home /freudy /ahmedsFile будет принадлежать Ахмеду.

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

Как уже отмечалось, ID пользователя и идентификатор группы хранятся в цифровом виде в файлах /etc /passwd и /etc /group. Копирование файлов между системами (с сохранением прав доступа к файлам) с разными идентификаторами приведет к тому, что копии будут «принадлежать» разным пользователям.

Source Machine Passwd
testuser:x:1001:1001:Test user:/home/testuser:/bin/sh

Target Machine Passwd
rupert:x:1001:1001:Rupert the bear:/home/rupert:/bin/sh

При копировании из источника в целевой объект при сохранении разрешений все файлы, которые, очевидно, принадлежали «testuser» в источнике, похоже, принадлежат «rupert» в целевом объекте. Обычно это проблема при восстановлении архивных файлов (т.е. файлов tar), так как tar хранит идентификаторы точно так же, как это делает o/s.

Архивирование файлов в tar на исходном компьютере и извлечение на целевом объекте продемонстрирует переключение имени пользователя.

0

Владение файлами и группами Unix не кодируется с именами, а с числовыми идентификаторами в файловой системе. Они переводятся в имена с помощью /etc /passwd и /etc /group. Если вы переместите диск в другую систему, и эта система будет иметь разные имена для этих идентификаторов, владелец изменится. Если идентификаторы не используются вообще, владельцы обычно отображаются в виде числовых идентификаторов. Если позже вы добавите пользователя / группу с этим идентификатором, он / она будет владельцем файлов.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .