2つの異なるファイルシステムにファイルをコピーするとどうなりますか?

2つの異なるファイルシステムにファイルをコピーするとどうなりますか?

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権限ではなく、主にマウントオプションの権限です。

おすすめ記事