우리는 임베디드 Angstrom 및 SSH를 과도하게 실행하여 고객이 로그인하여 데이터를 검색할 수 있도록 고객 계정을 설정하려고 합니다.
uname -a
Linux pb014-01 2.6.32 #1 Wed Feb 29 15:17:02 GMT 2012 armv7l GNU/Linux
(pb014-01은 아마도 Overo여야 합니다.) 이것은 우리가 모든 드라이버를 컴파일하는 유일한 버전입니다.
고객 데이터는 외부 USB 또는 SD 대용량 저장 장치(micro sd(mmcblk0p1) + usb sd(sd[az][0-1]))에 fat32 형식으로 저장되어 있습니다.
장치/볼륨은 udev에 의해 자동으로 마운트되므로 장치를 설정할 때 장치/폴더 이름을 알 수 없습니다.
/media 폴더의 현재 권한은 다음과 같습니다.
drwxr-xr-x 5 root root 0 Aug 6 16:44 sdb1
적어도 drwxr-xrwx는 필요한 것 같아요
디스크 추가 및 제거를 알리기 위해 소프트웨어에 udp 명령을 보내는 사용자 정의 규칙을 추가했습니다. 따라서 디스크가 제거되면 /media의 폴더에 대한 쓰기가 즉시 중지됩니다.
해커로서 저는 udev에 추가하여 필요한 권한을 사용하여 chmod -R을 만들 수 있다고 생각했습니다. 하지만 처음에는 udev가 올바른 권한을 사용하여 설치하도록 하는 더 깔끔한 방법이 있기를 바랐습니다.
/etc/udev/scripts/mount.sh의 automount()에 fmask umash dmask uid optons를 추가하려고 시도했지만 아무 소용이 없었습니다. (이것이 해결책이라고 가정한다면 잘못 포맷했을 수도 있습니다.)
답변된 질문 중 상당수는 제가 달성하려는 권한을 "추가"하는 것이 아니라 권한을 제한하는 것과 관련이 있습니다.
답변을 찾기 위해 Google을 검색하는 동안 gvfs 및 nautilus를 언급하는 많은 사람들을 보았기 때문에 실제 작업을 수행하고 있다는 사실을 인식하지 못한 또 다른 디스크 마운트 프로그램이 있는지 궁금합니다.
그렇지 않다면 누군가가 바랍니다.
정말 감사합니다G
답변1
따라서 /etc/udev/scripts/mount.sh의 automount() 행을 편집하면 작동하는 것으로 나타났습니다. 내가 잘못 편집한 것 같습니다. 초기 라인(25)은 다음과 같습니다.
if ! $MOUNT -t auto -o async,relatime $DEVNAME "/media/$name"
이전에는 실수로 fmask 및 dmask 옵션을 추가했습니다.
if ! $MOUNT -t auto -o async,relatime,fmask=0777,dmask=0777 $DEVNAME "/media/$name"
이제 내 뜻대로
if ! $MOUNT -t auto -o async,relatime,fmask=0000,dmask=0000 $DEVNAME "/media/$name"
이전에 시스템을 재부팅하지 않고 디스크 등을 뽑았다가 다시 꽂았을 수도 있지만 이것이 내가 원하는 일인 것 같습니다.