장치를 루트의 경우 RW로, 다른 모든 사람의 경우 RO로 마운트합니다.

장치를 루트의 경우 RW로, 다른 모든 사람의 경우 RO로 마운트합니다.

루트에 대한 전체 권한과 다른 모든 사람에 대한 읽기 전용 권한으로 마운트하려는 장치가 있습니다. 매뉴얼 페이지에서는 이것이 가능하다고 알려줍니다.

그래서:

  • sudo mkdir /mnt/foo
  • sudo mkdir /mnt/fooReadOnly
  • sudo chmod 700 /mnt/foo(rw는 루트에서만 작동합니다)
  • sudo chmod 555 /mnt/fooReadOnly(ro/모두가 탐색하도록 허용)
  • 장치가 /dev/sdaX다음과 같이 설치되어 있는지 확인하십시오./mnt/foo

그런 다음 매뉴얼 페이지의 조언을 따랐습니다.

  • sudo mount --bind /mnt/foo /mnt/fooReadOnly
  • sudo mount -o remount,bind,ro /mnt/foo /mnt/fooReadOnly

이제 테스트해보자:

  • ls /mnt/foo--> Permission denied...옳은
  • sudo ls /mnt/foo일하다..옳은
  • ls /mnt/fooReadOnly--> Permission denied...잘못된?

해당 바인드 마운트에서는 아무것도 변경할 수 없다는 메시지가 표시됩니다 Read-only file system.

어떻게 해결할 수 있나요?

/etc/fstab또한 시작 시 자동으로 다시 설치되도록 어떻게 추가합니까 ?

답변1

루트에 대한 전체 권한과 다른 모든 사람에 대한 읽기 전용 권한으로 마운트하려는 장치가 있습니다.

  • sudo mkdir /root/mnt/foo
  • sudo mkdir /mnt/fooReadOnly
  • mount -oro /dev/sdaX /mnt/foo
    • 이렇게 하면 /dev/sdaX 장치가 마운트됩니다.읽기 전용/mnt/foo에 있습니다. 한 번에 읽기 전용 바인드 마운트를 생성할 수 없기 때문에 먼저 설정했습니다. 나는 사용자에게 단 한 순간이라도 읽기-쓰기 바인드 마운트에 대한 액세스 권한을 부여하고 싶지 않습니다.
  • ls -ld /root- 표시되는 모드 dr-xr-x---와 소유자를 다시 확인하세요 root root.
  • sudo mount --bind /mnt/fooReadOnly /root/mnt/foo
  • sudo mount -oremount,rw /root/mnt/foo

위의 명령을 시도해 보세요. 각 마운트 명령 후에 를 실행하면 grep foo /proc/self/mountinfo각 파일 시스템과 각 마운트 지점 플래그가 별도의 열에 표시됩니다.

이를 이해하려면 모든 파일 시스템 플래그와 모든 마운트 지점 플래그를 동시에 변경해야 합니다 mount -oremount,rw. mount -oremount,ro그러나 각 장착 지점의 플래그에는 영향을 미치지 않습니다.다른마운트 지점.


unshare -rmsdaX 대신 tmpfs 마운트로 전환하더라도 사용자 네임스페이스( ) 내에서는 위 명령을 시도할 수 없습니다. "Permission Denied"로 인해 실패합니다 mount -oremount,rw. 대신 다음 순서를 사용해야 합니다.

  • mount tmp -ttmpfs /root/mnt/foo
  • mount --bind /root/mnt/foo /root/mnt/fooReadOnly
  • mount -oremount,bind,ro /root/mnt/fooReadOnly
  • mount --bind /root/mnt/fooReadOnly /mnt/fooReadOnly

또한 부팅 시 자동으로 다시 마운트되도록 /etc/fstab에 어떻게 추가합니까?

fstab은 너무 해킹적이므로 첫 번째 시퀀스를 fstab에 적용하지 않는 것이 좋습니다. 대신 두 번째 순서를 조정할 수 있습니다.

/dev/sdaX /root/mnt/foo ...
/root/mnt/foo /root/mnt/fooReadOnly none bind,ro
/root/fooReadOnly /mnt/fooReadOnly none bind

관련 정보