NTFS가 마운트된 드라이브의 소유권을 변경할 수 없습니다.

NTFS가 마운트된 드라이브의 소유권을 변경할 수 없습니다.

NTFS 마운트 드라이브의 소유권을 변경할 수 없는 이유는 무엇입니까?

uid=1000,gid=1000,내 파일에 등을 제공했지만 작동 /etc/fstab하지 않는 것으로 나타났습니다. 그래서 명령줄에서 테스트했습니다.

root@host:~# mount | grep /mnt/tmp1 | wc
      0       0       0

root@host:~# mount -o uid=1000 /dev/nvme0n1p4 /mnt/tmp1/

root@host:~# mount | grep /mnt/tmp1
/dev/nvme0n1p4 on /mnt/tmp1 type fuseblk (rw,relatime,user_id=0,group_id=0,default_permissions,allow_other,blksize=4096)

root@host:~# umount /mnt/tmp1

root@host:~# mount -o user_id=1000 /dev/nvme0n1p4 /mnt/tmp1/

root@host:~# mount | grep /mnt/tmp1
/dev/nvme0n1p4 on /mnt/tmp1 type fuseblk (rw,relatime,user_id=0,group_id=0,allow_other,blksize=4096)

$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 21.10
Release:        21.10
Codename:       impish

$ apt-cache policy mount
mount:
  Installed: 2.36.1-8ubuntu1
  Candidate: 2.36.1-8ubuntu2
  Version table:
     2.36.1-8ubuntu2 500
        500 http://archive.ubuntu.com/ubuntu impish-updates/main amd64 Packages
 *** 2.36.1-8ubuntu1 500
        500 http://archive.ubuntu.com/ubuntu impish/main amd64 Packages
        100 /var/lib/dpkg/status

내가 뭐 놓친 거 없니?
NTFS 마운트 드라이브의 소유권을 변경할 수 없는 이유는 무엇입니까?

답변1

NTFS-3g를 사용하고 있습니다.사용자 공간NTFS 파일 시스템 드라이버.

커널과 이러한 사용자 공간 파일 시스템 드라이버 사이에는 FUSE(USERspace의 File System의 약어)라는 인터페이스 계층이 있습니다.

파일 시스템 유형은 fuseblk, 아님 ntfs또는 로 표시됩니다 ntfs-3g. 가 표시되면 type fuseblk (some options)괄호 안의 옵션은 다음과 같습니다.퓨즈 옵션, 실제 파일 시스템 옵션이 아닙니다. man 8 fuse더 자세한 내용을 원하시면 확인해 보세요 .

구체적으로 이는 user_id=0"이 FUSE 파일 시스템이 루트에 의해 마운트됨"을 의미하며 그 이상은 아닙니다. 실제 마운트 옵션은 파일 시스템 드라이버 프로세스에 제공되며 이를 통해 무엇이든 할 수 있습니다. ( allow_otherFUSE 옵션을 지정 하지 않는 이상, FUSE는 파일 시스템을 마운트한 사용자에게만 파일 시스템 접근을 허용합니다 .)

불행하게도 FUSE 인터페이스 계층에서는 mountFUSE 기반 파일 시스템의 실제 마운트 옵션이 명령 출력에 표시되는 것을 허용하지 않습니다. 이는 기존 커널 기반 파일 시스템이 표시하는 것과 같은 방식입니다.

대신 을 실행하면 지정한 설치 옵션이 포함된 파일 시스템 드라이버 프로세스와 해당 명령줄 옵션이 pgrep -a ntfs-3g표시됩니다 .ntfs-3g

예를 들어 내 시스템에는 다음 줄이 있습니다 /etc/fstab.

UUID="A268B5B668B599AD" /win/c          ntfs-3g defaults,windows_names,inherit,nofail   0   0
UUID="56A31D4569A3B7B7" /win/d          ntfs-3g defaults,windows_names,inherit,nofail   0   0

따라서 다음 프로세스를 살펴보겠습니다.

$ pgrep -a ntfs-3g
775 /sbin/mount.ntfs-3g /dev/nvme0n1p3 /win/c -o rw,windows_names,inherit
1008 /sbin/mount.ntfs-3g /dev/sdb2 /win/d -o rw,windows_names,inherit

답변2

이것은 내 FSTAB 항목입니다. 참고하세요구현하다옵션:

UUID=66D6934FD6931DFD /mnt/SeagateExpansionDrive ntfs-3g auto,users,permissions,exec,x-gvfs-show 0 0

위와 같이 chown, chmod 및 exec 쉘 스크립트를 사용할 수 있습니다. 저는 우분투를 실행하고 있습니다.

관련 정보