systemd:ファイルに書き込むときにpermsを000に設定しました。

systemd:ファイルに書き込むときにpermsを000に設定しました。

洪水(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で新しいシステムを構築し、問題を解決しました。

おすすめ記事