Как Unix реализует разрешения на файлы?

У меня есть текстовый файл с именем foo.txt с правами root в одном дистрибутиве Linux. Я скопировал его в другой дистрибутив Linux на другом компьютере.

Разрешено ли разрешение файла для foo.txt ?

Если да, то как Linux / Linux Linux знает и дублирует права доступа к файлу?

Добавляет ли дополнительный байт (который указывает разрешения) в файл?

  • Получить устройство с большим номером 0 (bbffs subvolume)
  • Цель / dev / zero?
  • Сбой «сломанного» жесткого диска
  • Как linux сохраняет папку сопоставления -> имя_файла -> inode?
  • Настройка файловой системы ext4 для раздела хранения
  • как найти файл img и установить его
  • Ошибка «mount: wrong fs type ..» при установке USB
  • btrfs ERROR: ошибка во время балансировки - на устройстве нет места
  • 3 Solutions collect form web for “Как Unix реализует разрешения на файлы?”

    Чтобы добавить ответ Эрика (не иметь комментариев для комментариев), разрешения не хранятся в файле, а файл inode (указатель файловой системы к физическому местоположению файла на диске) в качестве метаданных вместе с владельцем и метками времени. Это означает, что копирование файла в файловую систему, отличную от POSIX, например NTFS или FAT, приведет к сбросу данных разрешения и владельца.

    Владелец и группа файлов – это всего лишь пара чисел, идентификатор пользователя (UID) и идентификатор группы (GID) соответственно. Корневой UID равен 0, поэтому файл будет отображаться как принадлежащий root (почти) каждой совместимой с UNIX системе. С другой стороны, владелец без полномочий root не будет сохранен значимым образом.

    Короче говоря, корневая собственность будет сохранена, если tarball'd или скопирован через usbstick extX или тому подобное. Неприемлемая собственность ненадежна.

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

    Команда, выполняющая копирование, отвечает за управление разрешениями на вновь созданный файл.

    Для владельца / группы это зависит от того, кто делает копию и как.

    • обычный пользователь: всегда будет владельцем копий всеми командами
    • пользователь root тоже с помощью cp (кроме опции --preserve )
    • «Сохранить» будет по умолчанию для root с tar
    Linux и Unix - лучшая ОС в мире.