洪水(v2.1.1)を実行するためにsystemdサービスを作成しました。 Deluged はファイルを書き込むときに権限を権限なしに設定しますが、UMask は 777 に設定されます。したがって、実行時に作成した構成およびセッション状況ファイルは、許可なしに変更されます。サービスを停止すると、セッション状態を書き込もうとすると失敗します(ログに示すように)、セッション状態と構成の変更は保存されません。
この動作はLinux Mint 21.3とUbuntu Server 22.04.4を新しくインストールした複数の環境で一貫して発生し、このサービスを作成するときにDelugeのマニュアルに従いましたが、この問題についての報告は見られませんでした。私は何が間違っていましたか?
/etc/systemd/system/deluged.serviceの内容:
[Unit]
Description=Deluge Bittorrent Client Daemon
Documentation=man:deluged
# Start after network and specified mounts are available, see mount UNIT names in sudo systemctl -t>
After=network-online.target
# Won't start if these mount points are not connected
Requires=mnt-one.mount mnt-two.mount
# Stops service if mount points disconnect
BindsTo=mnt-one.mount mnt-two.mount
[Service]
Type=simple
User=deluge
Group=deluge
UMask=777
#with the custom logging
ExecStart=/usr/bin/deluged -d -l /var/log/deluge/daemon.log -L warning
# Time to wait before forcefully stopped.
TimeoutStopSec=300
[Install]
# Start the service when the mount points come back online
WantedBy=multi-user.target mnt-one.mount mnt-two.mount
Delugedの作業ディレクトリ(つまり、Delugeユーザーのホームディレクトリ)の例は、セッションが停止した後にsession.stateファイルに権限がないことを示しています(実行時に設定を編集すると、confファイルも同じ権限を持ちます)。
ls -al /var/lib/deluge/.config/deluge
total 3848
drwxrwxrwx 7 deluge deluge 4096 Feb 23 08:41 ./
drwxr-x--- 4 deluge deluge 4096 Feb 20 21:08 ../
drwxrwxrwx 2 deluge deluge 4096 Feb 23 08:41 archive/
-rwxrwxrwx 1 deluge deluge 56 Jan 28 00:05 auth*
-rwxrwxrwx 1 deluge deluge 75 Feb 23 08:08 autoadd.conf*
-rwxrwxrwx 1 deluge deluge 75 Feb 22 16:59 autoadd.conf.bak*
-rwxrwxrwx 1 deluge deluge 367 Feb 23 08:08 blocklist.conf*
-rwxrwxrwx 1 deluge deluge 367 Feb 22 17:12 blocklist.conf.bak*
-rwxrwxrwx 1 deluge deluge 3653994 Feb 22 17:12 blocklist.download*
-rwxrwxrwx 1 deluge deluge 2807 Feb 23 08:08 core.conf*
-rwxrwxrwx 1 deluge deluge 2806 Feb 23 08:08 core.conf.bak*
-rwxrwxrwx 1 deluge deluge 0 Jan 28 00:10 deluged.log*
---------- 1 deluge deluge 11 Feb 23 08:41 deluged.pid
-rwxrwxrwx 1 deluge deluge 56 Feb 23 08:08 execute.conf*
-rwxrwxrwx 1 deluge deluge 112 Feb 22 17:17 extractor.conf*
-rwxrwxrwx 1 deluge deluge 112 Feb 22 17:17 extractor.conf.bak*
-rwxrwxrwx 1 deluge deluge 252 Feb 21 07:20 hostlist.conf*
-rwxrwxrwx 1 deluge deluge 252 Jan 28 00:05 hostlist.conf.bak*
drwxrwxrwx 2 deluge deluge 4096 Jan 28 00:05 icons/
drwxrwxrwx 2 deluge deluge 4096 Jan 28 00:05 plugins/
-rwxrwxrwx 1 deluge deluge 3183 Feb 22 17:17 scheduler.conf*
-rwxrwxrwx 1 deluge deluge 3183 Feb 22 17:17 scheduler.conf.bak*
---------- 1 deluge deluge 3658 Feb 23 08:34 session.state
-rwxrwxrwx 1 deluge deluge 4386 Feb 22 16:41 session.state.bak*
drwxrwxrwx 2 deluge deluge 4096 Feb 22 16:33 ssl/
drwxrwxrwx 2 deluge deluge 4096 Feb 23 08:44 state/
-rwxrwxrwx 1 deluge deluge 84806 Feb 23 08:08 stats.totals*
-rwxrwxrwx 1 deluge deluge 84810 Feb 23 08:07 stats.totals.bak*
-rw------- 1 deluge deluge 1323 Feb 23 08:41 web.conf
-rw------- 1 deluge deluge 1323 Feb 23 08:34 web.conf.bak
私の質問:
- 私は何が間違っていましたか?私は長年systemdを使用してきましたが、これを行うプログラムを見たことがありません。マニュアルに従ってサービスを作成してシステムをセットアップしましたが、同じ問題を抱えている人が見つかりませんでした。私は突然、この問題に直面する前に、長い間この問題とテストされたすべてのシステムで100%再現性を達成する方法について研究してきました。
- どのプログラムがファイルの権限をいつ変更したかを知らせるLinuxツールはありますか?
答え1
回避策:UMaskと権限は同じではなく、許可されていないタスクのリストですが、権限は許可されているタスクのリストであることを忘れました。 deluge.sessionsの修正UMaskを使用して007で新しいシステムを構築し、問題を解決しました。