Fedora 23でノートブックカバーが開いたときにカスタムタスクを追加したいです。 3つのファイルをインストールしてacpid
作成しました。
/etc/acpi/events/lidconf
event=button/lid
action=/etc/acpi/actions/lid.sh "%e"
/etc/acpi/actions/lid.sh
#!/bin/bash
/home/user/Utility/lid.sh "$1"
/home/user/Utility/lid.sh
#!/bin/bash
DISPLAY=:0.0 su user -c "echo $1 >> /home/user/lid.txt"
走っているときはうまく機能し# /usr/sbin/acpid -f
ますが、走っているときはまったく機能しません# systemctl start acpid
。
ps
コマンドの結果が少し異なることがわかりました。
rootユーザーとして:
root 3796 0.0 0.0 4344 1704 ? Ss 22:24 0:00 /usr/sbin/acpid -f
システムを使用してください:
root 3918 0.0 0.0 4344 1780 pts/0 S+ 22:25 0:00 /usr/sbin/acpid -f
起動後にsystemdが機能しないのはなぜですか?
編集する:
ロギングを有効にしましたが、acpid
次のような結果が得られました。
received input layer event "button/lid LID open"
rule from /etc/acpi/events/lidconf matched
executing action "/etc/acpi/actions/lid.sh "button/lid LID open""
action exited with status 126
1 total rule matched
completed input layer event "button/lid LID open"
編集2:psアシスト-Z
システム:
system_u:system_r:apmd_t:s0 root 5177 0.1 0.0 4348 1756 ? Ss 22:52 0:00 /usr/sbin/acpid -f -l -d
ルートとして実行:
unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 root 5341 0.0 0.0 4344 1808 pts/0 S+ 22:56 0:00 /usr/sbin/acpid -f -l -d
答え1
わかりましたSELinuxの問題。既存のサービスに関連付けられている新しいコンテンツを作成するときは、サービスがファイルに適切にアクセスできることを確認する必要があります。ファイルのログはそうでないことを示します(unconfined_t
。
executing action "/etc/acpi/actions/lid.sh "button/lid LID open""
action exited with status 126
上記のコマンドの実行に失敗しました(終了ステータス126)。これは、ソースタイプにapmd_t
ファイルを実行する機能がないことを意味します(ファイルに不明なタグがあります)。次のポリシーを見つけてください。
$ sesearch -A -s apmd_t -p execute /etc/selinux/targeted/policy/policy.*
我々はラインを知ることができます
allow apmd_t apmd_exec_t : file { ioctl read getattr lock execute execute_no_trans entrypoint open }
許可される実行apmd_exec_t
タイプ。実行可能ファイルのラベルをそのタイプに変更すると、次のように進みます。
# chcon -t apmd_exec_t /etc/acpi/actions/lid.sh
/home/user/lid.txt
また、タグが付けられているか、home_t
他のファイルへの書き込みに問題がある可能性があります。あなたのサービスは次のように書くことができますapmd_tmp_t
。
$ sesearch -A -s apmd_t -p write /etc/selinux/targeted/policy/policy.*
allow apmd_t apmd_tmp_t : file { ioctl read write create getattr setattr lock append unlink link rename open } ;
したがって、ターゲットファイルのコンテキストを次のように変更した場合apmd_tmp_t
:
# chcon -t apmd_tmp_t /home/user/lid.txt
このソリューションは永久的ではありません。より正しいアプローチは、これらのファイルとコンテキストを扱う独自のポリシーを定義するか、デフォルトのコンテキストがある場所にファイルを移動することです。監査(ausearch -m AVC
およびaudit2allow
ユーティリティ)から支援を受けることができるはずです。問題が解決しない場合はお知らせください。