Я должен скопировать файл с локального на удаленный сервер. Я использую rsync для этого с соединением без пароля. Я не могу изменить полномочия для файла после миграции.
Я использую эту команду.
rsync -ab --suffix _BKP"$(date +%Y%d%m)" --perms --chmod=ug+rwx,o+rx --chown=sai:sai /home/yesh/yesh_final_V1.sh yesh@myserver.com:/data001/yesh
yesh является также суперпользователем. Моя rsync версия является rsync-3.1.1-1.el7.rfx.x86_64.
Я делаю что-то не так? Раз так исправьте меня. Или есть ли какой-либо другой способ изменить полномочия на удаленном сервере с помощью sudo пользователя?
Примечание: Я не хочу входить в систему в сервер и изменение. Мне нужно это, чтобы быть сделанным от моего локального самого, вида выполнения из сценария.
Обычно, было бы достаточно просто использовать ssh напрямую, для одноразовой реализации.
, пока yesh является суперпользователем, и вы знаете пароль для yesh, вы можете сделать следующее для обновления через ssh.
ssh yesh@myserver.com
Ubuntu> sudo chmod 755 /home/yesh/yesh_final_V1.sh
Автор вопроса прокомментировал, что он хочет сделать это в форме сценария. Для этого вы можете использовать функцию «sshpass», которая должна присутствовать на главном компьютере.
sudo apt-get install sshpass
Чтобы использовать его, вам может пригодиться приведенный ниже пример сценария bash:
function scripted_remote_operation {
sshpass -f password.txt ssh -o StrictHostKeyChecking=no -t -t yesh@myserver.com -o StrictHostKeyChecking=no <<EOF
sudo chmod 755 /home/yesh/yesh_final_V1.sh
exit
EOF
}
Это может быть выполнено с главного компьютера как часть скрипта, автоматически входя в систему, внося изменения в соответствии с запросом. К сожалению, для этого потребуется отключить требование пароля для пользователей с правами администратора (НЕ РЕКОМЕНДУЕТСЯ).
Например, в каталоге
/etc/sudoers.d
Вы можете включить файл
010_ubuntu-nopasswd
с содержанием
root ALL=(ALL) NOPASSWD: ALL
Эта информация предоставляется только для ясности. Отключать пароль sudo на компьютере - это не очень хорошая идея.
Если файл установлен удаленно с владельцем yesh, тогда операция chmod может происходить без повышенных привилегий, а операция chown может быть включена в тот же sshpass скрипт.