ubuntu 같은 경우 root로 로그인을 할 수 없는게 기본 정책이다.(sudo passwd 하면 root 비번 만들어 진다.)
이럴 경우 root 권한이 필요한 명령어의 경우 sudo 로 실행하게 되는데 이때 리다이렉션이 문제이다.
예를 들어 test 란 파일이 있다. 이 파일의 소유주와 그룹은 root 이다. 이때 이 파일에 "hello" 란 글을 쓰고 싶다.
이때 우리는 echo "hello" > test 라고 실행한다. 혹은 sudo echo "hello" > test 라고 실행할 것이다. 이렇게 실행하면 아래와 같은 경고가 발생한다.
user@a$ echo "hello" > test |
이럴때는 tee 란 명령어를 이용하자. 이 명령어는 리다이렉션하고 하는 일이 동일하다. 표준입력을 파일에 저장한다. 다른 점은 리다이렉션은 쉘내장명령어도 tee는 그냥 명령어다.
user@a$ echo "hello" | sudo tee test |
아주 잘 된다.
또한 root 사용이 불가능 하기 때문에 원격지 장비의 root 폴더에 파일을 전송하기가 매우 까다롭다.
scp 를 이용해도 root 사용 불가기 때문에 scp 로 /tmp 폴더에 파일 이동후 ssh 로 연결하여 파일을 mv 로 옮기는 작업을 한다.
이렇게 하지 말고 아래의 방법을 사용하라.
ssh test-server "sudo tee test.conf" < test.conf |
아 물론 이 방법을 사용하기 위해서는 패스워드 없이 sudo 명령을 사용할 수 있도록 설정을 해야한다. ssh 로 즉시 명령 실행행시 terminal 이 지정되지 않기 때문에 패스워드를 입력할 수 없어 오류 메세지가 발생한다. sudo 설정은 블로그에 정리 되어 있다.
'학습자료(~2017) > 리눅스' 카테고리의 다른 글
sudo 사용하는 환경에서 원격지에 파일 보내기 (sudo , scp) (0) | 2013.08.08 |
---|---|
[linux] 패스워드 없이 sudo 실행하기 (0) | 2013.08.08 |
[linux] ubuntu 에서 p255p1 을 eth0로 바꾸기, udev rule eth0 (0) | 2013.08.07 |
[Linux] netatalk 2.2.1 (ubuntu) - appletalk 프로토콜 지원 리눅스 프로그램 (0) | 2013.07.31 |
[linux] avahi 란? 활용 (zeroconf , bonjour) (0) | 2013.07.30 |