この行を減らす方法を見つけようとしています(すでにCI_PRIVATE_SSH_KEY
設定されています)。
mkdir -p "${HOME}/.ssh/"
chmod 700 "${HOME}/.ssh/"
echo "${CI_PRIVATE_SSH_KEY}" > "${HOME}/.ssh/id_rsa"
chmod 600 "${HOME}/.ssh/id_rsa"
これが私が今まで持っているものです:
(umask 077; mkdir -p "${HOME}/.ssh/"; echo "${CI_PRIVATE_SSH_KEY}" > "${HOME}/.ssh/id_rsa")
group
ただし、+権限なしでディレクトリが作成されたため、これは正しく機能しませんother
。
だから私の質問は:ディレクトリとファイルをumask
作成するための値があります(デフォルトはと仮定しています)?700
600
0022
私もそうしてみましたが、
177
それもできませんね。
答え1
@Jeff Schallerに同意します。 chmodはumaskに比べて明確に表示されます。演算子でライナーを構築
し、ディレクトリのデフォルト権限を644に変更します。 bashは、演算子の左から右にコマンドを実行しようとし、すべての「左」コマンドがステータス0を返す場合にのみ続行します。&&
.ssh
&&
mkdir -p "${HOME}/.ssh/" && chmod 644 "${HOME}/.ssh/" && echo "${CI_PRIVATE_SSH_KEY}" > "${HOME}/.ssh/id_rsa" && chmod 600 "${HOME}/.ssh/id_rsa"
またはumask .ssh
133、177キー、
(umask 133; mkdir -p "${HOME}/.ssh/";umask 177; echo "${CI_PRIVATE_SSH_KEY}" > "${HOME}/.ssh/id_rsa")
答え2
umask 077は次のことを行います。
- 権限 700 でディレクトリを作成する
- 権限が600のファイルを作成します。
➜ umask 077
➜ mkdir foo; ls -ld foo
drwx------ 2 richard staff 64 13 Oct 12:42 foo
➜ touch foo/bar; ls -l foo/bar
-rw------- 1 richard staff 0 13 Oct 12:42 foo/bar