я не знаю причину, почему, но пользователь Linux полномочия не работают над файловой системой NTFS... так или иначе, если бы файл был скопирован от окон до Ubuntu, то Ubuntu должна дать им владение и полномочия пользователя также.. таким образом, где Ubuntu сохраняет полномочия пользователя файла? вещь, перемещение файла от дистрибутива Linux до другого не изменяет полномочия. таким образом, это должно быть в файле наверняка. Ubuntu переписывает каждый файл?
Linux использует NTFS с помощью программного обеспечения под названием NTFS3G (Google для получения дополнительной информации если заинтересовано). Linux и NTFS имеют полностью различное понятие пользователей, групп и полномочий файла. Это означает, что не просто перевести полномочия между системами.
Для корректировки полномочий NTFS в Linux формируются, NTFS3G имеет 2 возможности: (a) просто проигнорируйте, какой NTFS имеет и установил все файлы и все каталоги к тому же umasks; или (b) при условии, что пользователь, отображающийся, был сделан, это пытается предположить, какое значение разрешения Linux закончены из полномочий NTFS paricular файла/dir.
В случае, если (a) предоставленные Linux полномочия не хранятся нигде, и любые попытки изменить их проигнорированы. Случай (b) чтения и полномочия файла хранилищ в NTFS.
В ext
файловая система, которая используется в Linux, inodes, используется для описания хранивших файлов. inode содержит атрибуты файла, а также его местоположений блока данных (это блоки, которые содержат фактическое содержание файла). Следующее кратко, что хранится в inode:
Доступ к файлу номера Inode, измените и измененный Размер файла меток времени Местоположения Блока данных Permissions Owner Group
Таким образом для ответа на вопрос Unix хранит полномочия файла в его inode, который находится в файловой системе, например ext4
.
Если Вы хотите видеть inode информацию файла, можно использовать stat
команда:
$ stat /bin/bash
File: ‘/bin/bash’
Size: 635933 Blocks: 624 IO Block: 65536 regular file
Device: 2e208854h/773883988d Inode: 281474976901122 Links: 1
Access: (0755/-rwxr-xr-x) Uid: ( 1000/ Alaa) Gid: ( 513/ None)
Access: 2014-10-18 13:45:13.375853300 -0400
Modify: 2014-10-08 16:54:16.000000000 -0400
Change: 2014-10-18 13:45:13.438253400 -0400
Birth: 2014-10-18 13:45:13.375853300 -0400
Указать на что-то в Вашем вопросе: по умолчанию при копировании файла от дистрибутива Linux до другого полномочия не копируются. То, что происходит, - то, что блоки данных (фактическое содержание) копируются, но все другие атрибуты не. Так, например, если Вы копируете файлы со своего внутреннего на Ваш внешний жесткий диск (оба отформатированные как ext4
), владелец скопированных данных по внешнему жесткому диску становится (я думаю), пользователь, который сделал команду копии. Если бы Вы хотели сохранить полномочия (и другие атрибуты) файла, то необходимо было бы использовать дополнительный флаг, такой как -p
(или --preserve
) в cp
команда:
-p same as --preserve=mode,ownership,timestamps
--preserve[=ATTR_LIST]
preserve the specified attributes (default: mode,owner-
ship,timestamps), if possible additional attributes: context,
links, xattr, all
Где mode
полномочия. Используя опции как -p
копии по тем inode приписывают новому файлу.
Windows использует FAT32 или NTFS, которые являются совершенно другими файловыми системами, которые не понимают inodes. Вот почему, когда Вы копируете что-то с Linux (ext4
) в Windows (NTFS или FAT32), Windows применяет свои собственные атрибуты к файлу.
При монтировании файловой системы NTFS в Ubuntu она устанавливает полномочия на всем в разделе с помощью umask
команда (или опции fmask
и dmask
в fstab
). При копировании чего-то в тот смонтированный раздел те файлы берут что umask
команда влечет за собой, и полномочия не могут быть изменены, если Вы не повторно монтируете целый раздел с новыми опциями.
Для получения дополнительной информации читайте страницу справочника ntfs-3g здесь: http://linux.die.net/man/8/ntfs-3g.