원 격 ssh 루트 권한 파일 에 추가 내용

957 단어 shell>>
최근 서버 시스템 파일 에 내용 을 대량으로 추가 해 야 하기 때문에 예전 에는 sudo 로 직접 만 들 었 는데...
예 를 들 어 제 가 원 격 으로 서버 의/tmp/에 파일 test. txt 를 만 들 고 이 컴퓨터 의 파일 을 서버 의/tmp/디 렉 터 리 에 전달 합 니 다.
Mac:~ wangdong$ ssh backup1 "sudo touch /tmp/test.txt"

위의 명령 은 권한 이 맞지 않 지만 sudo 를 사용 하면 루트 권한 으로 실 행 됩 니 다. 문제 없습니다.
하지만 지금 은 시스템 의/etc/crontab 파일 에 새로운 crontab 내용 을 원 격 으로 추가 해 야 합 니 다. 위의 방법 을 사용 하면:
Mac:~ wangdong$ ssh backup1 "sudo echo "10 10 * * * root echo 123" >> /etc/crontab"
bash: /etc/crontab: Permission denied
Mac:~ wangdong$

오류 보고 에서 알 수 있 듯 이 힌트 는 bash 의 권한 오류 이지 만 명령 에 서 는 bash 를 사용 하지 않 았 습 니 다.
사실 사용 하 는 ">"은 bash 입 니 다. sudo 명령 은 echo 의 root 권한 만 주 었 을 뿐 ">"은 권한 이 없습니다.
bash - c 로 해결 할 수 있 습 니 다. 예 를 들 어:
Mac:~ wangdong$ ssh backup1 'sudo bash -c "echo "10 10 * * * root echo 123" >> /etc/crontab"'

이 정도 면 괜 찮 습 니 다.

좋은 웹페이지 즐겨찾기