この記事は公開から3年以上経過しています。
Linuxでroot権限で実行するコマンドのパラメータに標準入力のリダイレクトを使って文字列を直接渡すと
/dev/fd/63 No such file or directory
のようなエラーが発生するときの対応。
具体例では以下のようなOpenVPN(2.4.x)コマンド実行時に発生します。
sudo openvpn --config vpn-host.ovpn --auth-user-pass <(echo -e "vpn-user-name\nvpn-password")
原因
ファイルデスクリプタがroot権限で作成されないため。
対応
方法1
bash -c
でコマンドを実行する。
sudo bash -c 'openvpn --config vpn-host.ovpn --auth-user-pass <(echo -e "vpn-user-name\nvpn-password")'
方法2
su -c
でコマンドを実行する。
su -c 'openvpn --config vpn-host.ovpn --auth-user-pass <(echo -e "vpn-user-name\nvpn-password")'
以上です。