为什么sudo无法创建带有错误的目录?
USER=ansible
AUTH_KEY_DIR="$(sudo -i -u ${USER} pwd)/.ssh"
AUTH_KEY_FILE="${AUTH_KEY_DIR}/.ssh/authorized_keys"
# ERROR >-bash: mkdir /home/ansible/.ssh: No such file or directory
sudo -i -u ${USER} "mkdir ${AUTH_KEY_DIR}" # <----- Error is caused here.
sudo -i -u ${USER} "touch ${AUTH_KEY_FILE}"
sudo -i -u ${USER} /bin/bash -c "mkdir ${AUTH_KEY_DIR}"
答案 0 :(得分:3)
太多qouting。 sudo
命令不会重新标记命令:
sudo -i -u ${USER} mkdir "${AUTH_KEY_DIR}"
它无法以相同的方式创建目录:
"mkdir ${AUTH_KEY_DIR}"
将尝试查找名为mkdir ${AUTH_KEY_DIR}
的可执行文件并运行它。您要使用参数mkdir
运行${AUTH_KEY_DIR}
。