부팅 시 udisks-glue를 실행하고 드라이브를 특정 사용자로 마운트하려면 어떻게 해야 합니까?

부팅 시 udisks-glue를 실행하고 드라이브를 특정 사용자로 마운트하려면 어떻게 해야 합니까?

만들려고 노력 중이야유딕스 접착제Raspbian Raspberry Pi에서 작업 중입니다. SSH를 통해 수동으로 시작하면 정상적으로 작동합니다 udisks-glue. 그러나 부팅 시 자동으로 시작되도록 하고 싶습니다.

그러므로스크립트나를 위해 데몬을 시작 했습니다 /etc/init.d/udisks-glue(지침에 따라).여기). 정상적으로 작동하지만 디스크가 drwx------루트 권한( )으로 마운트되었습니다. pi대신 이 스크립트가 사용자로 데몬을 시작하도록 할 수 있습니까 root?

내가 시도한 것

1) 위 스크립트를 수정하고 교체하십시오.

DAEMON="/usr/bin/udisks-glue" 

그리고

DAEMON="exec su - pi -c /usr/bin/udisks-glue"

이 실행이 실패했습니다.

2) 이 줄을 사용자 정의 스크립트에 대한 참조로 바꾸고 exec su - pi -c /usr/bin/udisks-glue하드 드라이브를 연결하면 마운트되지 않습니다. 그러나 올바르게 실행되는 프로세스가 나타났습니다. 를 보면 (둘 다 루트로 실행 중) 수동으로 시작하면 위와 동일한 출력이 표시됩니다 ps aux | grep [u]disks.udisks-gluepiudisks-daemonpsudisks-glue

3) 편집을 시도하고 /etc/rc.local줄을 추가 했습니다.

su pi -c "/usr/bin/udisks-glue &"

udisks-glue이는 로 실행되지만 pi작동하지 않는 (2)와 동일한 결과를 갖습니다 .

4) 에 따르면이 페이지, 루트로 udisks-glue를 실행하되 모든 사람에게 설치 권한을 부여하십시오. 이는 FAT 파일 시스템에서 작동하지만 ext4도 마운트할 수 없습니다. ( pi어쨌든 마운트를 사용자가 소유하기를 원합니다.)

답변1

나는 가지고있다같은 문제요전.

해결책:

  1. 구성을 수정하세요./etc/polkit-1/localauthority/50-local.d/50-mount-as-pi.pkla다음 내용으로 파일을 만듭니다 .

    [Media mounting by pi]
    Identity=unix-user:pi
    Action=org.freedesktop.udisks.filesystem-mount
    ResultAny=yes
    
  2. 초기화 스크립트를 수정하세요.

    • 실행하려는 사용자가 포함된 변수를 추가합니다 udisks-glue.

      NAME=udisks-glue
      PIDFILE=/var/run/udisks.pid
      DAEMON="/usr/bin/udisks-glue"
      DAEMONUSER=pi <-- add this line
      
    • start-stop-daemon변수를 사용하도록 호출을 수정합니다 $DAEMONUSER.

      start) 
          log_daemon_msg "Starting Automounter" "$NAME"
      --> start-stop-daemon --start --exec $DAEMON --chuid $DAEMONUSER
          log_end_msg $?
          ;;
      stop)  
          log_daemon_msg "Stopping Automounter" "$NAME"
      --> start-stop-daemon --stop --exec $DAEMON --user $DAEMONUSER
          log_end_msg $?
          rm -f $PIDFILE
          ;;
      

      (참고: -- -p $PIDFILE첫 번째 호출에서 해당 부분을 제거했습니다. 일반 사용자 계정에는 쓰기 권한이 없을 수 있으므로 /var/run위에서 수행한 작업을 수행하거나 $PIDFILE변수를 일반 사용자가 쓸 수 있는 경로로 변경하면 됩니다.)

귀하가 취한 조치에 대한 의견:

  1. 이것은 작동하지 않습니다. 이 변수는 호출 시 매개변수 $DAEMON로 사용됩니다 . 이 주장은--execstart-stop-daemon실행 가능 파일exec, 그리고 동시에내장 케이스.

  2. 그렇게 하면 초기화 스크립트가 손상됩니다. 이 방법으로 시작 하면 작동하지만 중지하는 것은 실제 데몬 프로세스( )를 중지하는 udisks-glue것처럼 작동하지 않습니다 . 그 외에도 데몬 모드로 시작하면 디버그 메시지가 생성되지 않습니다. 대화형 셸에서 다음 명령을 실행하는 경우:start-stop-daemon/path/to/your/helper/script.sh/usr/bin/udisks-glueudisks-glue

    # su pi -c "/usr/bin/udisks-glue -f"
    

    다음과 같은 내용이 표시될 수 있습니다.

    Device file /dev/sdb1 inserted
    Trying to automount /dev/sdb1...
    Failed to automount /dev/sdb1: Not Authorized
    Device file /dev/sdb inserted
    

    이는 드라이브가 마운트되지 않는 이유를 설명할 수 있습니다.

  3. 사실 2와 똑같습니다. 추가 참고 사항: 기본값은 데몬화 &이므로 끝에 있는 앰퍼샌드( )는 중복됩니다 .udisks-glue

  4. 마찬가지로 udisks-glue포그라운드에서 실행하면 FAT가 아닌 파일 시스템의 문제를 설명할 수 있습니다.

    Device file /dev/sdb1 inserted
    Trying to automount /dev/sdb1...
    Failed to automount /dev/sdb1: Mount option dmask=0 is not allowed
    Device file /dev/sdb inserted
    

    또한 ext4 마운트 지점의 소유자를 변경하려면 chown설치 후에 소유자를 변경해야 합니다.

관련 정보