root権限のLinuxコマンドで標準入力リダイレクト使用時に発生する「/dev/fd/63」エラーの回避方法

この記事は公開から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")'

以上です。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする