

postfixでmail受信時にaliasesでコマンドを実行しようとしています。  
コマンド実行用に作成したmail_recv.shは呼び出せているのですが、shの中でdockerコマンド（例:docker ps
-a）を実行すると以下のエラーになります。

[code]

    permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock
    
[/code]

/var/run/docker.sock
のアクセス権を変更したら解決はできそうなのですが、なぜ、現状のアクセス権で実行できないのかがわかりませんので、知見のある方ご教示をお願いします。

### 状況詳細

ユーザ:ken として、bashからmail_recv.shを実行するとdockerコマンドも正常に処理できます。

確認のために、メール受信時の mail_recv.sh 内で各種コマンドを実行しました。  
なお、環境変数もexportで正常に実行できる状態に合わせているつもりです。

whoami ken

<ps -aux 抜粋>

以下のような出力となっています。

[code]

    postfix    64384  0.0  0.4  41300  8104 ?        S    08:41   0:00 local -t unix
    ken        64385  0.0  0.0   2888   964 ?        Ss   08:41   0:00 sh -c  /home/ken/mail_recv.sh > /home/ken/scriptlog.txt 2>&1
    ken        64386  0.0  0.1   4360  3240 ?        S    08:41   0:00 bash /home/ken/mail_recv.sh
    
    Current PID: 64386
    Parent PIDs:（プロセスの親を遡りました）
    64385
    64384
    61792
    1
    
[/code]

ken、postfix ともにdockerグループになっています。

[code]

    docker:x:999:ken,postfix
    
[/code]

#### Docker ソケットのアクセス権

dockerグループならアクセスできるはず

[code]

    srw-rw---- 1 root docker 0  9月 13 12:26 /var/run/docker.sock
    
[/code]

※なお、docker.sockを 777 に変更すると正常に実行できます。

postfixのmain.cf で、default_privs = ken と設定しています。


CC BY-SA 4.0
2023-09-14T00:41:52.703
96208
2023-09-14T01:26:31.577
2023-09-14T01:26:31.577
3060
59779
question
docker postfix
postfixのmail受信時にaliasesでコマンドを実行していますが、dockerコマンドが実行できずに困っています。