Назад | Перейти на главную страницу

Кажется, не удается создать файл в bash

Я пытаюсь использовать этот (под учетной записью root) код в debian 7.

#!/bin/bash

cat > /root/.ssh/github.id_rsa << EOF
-----BEGIN RSA PRIVATE KEY-----
XYZ...
-----END RSA PRIVATE KEY-----
EOF
chmod 600 /root/.ssh/github.id_rsa

Когда я потом перехожу к этой папке, он говорит мне, что ее не существует. Я проверил и дважды проверил, но не могу понять, что делаю не так.

РЕДАКТИРОВАТЬ: Когда я запускаю команду вручную, кажется, что она работает! Но я пытаюсь запустить это как часть сценария оболочки.

В .ssh папка, вероятно, не существовала / не существовала при первом запуске команды. Самый безопасный вариант - добавить команду перед cat который проверяет / создает папку:

#!/bin/bash

mkdir -p /root/.ssh

chmod 700 /root/.ssh
cat > /root/.ssh/github.id_rsa << EOF
<some content>
EOF
chmod 600 /root/.ssh/github.id_rsa