소유권, 디스크 드라이브 및 권한

소유권, 디스크 드라이브 및 권한

이미 게시한 디스크 드라이브 문제가 있습니다. (궁금하신 분들을 위해:포맷 후 기기 문제)

간단히 말해서, 내 디스크 중 하나에서는 더 이상 Dolphin(Debian)을 사용하여 끌어서 놓기를 통해 파일을 복사할 수 없으며, sudo를 사용하여 터미널에서 수행하는 경우에만 그렇게 할 수 있습니다.

내 문제를 조사한 결과 몇 가지 사실을 발견했습니다.

  • 다른 디스크 드라이브에서 이런 일이 발생했습니다.

  • 디스크 드라이브와 디스크 드라이브는 dd if=/dev/zero of=/dev/sdX를 사용하여 지워졌습니다. 여기서 sdX는 문제의 드라이브입니다.

  • dd로 지우지 않고 포맷(mkfs 사용) 및/또는 파티션(예: 여러 기본 파티션으로 생성된 gpt 파티션)만 수행한 다른 디스크 드라이브에서는 이러한 현상이 발생하지 않습니다.

  • 이 디스크에서 소유자는 더 이상 사용자가 아닌 루트로 변경되었습니다.

그래서 내 질문은 다음과 같습니다

  • 완전히 지워진 디스크에서는 이런 일이 발생하지만 포맷되거나 파티션된 디스크에서는 발생하지 않는 이유는 무엇입니까?

  • 권한은 정확히 어떻게 작동하나요? 디스크에 기록되나요? 아니면 소유권이 디스크에 기록됩니까?

  • Linux 배포판 전반에 걸쳐 변경 사항이 유지되도록 디스크 소유자를 변경할 수 있습니까?

편집: exfat를 사용하여 디스크 포맷을 시도했습니다. Dolphin을 사용하여 드래그 앤 드롭 작업을 수행하고 소유권을 사용자로 변경합니다. ext4로 디스크 포맷을 시도했습니다. 드래그 앤 드롭이 더 이상 작동하지 않습니다. 소유권이 루트로 변경되었습니다. 디스크 드라이브의 소유권을 현재 사용자로 변경해 보았습니다. 명령줄은 문제 없이 종료됩니다(터미널: sudo chown ...:/dev/sdX -R -w). 그러나 Dolphin과 함께 사용할 경우 드래그 앤 드롭 기능이 작동하지 않습니다. Dolphin은 여전히 ​​소유권을 루트로 나열합니다. 터미널에서 수동으로 마운트하는 경우 마운트를 위해 생성된 디렉터리에는 루트 소유권만 표시됩니다(디렉토리가 sudo 없이 생성된 경우에도 마찬가지). Dolphin에서 자동으로 설치되면 루트 소유권만 표시됩니다. 탑재 지점 이름은 Dolphin의 두 자동 탑재 간에 변경됩니다.

또한 ext* 파일 시스템을 사용하여 다른 드라이브를 포맷했다는 점도 덧붙이고 싶습니다. dd if=... of=... (완전히 제거하기 위해)를 실행하지 않는 한 문제가 없습니다 (ext4에서도).

무슨 일인지 설명해 주실 수 있나요?

ext* 형식은 자동으로 루트를 소유자로 설정하지만 exfat 형식은 그렇지 않은 것처럼 보이는 이유는 무엇입니까? 두 명령 모두 mkfs를 사용하여 실행됩니다.

편집: 내가 데비안을 사용한다고 쓰는 것을 잊어버렸습니다.

답변1

드라이브(또는 파티션, 기타 블록 장치, 디스크 이미지 파일 등)를 포맷할 때 파일 시스템의 최상위 디렉터리는 다음과 같습니다.mkfs명령을 실행하는 사용자가 소유함.

일반적으로 디스크 이미지 파일(또는 RW 권한이 있는 블록 장치)을 루트가 아닌 uid로 포맷하지 않는 한 루트입니다.

소유권을 변경하려면 해당 소유권을 마운트한 다음 마운트된 디렉터리를 chown하세요. 이렇게 하면 형식화된 fs 자체에서 최상위 디렉토리의 소유권이 변경되므로 마운트 해제 후에도 소유권 변경이 유지됩니다. 예를 들어(루트로서):

mkfs.ext4 /dev/sdaX
mount /dev/sdaX /mnt
chown user:group /mnt

이는 파일 시스템이 마운트될 때 수행되어야 합니다. 그렇지 않으면 마운트 지점 자체의 소유자(즉, 상위 파일 시스템의 디렉토리)만 변경되며, 파일 시스템을 마운트할 때 이는 마운트된 파일 시스템 덮개의 소유자가 됩니다. 설치하세요.

예를 들어, 그 위에 다른 파일 시스템을 마운트하기 전까지 /mnt는 디렉토리일 뿐입니다 . //fs에 설정된 소유권과 권한이 있습니다. /mnt에 다른 파일 시스템을 마운트하면 이제 해당 파일 시스템의 최상위 디렉터리에 대해 설정된 소유권과 권한을 갖게 됩니다.

FAT는 UNIX 파일 시스템이 아니며 UNIX 소유권이나 사용 권한을 지원하지 않습니다. FAT 파일 시스템을 마운트할 때 FAT 파일 시스템의 소유권과 권한을 지정합니다.모두마운트 시 파일 시스템의 파일(기본값은 마운트 프로세스의 uid 및 gid)입니다.


mkfs참고 하시기 바랍니다일부파일 시스템을 사용하면 포맷할 때 소유자를 지정할 수 있습니다. 그러나 각 파일 시스템에는 고유한 방법이 있으므로 chown처음으로 마운트한 후(위 그림 참조) 하나도 기억할 필요가 없고 더 쉬운 경우가 많습니다. 거의 사용되지 않는 도구. 예를 들어 mkfs.ext4확장 옵션( -E)을 사용하여 다음을 수행합니다.

mkfs.ext4 -E root_owner=uid:gid /dev/sdaX

관련 정보