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

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

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

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

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

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
  • удобный скрипт для сокращения количества ссылок на hardlink?
  • Одновременно перемещать файлы с длинными списками в новое место
  • Почему ACL не могут блокировать доступ пользователей к их домашнему каталогу?
  • Восстановление усеченного файла
  • Opkg, обновить двойные r / o rfs под aufs
  • Как определить тип fs моего текущего рабочего каталога?
  • Создание и форматирование exFAT-раздела из Linux
  • Как вы используете badblocks?
  • Как я могу совместно использовать внутренний диск через NFS? (Что я делаю не так?)
  • В чем преимущество локальных архивов над файлами локалей, распространенными в каталогах?
  • Как команды типа ls или stat различают тип файла?
  • Как удалить поврежденный файл NTFS?
  • Interesting Posts

    Разница между Solaris и OpenSolaris?

    Как работает обновление драйвера linux?

    Предотвращение столкновения версии разработки с системными пакетами

    Часто используемые команды «ps» (статус процесса) в Linux?

    Скопируйте файлы, созданные сегодня, без команды FIND и SFTP на другой сервер

    Использование `_` в качестве переменной среды, переданной команде

    Как связать файл журнала и сохранить его, когда последний из них изменит дату?

    В чем разница между Minicom и gammu-smsd?

    Как реализовать условное обновление пакета deb

    QEMU: подключение SSH от гостя (Androidx86) до хоста (подключение к локальному хосту / без интернета)

    Объединение файлов в каталог по заголовкам и исключение общего содержимого

    Согласованность в каталогах установки по умолчанию

    Вручную запустить задание cron / имитировать работу cron?

    Удалите последний символ перед другим символом

    Удаленный доступ к cassandra, работающему на локальном шлейфе IP / port 127.0.0.1

    Linux и Unix - лучшая ОС в мире.