SSH를 사용한 파일 전송 및 사용자 전환

SSH를 사용한 파일 전송 및 사용자 전환

SCP와 SFTP가 작동하지 않는 상황이 발생했습니다. SSH용 RTFM이 있지만 원하는 것을 찾을 수 없습니다.

시나리오는 파일을 서버로 전송하기 위해 먼저 파일을 사용자 디렉터리로 SCP로 지정한 다음 제한된 사용자 계정, SU를 사용하여 SSH를 통해 루트에 로그인한 다음 파일을 필요한 위치로 이동하는 것입니다.

서버가 루트 로그인을 허용하지 않기 때문에 SSH, SU를 사용하여 루트에 로그인하고 이 시스템에서 파일을 전송할 수 있는 방법이 있습니까?

사실 저는 지금까지 해왔던 앞뒤 운동보다 더 효과적인 운동을 찾고 있을 뿐입니다.

또한 주석에 있는 GUI 클라이언트 링크를 사용하여 Mac에서 이 기능을 활성화하고 로컬 컴퓨터에서 적절한 원격 디렉터리로 파일을 끌어다 놓을 수 있기를 바랍니다. SFTP GUI 클라이언트는 합리적인 선택처럼 보였지만 필요한 높은 사용자 권한으로 인해 필요한 작업을 수행할 수 없었습니다.

답변1

로컬 시스템에서 원하는 프레임워크를 만듭니다. 예를 들어, 파일을 foo원격 위치에 복사하려면 디렉터리를 만들고 그 안에 넣어야 /etc/foo합니다 . 그 다음에는 해골이 있습니다 . 이제 위 질문에 대한 설명에서 @Anthon이 제안한 대로 cron을 통해 이 작업을 수행할 수 있습니다.etcfootar

단계별:

원격 호스트에서 다음 스크립트를 생성합니다.

#!/bin/sh
DROP="/home/YOURUSERNAME/drop.tgz"
if [ ! -s "$DROP" ]; then exit 0; fi
cd /
tar -pzxf "$DROP" && rm "$DROP"

원격 호스트에서 루트로 실행되는 크론 작업에 스크립트를 추가합니다.

localhost에서 프레임을 생성하고 복사할 파일을 채웁니다.

mkdir -p etc
mkdir -p var/www
cp -a foo etc/
cp -a bar var/www/
tar -pzcf drop.tgz etc var
scp drop.tgz REMOTEHOST:
rm -rf drop.tgz etc var

drop.tgz이 파일은 다음에 루트의 cron이 실행될 때 추출됩니다. 여기에는 마음에 들지 않을 수도 있는 다양한 내용이 포함됩니다.

몇 개의 파일만 수정해야 한다고 가정하면, 더 안전한 옵션은 사용자 계정에 해당 파일( chown또는 둘 다 chgrp) 에 대한 쓰기 액세스 권한을 부여한 chmod g+w다음 scp직접 수정할 수 있는 것입니다.

관련 정보