Linuxカーネルのファイルシステムについて学んだ後、2つの異なるファイルシステム間でファイルがコピーされたときに何が起こるかについて質問があります。
LinuxでNTFSをマウントできるため、mount -t ntfs DEV_BLK MOUNT_POINT
カーネルはディスク上のデータがどのように構成されているかを知る必要があります。したがって、NTFSからext4にファイルをコピーしようとすると、カーネルはデータ、属性、権限などを処理する必要があります。
ただし、NTFSとext4は異なる権限制御を使用します。 Linuxカーネルは、dentry、inodeなどを作成するときにNTFSからコピーされたファイルにデフォルトで777権限を付与しますか?
ベストアンサー1
Linuxカーネルソースコード4.19から抜粋したものです。
/* We do not support NTFS ACLs yet. */
ほとんどの権限は、次のコメントコードに基づいて設定されます。
/* Everyone gets all permissions. */
vi->i_mode |= S_IRWXUGO;
/* If read-only, no one gets write permissions. */
if (IS_RDONLY(vi))
vi->i_mode &= ~S_IWUGO;
if (m->flags & MFT_RECORD_IS_DIRECTORY) {
vi->i_mode |= S_IFDIR;
/*
* Apply the directory permissions mask set in the mount
* options.
*/
vi->i_mode &= ~vol->dmask;
/* Things break without this kludge! */
if (vi->i_nlink > 1)
set_nlink(vi, 1);
} else {
vi->i_mode |= S_IFREG;
/* Apply the file permissions mask set in the mount options. */
vi->i_mode &= ~vol->fmask;
}
つまり、ファイルシステムから継承されたACL権限ではなく、主にマウントオプションの権限です。