匿名パイプの権限をどのように変更しますか?

匿名パイプの権限をどのように変更しますか?

パブリックストアにプライベートファイルを保持しないように、CI環境のスクリプトの一部として変数からSSHキーをロードするスクリプトがありますが、ssh-add権限エラーについて文句を言います。周りを見渡せないようです。)。だから私のアプローチは、動的に生成された匿名パイプの権限を変更する方法を見つけることでした。

たとえば、

$ stat <(:)
  File: ‘/dev/fd/63’
  Size: 0           Blocks: 0          IO Block: 512    fifo
Device: 397f3928h/964639016d    Inode: 818277067   Links: 0
Access: (0660/prw-rw----)  Uid: (  501/  kenorb)   Gid: (   20/   staff)
Access: 2015-10-10 22:33:30.498640000 +0100
Modify: 2015-10-10 22:33:30.498640000 +0100
Change: 2015-10-10 22:33:30.498640000 +0100
 Birth: 2015-10-10 22:33:30.498640000 +0100

権限を表示します0660。私は確認してみましたが、umaskあまり関係はないようです。

これは簡単なテストです(デフォルトではOS X、0660)。

$ ssh-add <(cat ~/.ssh/id_rsa)
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@         WARNING: UNPROTECTED PRIVATE KEY FILE!          @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0660 for '/dev/fd/63' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.

0500Linuxではデフォルトで動作しているようです。この権限はどこで制御されますか?

明らかに、匿名パイプを使用したいので、ファイルの権限を変更したくありません。

問題は次のとおりです。

パイプの権限を一時的に変更する方法は?

ベストアンサー1

これまで、名前付きFIFOを使用して次の解決策を見つけました。

$ mkfifo -m 600 fifo
$ cat ~/.ssh/id_rsa >fifo | ssh-add fifo
Identity added: fifo (fifo)

このオプションは-mFIFO権限を設定します。

おすすめ記事