fstab 자동 옵션과 사용자 옵션 간의 상호 작용에 대해 잘 모르겠습니다.

fstab 자동 옵션과 사용자 옵션 간의 상호 작용에 대해 잘 모르겠습니다.

autouser마운트 옵션과의 상호 작용이 혼란스럽 습니다 fstab.

auto설정하는 대신 잘못 설정한 후 noauto장치가 연결되면 마운트가 발생하지만 사용자가 장치를 마운트 해제할 수 없다는 것을 확인했습니다("사용자"는 루트 권한 없이 실행되는 실행 파일입니다). /etc/fstab항목 은 다음과 같습니다 .

/dev/mmcblk1p1 /home/user/importexport auto rw,user,auto,exec,uid=1000,gid=100,umask=0022,nobootwait 0 2

auto로 바꾸면 noauto사용자가 장치를 명시적으로 마운트 및 마운트 해제할 수 있습니다.

이것은 임베디드 시스템에 있고 런타임 가시성이 없습니다. 이는 문제를 대화식으로 탐색할 수 있는 셸 액세스가 없음을 의미합니다. 내가 할 수 있는 일은 다음 부팅 시 볼 수 있는 파일에 디버깅 정보를 쓰는 것뿐입니다. 내 커널은 3.10.0입니다.

그렇다면 사용자가 이 옵션을 사용하여 자동으로 설치된 장치를 제거할 수 없는 이유는 무엇입니까 user?


참고: 에옵션 "user"는 마운트 해제가 아닌 마운트에 적용됩니다., 누군가 허가를 요청했습니다 /etc/mtab. 내 것은 -rw-r--r--루트용 이지만 /etc/mtab해당 질문에 언급된 사용자 정보가 전혀 포함되어 있지 않으므로 관련성이 없을 수도 있다고 생각합니다.

답변1

저는 auto(fstab의 옵션)가 항상 루트로 실행되고 user 옵션은 설치 프로그램에 단순 사용자의 요청을 수락할 수 있다는 것만 알려준다고 생각합니다. 발생하는 상황은 다음과 같습니다. 드라이브를 연결하면 시스템이 이를 인식하고 자동으로 루트로 마운트하며 사용자는 루트 그룹에 없으면 마운트 해제할 수 없습니다.

fstab에서 자동 옵션을 제거하거나(또는 다른 옵션(noauto)을 제공하는 것이 더 좋습니다), 사용자 옵션을 유지하고 사용자별로 스크립트를 작성하여(사용자가 실행하므로) 드라이브가 연결될 때마다 드라이브를 마운트할 수 있습니다.

편집:
자동 설치 프로그램이 사용하는 사용자 계정이 무엇이든 귀하의 계정과 동일한 계정이 아닌 것 같습니다.

편집 #2:
다음 명령을 실행하여 누가 장치를 설치했는지 확인할 수 있습니다.

ls /mnt/ -l

편집 #3:

또는

sudo cat /etc/passwd | cut -f -3 -d ':' | sed -re 's/(.*):(.*):(.*)/\3 \2 \1/g' | while read p1 p2 p3 ; do printf "%05i $p2 $p3\n" "$p1" ; done | sort -r | while read p1 p2 p3 ; do echo $p3 ; done | while read p ; do sudo -u $p umount /dev/ice 2>/dev/null && echo $p >> /tmp/busted ; done

/dev/ice를 관심 있는 장치로 바꾸십시오.
sudoers 파일이 올바르게 설정되었는지 확인하고
/tmp/busted에서 원하는 의심스러운 사용자를 찾을 수 있는지 확인하십시오.

관련 정보