作成しようとしています。ユディックス接着剤Raspbian Raspberry Piで作業しています。 SSH経由で手動で起動すると正常に動作しますudisks-glue
。しかし、起動時に自動的に起動するようにしたいと思います。
だからスクリプト私のためにデーモンを始めました/etc/init.d/udisks-glue
(指示に従って)。ここ)。正常に動作しますが、ディスクはdrwx------
root権限()でマウントされています。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
ハードドライブを接続すると、マウントされません。しかし、正しく実行されるプロセスが現れました。を見て(両方ともrootとして実行している場合)、手動で起動すると上記と同じ出力が表示されますps aux | grep [u]disks
。udisks-glue
pi
udisks-daemon
ps
udisks-glue
3) 編集を試みて/etc/rc.local
行を追加しました。
su pi -c "/usr/bin/udisks-glue &"
udisks-glue
これは、として実行されますが、pi
機能しない(2)と同じ結果になります。
4)によるとこのページ、rootとしてudisks-glueを実行しますが、すべての人にインストール権限を与えます。これはFATファイルシステムで機能しますが、ext4もマウントできません。 (pi
とにかく、マウントをユーザーが所有したいです。)
答え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
初期化スクリプトを修正してください。
実行したいユーザーを含む変数を追加します
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
を通常のユーザーが書き込むパスに変更するだけです。)
あなたがとった措置についてのコメント:
これはうまくいきません。この変数は呼び出し時にパラメータ
$DAEMON
として使用されます。この主張は--exec
start-stop-daemon
実行可能ファイルexec
と同時に内蔵ケース。これを行うと、初期化スクリプトが破損します。この方法で起動すると機能しますが、停止は実際のデーモンプロセス()を停止するのと同じよう
udisks-glue
には機能しません。それ以外に、デーモンモードで起動すると、デバッグメッセージは生成されません。対話型シェルで次のコマンドを実行する場合:start-stop-daemon
/path/to/your/helper/script.sh
/usr/bin/udisks-glue
udisks-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
これは、ドライブがマウントされない理由を説明できます。
事実2と同じです。追加の注意:デフォルトはデーモン化されている
&
ため、末尾のアンパサンド()は重複しています。udisks-glue
同様に
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
インストール後に所有者を変更する必要があります。