고쳐 쓰다
내가 틀렸다면 정정해주세요: 내 컴퓨터에서 Debian이라는 GNU/Linux 배포판을 사용하여 작업할 때 명령 입력, 응용 프로그램 실행, 파일 열기 등의 두 가지 방법을 알고 있습니다.
- ㅏ명령줄 인터페이스텍스트를 입력하는 위치
- ㅏGUI[일명GUI]: "창", 기호 등에 대한 인터페이스를 제공합니다.
"창 관리자"라는 것이 있습니다. 나는 GNU/Linux를 사용할 때 다음 작업을 합니다.X 윈도우 시스템[내가 아는 한].
원본 게시물
상태: USB 스틱의 자동 마운트를 비활성화했습니다 /etc/fstab
[예 /dev/sdb1
: ]. 설치에는 root
하나 이상의 sudo
항목이 필요합니다.명령줄에서는 가능하지만 창 관리자에서는 불가능(!). 내 말은 automount
창 관리자에서 "기호를 클릭하면" 아무 문제 없이 GUI에서 장치가 열리는 반면 CLI에서는 루트여야 한다는 뜻입니다.
질문: GUI에서 설치는 "무대 뒤에서" 어떻게 작동합니까? 공통 창 관리자 파일 이 있습니까 config
, 아니면 개별적으로 설정해야 합니까?
mount
나는 명령을 이해하고 사용하며 , 읽고 구성하는 방법을 이해 /etc/fstab
하고 거기에 있는 항목을 볼 위치와 /etc/mtab
그 의미를 알고 있다고 생각합니다.
답변1
이는 윈도우 환경(GNOME / KDE/등)에 따라 다르지만 예를 들어 GNOME에서는 gvfs-*-volume-monitor
. /etc/fstab
완전히 독립적으로.
구성 파일과 관련하여 DE를 실행하는 사용자의 홈 디렉터리에 몇 가지 관련 파일이 있습니다 $HOME/.local/share/gvfs-metadata
.
이 U&L Q&A의 질문은 다음과 같습니다.gvfs란 무엇입니까? 내 시스템에서 왜 사용해야 합니까?, GVFS가 무엇인지 설명하려고 합니다. 이것은 이것을 아주 잘 설명합니다. 하지만 당신이 정말로 묻고 싶은 질문은 다음과 같은 U&L Q&A를 통해 해결할 수 있을 것 같습니다.U 디스크 자동 장착(작동 원리).
답변2
간단한 대답은 그들이 속임수를 쓴다는 것입니다. 그들은 fstab
일반적으로 udev
삽입 이벤트를 포착하기 위해 후크를 사용하고 디스크를 수동으로 마운트합니다. root
이는 파일 관리자에 전달되어 dbus
새 디스크를 알리거나 마운트 해제 suid
대신 유틸리티를 사용할 수 있습니다 dbus
. 불행하게도 표준 구성 옵션이 없으며 데스크탑 운동은 복잡성을 숨기는 것을 믿기 때문에 이를 사용자 문서에는 문서화하지 않고 개발자 문서에만 문서화하고 단일 사용자 시스템을 가정하므로 USB 드라이브는 X 서버에 로그인한 첫 번째 사용자에게.
답변3
이것은 상황에 대한 나의 이해이지만 전문가가 아니기 때문에 다른 답변만큼 기술적이지는 않습니다. 이것은 수년 동안 이러한 시스템을 사용해 본 결과이며, 자세히 연구하지 않았습니다.
여기에는 탈것을 관리하는 세 명의 주요 플레이어가 있습니다.
퓨즈: 에 명시된 대로 이것이 모든 것의 중심입니다.위키피디아 페이지:
FUSE(사용자 공간 파일 시스템)는 권한이 없는 사용자가 커널 코드를 편집하지 않고도 자신의 파일 시스템을 만들 수 있도록 하는 Unix 계열 컴퓨터 운영 체제의 운영 체제 메커니즘입니다. 이는 FUSE 모듈이 단지 실제 커널 인터페이스에 "브리지"를 제공하는 방식으로 사용자 공간에서 파일 시스템 코드를 실행함으로써 달성됩니다.
따라서 기본적으로 이는 권한이 없는 사용자가 파일 시스템을 마운트할 수 있도록 허용하는 것입니다.
gvfs
: Gnome 데스크탑 환경(Gnome, Mate, Cinnamon 포함) 제품군에서 이는 새로 연결된 드라이브를 자동으로 마운트하는 데몬입니다. 물론통과하다퓨즈. 나는 KDE 시리즈에 상응하는 것이카친독립단체주요 프로세스
gvfs
는 다음과 같습니다(에서 발췌man gvfs
).- gvfsd - 주요 gvfs 데몬
- gvfs-fuse-daemon - gvfs를 퓨즈 파일 시스템으로 설치
- gvfsd-metadata - gvfs 메타데이터 쓰기
udev
: 새로운 장치를 감지하고, 연결되면 스크립트/명령을 실행할 수 있게 해주는 시스템입니다. 예를 들어,udev
새 화면을 감지하고 그 화면에 데스크톱을 미러링할 수 있습니다.udev는 Linux 커널의 장치 관리자입니다. 주로 /dev의 장치 노드를 관리합니다. 이는 devfs 및 hotplug의 후속 제품입니다. 즉, 펌웨어 로딩을 포함하여 장치를 추가/제거할 때 /dev 디렉토리와 모든 사용자 공간 작업을 처리한다는 의미입니다.
특히 udisks 기반 볼륨 모니터를 통해 작동하는
gvfs
것 같습니다 . 그러나 그 자체는 ( 참조 )에 따라 다릅니다.gvfs-udisks2-volume-monitor
udisks
udev
man 7 udisks
따라서 기본적으로("끔찍한 단순화" 읽기) 드라이브를 연결하면 드라이브 udev
가 이를 감지하고 gvfs
데몬에 경고한 다음 FUSE 장치로 마운트하게 됩니다.
FUSE는 udev
모든 데스크탑 환경에서 동일하며 udev
드라이브를 FUSE 파일 시스템으로 모니터링하고 마운트하는 DE 데몬이 변경되었습니다.
답변4
당신이 찾고있는 공통 요소는 다음과 같습니다퓨즈, 예를 들어, GNOME의 gvfs는 이를 배후에서 사용합니다. 1 이것은 커널과의 인터페이스입니다. 모든 사람에게 공통적이라고 생각합니다.특권이 없는Linux에 시스템 자동 설치[하지만 댓글을 보세요]. 각 DE는 커널 패치가 필요하므로 자체 버전을 생성하지 않습니다.
이 홈 페이지 링크는 실제로 오래되었습니다.여기에 명시된 바와 같이, FUSE는 몇 년 전에 공식 커널의 일부가 되었지만 프로젝트의 기원과 목적을 설명합니다(권한 없는 마운트만을 위한 것이 아닙니다).
서로 다른 데스크탑 환경이 있는 것과 같은 이유로 서로 다른 시스템은 서로 다른 스타일을 가질 수 있습니다. 이는 GUI가 어떻게/무엇이 되어야 하는지에 대한 서로 다른 비전을 나타냅니다. 사용자 인터페이스의 형태와 기능을 담당하지만 FUSE는 실제 설치 및 커널 수준 작업을 담당합니다. FUSE는 실제로 "자동" 부분을 수행하지 않고 "권한이 없는" 부분에 /dev
더 가깝지만 자동 부분은 매우 간단합니다. 저는 이런 방식으로 작동하는 설치 애플리케이션을 작성했는데, 이는 새로운 노드가 나타나는 것을 감시하기만 하는 것입니다. 2이 부분은 약 100줄의 C++ 코드로 구성됩니다. 간단하고 쉽습니다. 이 수준에서는 공통 API가 실제로 필요하지 않습니다.
1 또는 실제 권한 없는 설치를 수행하는 경우 OK입니다. Theresa의 답변은 일반적인 마운트에 대한 액세스를 허용하는 새로운 방법을 다룰 수 있습니다.
2 hildred가 관찰한 대로 udev 콜백은 더 좋고 덜 해킹적인 접근 방식입니다.