http://dl.dropbox.com/u/11210438/flockonus-stack.sh 에서 스크립트를 다운로드하여 실행 하고 싶습니다 . 내 생각에 wget을 사용하여 이름을 바꾸고 chmod하고 실행하는 것입니다.
우분투에서 그렇게하는 명령은 무엇입니까?
http://dl.dropbox.com/u/11210438/flockonus-stack.sh 에서 스크립트를 다운로드하여 실행 하고 싶습니다 . 내 생각에 wget을 사용하여 이름을 바꾸고 chmod하고 실행하는 것입니다.
우분투에서 그렇게하는 명령은 무엇입니까?
답변:
꼼꼼한
스크립트를 실행하기 전에 스크립트를 작성한 사람을 믿습니까?
예를 들어, 스크립트에이 내용이 포함될 것으로 예상 했습니까?
echo "brain1" > /etc/hostname
호스트 이름을 변경하려고 시도합니다.
나중에 참조 할 수 있도록 스크립트가 정확하고 악성이 아닌지 확인한 후 다음과 같이 한 줄로 실행할 수 있습니다.
wget -O - http://dl.dropbox.com/u/11210438/flockonus-stack.sh | bash
그러나 처음으로 실행하기 전에 별도로 다운로드하여 읽으십시오.
또한이 방법을 사용하면 다운로드 한 스크립트 내의 대화식 프롬프트가 제대로 작동하지 않을 수 있습니다.
apt-get install
라인? 경우 apt-get
여분의 종속성을 설치합니다, 당신을 물어볼 것, 그리고 그것을 그냥 종료됩니다 수없는 경우 안전을 위해. 명령 행 인수에 모든 종속 패키지를 추가하거나 다음을 추가하십시오 -y
.apt-get -y install...
비 대화식 스크립트
wget -O - http://website.com/my-script.sh | bash
이 방법을 사용하면 대화식 스크립트가 작동하지 않습니다.
대화식 스크립트
대화 형 스크립트를 작동 시키려면 다음을 사용할 수 있습니다.
bash <(wget -qO- http://website.com/my-script.sh)
루트로 실행해야하는 대화식 스크립트
경고 : 이것은 매우 위험합니다. 권장하지 않습니다.
sudo su -c "bash <(wget -qO- http://website.com/my-script.sh)" root
sudo bash
사용 <(...)
하면 가상 파일이 생성되고 루트 설명 인스턴스에서 파일 디스크립터에 액세스 할 수 없으므로 단순하게 사용할 수 없습니다 . 가상 파일을 읽어야하는 동일한 사용자에서 실행해야하므로 루트 사용자 쉘 내에서 자체 명령으로 전송해야합니다.
그 대본은 나에게서 왔고 안전합니다 .. 한 줄짜리를 좋아했지만, 실행되지 않은 대화식 선이 있습니다. 왜 그럴까요?
apt-get에 의해 호출 된 dpkg는 stdin을 플러시합니다. 과 같은 명령을 사용하는 경우 curl blah | bash
기본적으로 STDIN을 통해 페이지 내용을 bash로 보냅니다. 명령 중 하나가 apt-get이고 실행되면 다른 모든 항목이 플러시됩니다.
트릭은 이와 같은 명령을 사용하는 것 apt-get install --yes denyhosts </dev/null
입니다. 이것은 apt-get에게 다른 입력을 제공하고 나머지 스크립트 대신 / dev / null을 플러시합니다.
원격 스크립트를 통해 무언가를 설치하는 완전한 예를 보려면이 스크립트를보고 거부 호스트 를 설정하십시오
레코드의 경우 wget보다 curl을 선호하지만 wget도 괜찮습니다.
이 모든 예에는 상당히 중요한 요점이 없습니다. url을 사용하는 경우 사용자 http://dl.dropbox.com/u/11210438/flockonus-stack.sh
와 보관 용 계정 사이의 네트워크 경로에있는 모든 사람이 스크립트를 수정할 수 있으므로 다운로드 할 때마다 스크립트를 감사해야합니다. http s dldl.dropbox.com/u/11210438/flockonus-stack.sh로 전환하면 해당 소스가 불안정 해집니다.
(Dropbox는 http URL을 https로 리디렉션하려고 시도하지만 네트워크 공격의 경우 wget은 실제 보관 용 계정과 통신하지 않으며 리디렉션을 볼 수 없습니다)
wget으로 지정한대로 간단히 다운로드 한 다음 직접 실행하십시오. 다운로드하려는 스크립트에 변수를 사용하고 변수를 사용할 수는 있지만 트릭을 수행합니다.
예를 들면 다음과 같습니다.
!#/bin/bash
#Change to temp directory
cd /tmp
#Download file using wget
wget http://dl.dropbox.com/u/11210438/flockonus-stack.sh
#Execute the file
sh flockonus-stack.sh
echo "brain1" > /etc/hostname
쉽게 할 수 있습니다rm -rf /
.