![SSH 스크립트를 통해 사용자를 추가하는 문제는 운영 체제 배포에 따라 다릅니다.](https://linux55.com/image/107721/SSH%20%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8%EB%A5%BC%20%ED%86%B5%ED%95%B4%20%EC%82%AC%EC%9A%A9%EC%9E%90%EB%A5%BC%20%EC%B6%94%EA%B0%80%ED%95%98%EB%8A%94%20%EB%AC%B8%EC%A0%9C%EB%8A%94%20%EC%9A%B4%EC%98%81%20%EC%B2%B4%EC%A0%9C%20%EB%B0%B0%ED%8F%AC%EC%97%90%20%EB%94%B0%EB%9D%BC%20%EB%8B%A4%EB%A6%85%EB%8B%88%EB%8B%A4..png)
안녕하세요, 이 스크립트에 문제가 있습니다:
bash: -c: line 0: syntax error near unexpected token `then'
bash: -c: line 0: `sudo -i if sudo cat /etc/*-release | grep Ubuntu; then echo "Ubuntu Server";'
하지만 구문에 어떤 문제가 있는지 알 수 없습니다.
#!/bin/bash -x
echo Enter server IP:
read server
scp /home/Zenoss/.ssh/authorized_keys ******@$server:/home/******
sshpass -p ******** ssh -t ******@$server sudo -i 'if sudo cat /etc/*-release | grep Ubuntu; then echo "Ubuntu Server";
sudo groupadd --gid 7000 zenoss;
sudo adduser --uid 7000 --gid 7000 --disabled-password --gecos "" zenoss;
sudo mkdir /home/zenoss/.ssh;
sudo mv /home/******/authorized_keys /home/zenoss/.ssh/;
sudo chmod 700 /home/zenoss/.ssh;
sudo chmod 600 /home/zenoss/.ssh/authorized_keys;
sudo chown -R zenoss /home/zenoss/.ssh;
sudo chgrp -R zenoss /home/zenoss/.ssh;
fi;
if sudo cat /etc/*-release | grep CENTOS; then echo "Centos Server";
sudo groupadd --gid 7000 zenoss;
sudo useradd -u 7000 -g 7000 zenoss;
sudo mkdir /home/zenoss/.ssh;
sudo mv /home/******/authorized_keys /home/zenoss/.ssh/;
sudo chmod 700 /home/zenoss/.ssh;
sudo chmod 600 /home/zenoss/.ssh/authorized_keys;
sudo chown -R zenoss /home/zenoss/.ssh;
sudo chgrp -R zenoss /home/zenoss/.ssh;
fi;
if sudo getenforce | grep Enforcing; then echo "SElinux is enforcing"; else echo "Selinux is not enforcing"; fi;
if sudo getenforce | grep Enforcing; then sudo restorecon -R -v /home/zenoss/.ssh; fi;
exit'
어떤 도움이라도 대단히 감사하겠습니다.
답변1
스크립트를 "sudo -i;"로 변경하여 작동하게 만들었습니다. 스크립트의 나머지 부분 'sudo -i 대신 스크립트의 나머지 부분'