ファイルのコピー後に実行可能

ファイルのコピー後に実行可能

それで、私は新しいSamsung T7ポータブルSSDを購入しました。もともとはWindows、MacOS、Linuxで使用するためにexFATでフォーマットしようとしましたが、確認してみるとディスクが基本ファイルシステムに来ましたHPFS/NTFS/exFAT

テストするために、いくつかのASCIIテキストファイルをディスクにコピーし、コピー方法とファイル拡張子に関係なく、すべて実行可能フラグを設定しました。理由がわからない。なぜこれが起こり、どのように避けることができますか?ファイルをそのままコピーしたいです。

変更された権限を示す完全な出力です。

user@ubuntu:~$ echo "test text file" > test.txt
user@ubuntu:~$ echo "test test test" > test
user@ubuntu:~$ echo "print('test')" > test.py
user@ubuntu:~$
user@ubuntu:~$ ls -l test*
-rw-rw-r-- 1 user user 15 July  18 01:20 test
-rw-rw-r-- 1 user user 14 July  18 01:20 test.py
-rw-rw-r-- 1 user user 15 July  18 01:20 test.txt
user@ubuntu:~$
user@ubuntu:~$ mkdir /media/user/T7/testdir
user@ubuntu:~$ cp test /media/user/T7/testdir/
user@ubuntu:~$ rsync test.txt /media/user/T7/testdir/
user@ubuntu:~$ rsync -a test.py /media/user/T7/testdir/
user@ubuntu:~$
user@ubuntu:~$ ls -l /media/user/T7/testdir
total 384
-rwxr-xr-x 1 user user 15 July  18 01:23 test
-rwxr-xr-x 1 user user 14 July  18 01:20 test.py
-rwxr-xr-x 1 user user 15 July  18 01:23 test.txt

cpここでは、rsyncと を試みたがrsync -a毎回実行ファイルで終わるのがわかります。なぜ?

編集:
デフォルトでは、NTFSを使用するWD HDDで同じことを試しました。ここでファイルは777権限(rwxrwxrwx)を取得します。ディスク自体に関連していますか?明らかに私の知識はここに欠けています。

ベストアンサー1

HPFS/NTFS/exFAT一種のパーティションです。それ主張するパーティションには指定されたファイルシステムタイプの1つが含まれていますが、これは必ずしも完全な事実ではありません。

lsblk -o +FSTYPEパーティションがマウントされたら、/proc/mounts を試してみてください。実際ファイルシステムタイプ。

とにかく、HPFSはほとんど不可能であるため、SSDはすでにNTFSまたはexFATファイルシステムを使用してフォーマットされている可能性があります。

Linuxの使用に関して、両方のファイルシステムタイプは特定の属性を欠いています。Unixスタイルの所有権/グループ/権限情報をサポートしていません。

NTFSには、Unixスタイルの所有権と権限を実装するために使用できるACLがあり、必要に応じてLinux ACLもサポートできます。しかし、その前にLinux NTFSドライバが変換テーブルが必要ですUnixスタイルのユーザーとグループID(デフォルトでは単純な数値、UIDとGID)と、WindowsスタイルのセキュリティID(SID:ダッシュで区切られた長い数値グループ)の間。この機能が提供されていない場合、ドライバはファイル認証情報をファイルシステムに記録する方法を知ることができず、単にユーザーと権限の概念をサポートできないファイルシステムを使用するかのように動作します。

exFATはリムーバブルメディア用に特別に設計されたファイルシステムです。メディアを物理的に所有している人は、誰でもそのメディアに保存されているすべてのコンテンツを読むことができると仮定するため、権限は大きな意味を持ちません。したがって、FAT32やFATファミリーの他のファイルシステムと同様に、ファイルの所有権と権限に関する実際の概念はまったくなく、保存する方法もありません。

ただし、LinuxまたはUnixファミリーシステムでは、デフォルトですべてのファイルが一部ユーザーと一部グループ、そして〜しなければならない少なくとも一般的なユーザー/グループ/その他の権限セットまたはより複雑なACLが必要です。すべてのシステムコールとオペレーティングシステムコマンドは、すべてのファイルに対してこれを期待します。したがって、ファイルシステムがそれをサポートしていない場合、ファイルシステムドライバはこれを偽造する必要があります。

ファイルシステムに無効な所有権と権限がない場合にこれを提供するために、NTFS-3GおよびexFATファイルシステムドライバは、2つの権限セット(すべてのファイルに対して1つ、1つに対して他方)を定義するために使用できるインストールオプションのセットです。をサポートします。すべてのファイルディレクトリに設定されます。ファイルシステム内のすべてのファイルのメタデータに資格情報を保存する機能がない場合は、すべてです。

WD NTFS HDDとSamsung SSDの違いは、SamsungにすでにexFATファイルシステムがある可能性が高く、exFATとNTFSファイルシステムには権限偽造のデフォルト設定が異なるか、NTFS HDDのルートにACLがあることを意味します。 Windowsでは、Everyone - Full Control構成は新しいファイルまたはサブディレクトリに継承されます。

Windowsの「Everyone」はグローバルに定義された標準SIDであるため、Linux NTFSドライバが基本的に理解している最小限のSIDの1つです。

おすすめ記事