mount 및 fstab: 사용자가 마운트할 수 있지만 마운트 해제할 수는 없도록 구성할 수 있는 이유는 무엇입니까?

mount 및 fstab: 사용자가 마운트할 수 있지만 마운트 해제할 수는 없도록 구성할 수 있는 이유는 무엇입니까?

나는 최근에 일반 사용자가 fstab을 통해 장치를 마운트하도록 허용하는 것이 가능하다는 것을 알았습니다. 하지만 분명히 umount는 어떤 경우에도 루트에서만 수행할 수 있습니다.

마운트에 대한 매뉴얼 페이지에서도 마운트에 대해서만 설명합니다.

설치 매뉴얼 페이지

실용적인 해결책 외에도 그 이유가 무엇인지 알고 싶습니다.

답변1

많은 Unix/Linux 기능과 마찬가지로 그 이유는 물론 역사적입니다. 유닉스 자체는 유닉스에서 진화한 것이다.이전 제품인 Multics에 대한 말장난)는 사실이 되도록 설계되었습니다.다중 사용자체계. 사용자는 getty로컬 또는 원격으로 로그인 login하고 셸을 가져와 프로그램을 실행할 수 있습니다.

현재 TTY는 가상이며 GDM /KDM 으로 login대체되었습니다 .mountdflsps가장 오래된 유닉스 명령) 한 해 동안 많은 추가 기능이 추가되었지만 그 목적은 거의 동일했습니다.

mount과 명령은 umount원래 시스템 관리자에 의해서만 실행되었거나, root유닉스가 발전하여 개인용 컴퓨터로 확산되면서 mount,umount SUID 프로그램이 되세요일반 사용자가 파일 시스템을 마운트 및 마운트 해제할 수 있지만 이는 엄격한 조건에서만 가능합니다. 에서 man mount:

일반적으로 슈퍼유저만 파일 시스템을 마운트할 수 있습니다. [...] 루트가 아닌 사용자에게는 마운트가 매우 엄격하며 fstab이 구문 분석되거나 도우미가 실행되기 전에 명령줄에 지정된 모든 경로가 확인됩니다. [...] suid 권한을 제거하고 루트가 아닌 일반 사용자로 계속됩니다. [...] 파일 시스템을 마운트한 사용자만 다시 마운트 해제할 수 있습니다. 어떤 사용자라도 제거할 수 있어야 한다면 fstab 줄에서 user 대신 users를 사용하세요.

따라서 mount및 둘 다 옵션을 찾은 umount다음 루트 권한을 포기하고 마지막으로 / 시스템 호출을 수행하는 SUID 프로그램입니다.userusers/etc/fstabmount()umount()

답변2

users매뉴얼 페이지에서는 제거에 대해서도 설명합니다. 스크린샷에 나와 있습니다. 모든 사용자가 제거할 수 있도록 하려면 해당 옵션을 사용해야 합니다 .

어떤 사용자라도 제거할 수 있어야 한다면 fstab 줄에서 user 대신 users를 사용하세요.

이 옵션을 더 "홍보"하는 이유는 user아마도 한 사용자가 장치를 설치하고 두 번째 사용자가 뒤에서 장치를 제거하는 상황을 방지하기 위한 것입니다.

관련 정보