Измените владельца по ssh с sudo пользователем

Я должен скопировать файл с локального на удаленный сервер. Я использую 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 пользователя?

Примечание: Я не хочу входить в систему в сервер и изменение. Мне нужно это, чтобы быть сделанным от моего локального самого, вида выполнения из сценария.

0
задан 12 November 2018 в 16:06

1 ответ

Обычно, было бы достаточно просто использовать ssh напрямую, для одноразовой реализации.

Однократная операция

, пока yesh является суперпользователем, и вы знаете пароль для yesh, вы можете сделать следующее для обновления через ssh.

ssh as yesh (предполагается, что у вас есть пароль).

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 на компьютере - это не очень хорошая идея.

Возможный ответ без sudo на удаленной машине

Если файл установлен удаленно с владельцем yesh, тогда операция chmod может происходить без повышенных привилегий, а операция chown может быть включена в тот же sshpass скрипт.

0
ответ дан 27 October 2019 в 04:13

Другие вопросы по тегам:

Похожие вопросы: