그래서 방금 새로운 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
일종의 파티션입니다. 그것주장하다파티션에는 지정된 파일 시스템 유형 중 하나가 포함되어 있지만 이것이 반드시 완전한 사실은 아닙니다.
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 파일 시스템 드라이버는 두 가지 권한 집합(모든 파일에 대해 하나, 하나에 대해 다른 하나)을 정의하는 데 사용할 수 있는 설치 옵션 집합을 지원합니다. 모든 파일 디렉토리에 대해 설정됩니다. 파일 시스템에 있는 모든 파일의 메타데이터에 권한 정보를 저장하는 기능이 없으면 그게 전부입니다.
WD NTFS HDD와 Samsung SSD의 차이점은 Samsung에 이미 exFAT 파일 시스템이 있을 가능성이 높으며 exFAT와 NTFS 파일 시스템에는 권한 위조에 대한 기본 설정이 서로 다르거나 NTFS HDD의 루트에 ACL이 있다는 것을 의미합니다. Windows에서는 Everyone - Full Control
구성이 새 파일이나 하위 디렉터리에 상속됩니다.
Windows의 "Everyone"은 전역적으로 정의된 표준 SID이므로 Linux NTFS 드라이버가 기본적으로 이해하는 극소수의 SID 중 하나입니다.