目的:/ var / tmpフォルダのCUPSサーバーから生成されたスプールデータを削除できるプライベートLinuxシステム(インターネットに接続されていないローカルシステム)でWebフックをトリガーしたいと思います。
これを達成するために
方法1まず、デフォルトのCUPS設定ファイルを確認し、そこでファイルを編集しました。 /etc/cups/cupsd.confのような行
PreserveJobFiles No
そして/etc/cups/cups-files.conf
RequestRoot /var/tmp
PreserveJobをnoに変更すると、印刷が完了した後にカップスプールファイルが自動的に削除されます。
ところで、1番の方法がないので、2番の方法を試してみました。
方法2:ApacheとPHPがインストールされたUbuntu 22.04システムがあります。新しい仮想ホスト「example.io」を設定し、DocumentRootを/var/www/example.io/に設定しました。
このディレクトリには、Webブラウザにコンテンツを正常に提供するindex.phpファイルがあります。
このindex.phpファイルで、私のホームディレクトリにあるbashスクリプトを呼び出します。 Bashスクリプトには次のコマンドが含まれています。
#!/bin/bash
echo "Hello, I am above the ls command"
ls /var/tmp/
echo "Hello, I am below the ls command"
touch example.txt
rm -rf /var/tmp/cn*
echo "I am below the touch command"
Bashスクリプトが実行されており、Webブラウザでechoステートメントの出力を表示できます。ただし、/ var / tmpフォルダの内容を一覧表示したり、そのフォルダにファイルを作成したりすることはできません。
以下は、試しても問題は解決しなかった変更です。
bashスクリプトでls&touchを使用して相対パスと絶対パスを試しました。
sudoersファイルの「%sudo」行の下に「www-data」ユーザーを追加しました。
www-data ALL=(ALL) NOPASSWD: /home/example/script.sh
www-data ALL=(ALL) NOPASSWD: /var/tmp
- 「www-data」ユーザーが所有するようにbashスクリプトの権限を変更しました。
drwxrwxrwx 5 www-data www-data 6 Jun 6 08:39 script.sh
- "www-data" ユーザーがアクセスできるように /var/tmp フォルダの権限を変更しました。
drwxrwxrwt 5 www-data www-data 6 Jun 6 08:39 tmp
- /var/tmpフォルダから固定ビットを削除し、その権限を777に設定しました。
drwxrwxrwx 5 www-data www-data 6 Jun 6 08:39 tmp
bashスクリプトとその親ディレクトリに対するフルアクセス許可を与えました。
コマンドラインから確認するときは、www-dataユーザーを使用して/ var / tmpにファイルを一覧表示して生成できます。
root@cups-lxc-at-ct:~/instantpost# sudo -u www-data touch /var/tmp/cnijb
root@cups-lxc-at-ct:~/instantpost# sudo -u www-data ls /var/tmp
cnijb
systemd-private-329d46999f134f4a9470ce054ae837e9-apache2.service-iHoe2E
systemd-private-329d46999f134f4a9470ce054ae837e9-systemd-logind.service-lGcUhs
systemd-private-329d46999f134f4a9470ce054ae837e9-systemd-resolved.service-Rqvc7r
/var/tmpのACLは次のとおりです。
root@cups-lxc-at-ct:~/instantpost# getfacl /var/tmp
getfacl: Removing leading '/' from absolute path names
# file: var/tmp
# owner: root
# group: root
# flags: --t
user::rwx
group::rwx
other::rwx
AppArmorを確認しました。
sudo apparmor_status
私はこの出力を得る
root@cups-machine:~# sudo apparmor_status
apparmor module is loaded.
11 profiles are loaded.
11 profiles are in enforce mode.
/usr/bin/man
/usr/lib/NetworkManager/nm-dhcp-client.action
/usr/lib/NetworkManager/nm-dhcp-helper
/usr/lib/connman/scripts/dhclient-script
/{,usr/}sbin/dhclient
lsb_release
man_filter
man_groff
nvidia_modprobe
nvidia_modprobe//kmod
tcpdump
0 profiles are in complain mode.
0 profiles are in kill mode.
0 profiles are in unconfined mode.
0 processes have profiles defined.
0 processes are in enforce mode.
0 processes are in complain mode.
0 processes are unconfined but have a profile defined.
0 processes are in mixed mode.
0 processes are in kill mode.
=>興味深いことに、/usr、/usr/example、/tmp/example、/home/exampleなどの他のフォルダで同じ方法をテストし、正常に動作しました。
既定の /var/tmp フォルダでこの問題が発生する理由を理解するのが困難です。どんな洞察力や提案でも大変感謝いたします。