无法使用sudo创建目录

时间:2018-10-29 01:21:14

标签: bash sudo

问题

为什么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}"  

1 个答案:

答案 0 :(得分:3)

太多qouting。 sudo命令不会重新标记命令:

sudo -i -u ${USER} mkdir "${AUTH_KEY_DIR}"

它无法以相同的方式创建目录:

"mkdir ${AUTH_KEY_DIR}"

将尝试查找名为mkdir ${AUTH_KEY_DIR}的可执行文件并运行它。您要使用参数mkdir运行${AUTH_KEY_DIR}