ฉันต้องการดาวน์โหลดสคริปต์จาก: http://dl.dropbox.com/u/11210438/flockonus-stack.shและดำเนินการ ฉันเดาว่าใช้ wget เปลี่ยนชื่อ chmod มันและดำเนินการ
คำสั่งสำหรับการทำเช่นนั้นบน Ubuntu คืออะไร?
ฉันต้องการดาวน์โหลดสคริปต์จาก: http://dl.dropbox.com/u/11210438/flockonus-stack.shและดำเนินการ ฉันเดาว่าใช้ wget เปลี่ยนชื่อ chmod มันและดำเนินการ
คำสั่งสำหรับการทำเช่นนั้นบน Ubuntu คืออะไร?
คำตอบ:
ระมัดระวัง
ก่อนเรียกใช้สคริปต์คุณเชื่อถือคนที่เขียนหรือไม่
ตัวอย่างเช่นคุณคาดหวังให้สคริปต์มีหรือไม่
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
เนื่องจากการใช้<(...)
จะสร้างไฟล์เสมือนและตัวอธิบายไฟล์นั้นจะไม่สามารถเข้าถึงได้จากอินสแตนซ์ของ bash ของรูท จะต้องดำเนินการกับผู้ใช้รายเดียวกันที่จำเป็นต้องอ่านไฟล์เสมือนดังนั้นจึงต้องส่งคำสั่งของตัวเองในเชลล์ผู้ใช้รูท
สคริปต์นั้นมาจากฉันมันปลอดภัย .. รักหนึ่งสายการบิน แต่มันมีบางสายการโต้ตอบที่ไม่ได้ทำงาน .. ไม่ได้ทำไม?
เมื่อ dpkg ทำงานเรียกโดย apt-get มันจะล้างข้อมูล stdin หากคุณใช้คำสั่งเช่นcurl blah | bash
นั้นโดยทั่วไปคุณจะส่งเนื้อหาของหน้าเว็บเพื่อทุบตีผ่าน STDIN หากหนึ่งในคำสั่งของคุณคือ apt-get แล้วทำงานทุกอย่างอื่นจะถูกลบทิ้ง
apt-get install --yes denyhosts </dev/null
เคล็ดลับคือการใช้คำสั่งเช่นนี้ สิ่งนี้จะช่วยให้ได้รับอินพุตที่แตกต่างกันและมันจะล้าง / dev / null แทนสคริปต์ที่เหลือของคุณ
หากคุณต้องการดูตัวอย่างที่สมบูรณ์ของการติดตั้งบางอย่างผ่านสคริปต์ระยะไกลคุณอาจต้องการดูสคริปต์นี้เพื่อตั้งค่า denyhosts
สำหรับบันทึกฉันชอบขดมากกว่า wget สำหรับเรื่องนี้ แต่ wget ก็ควรจะดี
#!/bin/sh
if [ ! -f "/tmp/flockonus-stack.sh" ]
then
wget -O /tmp/flockonus-stack.sh http://dl.dropbox.com/u/11210438/flockonus-stack.sh
fi
sh /tmp/flockonus-stack.sh
ตัวอย่างทั้งหมดเหล่านี้หายไปเป็นจุดสำคัญ หากคุณใช้ url http://dl.dropbox.com/u/11210438/flockonus-stack.sh
คุณจะต้องตรวจสอบสคริปต์ทุกครั้งที่ดาวน์โหลดเพราะทุกคนสามารถแก้ไขได้บนเส้นทางเครือข่ายระหว่างคุณและดรอปบ็อกซ์ หากคุณเปลี่ยนไปใช้http s : //dl.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 /