외부 디스크를 마운트하면 마운트 지점 디렉터리의 권한이 변경됩니다.

외부 디스크를 마운트하면 마운트 지점 디렉터리의 권한이 변경됩니다.

Debian 11에서 외부 디스크를 마운트하면 마운트 지점 디렉터리의 권한이 변경됩니다. 디스크는 ext4.

이것이 정상적인 행동입니까?

디렉터리를 생성합니다:

user@debian:/media$ mkdir external2
mkdir: cannot create directory ‘external2’: Permission denied
user@debian:/media$ sudo mkdir external2

소유권 확인:

user@debian:/media$ ls -la
total 20
drwxr-xr-x  5 root root 4096 Aug 17 20:19 .
drwxr-xr-x 18 root root 4096 Jul  9 21:11 ..
drwxr-xr-x  2 root root 4096 May  4  2021 cdrom
drwxr-xr-x  2 root root 4096 Aug 12  2021 external
drwxr-xr-x  2 root root 4096 Aug 17 20:19 external2

소유권을 다음으로 변경 user:

user@debian:/media$ chown -R user:user /media/external2
chown: changing ownership of '/media/external2': Operation not permitted
user@debian:/media$ sudo chown -R user:user /media/external2

소유권을 확인합니다.

user@debian:/media$ ls -la
total 20
drwxr-xr-x  5 root root 4096 Aug 17 20:19 .
drwxr-xr-x 18 root root 4096 Jul  9 21:11 ..
drwxr-xr-x  2 root root 4096 May  4  2021 cdrom
drwxr-xr-x  2 root root 4096 Aug 12  2021 external
drwxr-xr-x  2 user user 4096 Aug 17 20:19 external2

하드 드라이브를 마운트합니다:

user@debian:/media$ sudo mount /dev/sdb /media/external2

소유권 확인:

user@debian:/media$ ls -la
total 20
drwxr-xr-x  5 root root 4096 Aug 17 20:19 .
drwxr-xr-x 18 root root 4096 Jul  9 21:11 ..
drwxr-xr-x  2 root root 4096 May  4  2021 cdrom
drwxr-xr-x  2 root root 4096 Aug 12  2021 external
drwxr-xr-x  2 root root 4096 Aug 12  2021 external2

편집: 투명성을 위해 이 질문을 열어두겠습니다. 하지만 관련될 수 있는 또 다른 질문이 있습니다. 이상한 rsync 동작으로 인해 전송된 파일이 삭제됨

답변1

예, 이는 모든 Unix 계열 시스템의 모든 마운트 지점에서 정상적이고 예상되는 동작입니다.

외장 하드 드라이브를 탑재하면 외장 하드 드라이브 파일 시스템의 루트 디렉터리가 탑재 지점 디렉터리 위에 배치되고 탑재 지점 디렉터리는 새 파일 시스템 아래에 "숨겨집니다".

외장 하드 드라이브 파일 시스템의 루트 디렉터리에는 고유한 소유권과 권한이 있으며, 이는 외장 디스크를 마운트하면 볼 수 있습니다. 왜냐하면 마운트 지점으로 사용된 디렉터리는 더 이상 표시되지 않지만 마운트한 루트 디렉터리 이름은 표시되기 때문입니다. 파일 시스템의.

다른 파일 시스템을 마운트 해제하면 마운트 지점 디렉터리를 재정의하는 파일 시스템의 루트 디렉터리가 마운트 해제되었기 때문에 마운트 지점 디렉터리의 원래 권한이 다시 표시됩니다.

소유권이 파일 시스템을 마운트하는 사용자의 신원을 반영할 것으로 예상할 수 있지만 이는 규칙이 아니라 예외입니다. 이는 Unix 스타일 소유권 및 권한을 지원하지 않는 파일 시스템(예: FAT 계열 유형) ), 마운트 지점은 일반 사용자 mountsudo.

파일 시스템 마운트는 보안에 중요한 영향을 미치므로 일반적으로 루트(또는 무제한 액세스 권한을 가진 사람)만이 이 명령의 완전히 제한되지 않은 형식을 sudo사용할 수 있습니다 . mount그러나 루트가 아닌 사용자는 다음을 mount사용하지 않고도 허용할 수 있습니다.sudo 사전에 지정된 설치 지점에서만. 이를 수행하려면 시스템 관리자는 먼저 /etc/fstab설치 옵션 또는 . 차이점은 다음과 같습니다.userusersowner

  • users: 모든 사용자가 마운트 가능, 모든 사용자가 마운트 해제 가능
  • user: 모든 사용자가 마운트할 수 있지만 마운트 해제는 루트 또는 파일 시스템을 마운트한 사용자만 가능합니다.
  • owner:비슷 user하지만 사용자가 설치하려는 장치 노드를 소유해야 한다는 추가 요구 사항이 있습니다. (이렇게 하면 로컬 로그인 사용자에게 권한을 부여하도록 구성된 시스템에만 핫 스왑 가능한 이동식 드라이브를 설치할 수 있습니다.) 많은 배포판(데비안 포함)은 지원하지 않습니다. 마음에 들지 않습니다. 대신 별도의 이동식 미디어를 사용하여 도우미 프로그램을 설치하십시오(참조) udisks2.man udisks

이러한 사전 정렬된 마운트 지점을 사용하려면 루트가 아닌 사용자는 mount마운트할 장치 또는 마운트 지점 디렉터리만 지정하는 짧은 형식의 명령을 사용해야 합니다.전부는 아니다. 그런 다음 시스템 관리자가 지정한 설치 옵션 및 기타 매개 변수를 적용하기 위해 mount나머지 세부 정보를 여기에서 조회합니다 ./etc/fstab

마운트된 다른 파일 시스템에 의해 숨겨진 파일이나 하위 디렉터리에 액세스해야 하는 경우 다음을 만들 수 있습니다.바인드 마운트상위 파일 시스템( mount --bind,아니요 mount --rbind) 바인드 마운트를 통해 마운트 지점 디렉터리에 액세스합니다.

설정을 사용한 예입니다. 외부 디스크를 마운트 해제하여 시작합니다.

sudo touch /media/external2/This_will_be_hidden_by_external_disk
ls /media/external2       # now you see it
sudo mount /dev/sdb /media/external2
ls /media/external2       # now you don't!
sudo mount --bind / /mnt
ls /mnt/media/external2   # here you will see it again!
sudo umount /mnt          # to clean up the bind mount

마운트 지점 디렉터리가 비어 있지 않으면 기반 시스템은 systemd시작 시 파일 시스템을 마운트할 때 경고를 표시합니다./etc/fstab

답변2

을 사용하여 마운트하고 sudo있으므로 root마운트된 디렉토리의 소유자는 정상입니다.

관련 정보