นี่คือคำสั่ง schroot ที่สามารถเรียกใช้ในผู้ให้บริการโฮสต์ฟรีของ OnWorks โดยใช้เวิร์กสเตชันออนไลน์ฟรีของเรา เช่น Ubuntu Online, Fedora Online, โปรแกรมจำลองออนไลน์ของ Windows หรือโปรแกรมจำลองออนไลน์ของ MAC OS
โครงการ:
ชื่อ
schroot - เข้าสู่สภาพแวดล้อม chroot อย่างปลอดภัย
เรื่องย่อ
ชรูท [-h|--ช่วยด้วย | -V|--รุ่น | -l|--รายการ | -i|--ข้อมูล | --การกำหนดค่า | --ที่ตั้ง |
--automatic-เซสชัน | -b|--เริ่มต้น-เซสชั่น | --recover-เซสชัน | -r|--run-เซสชัน |
-e|--สิ้นสุดเซสชัน] [-f|--บังคับ] [-n ชื่อเซสชัน|--ชื่อเซสชัน=ชื่อเซสชัน] [-d
ไดเรกทอรี|--ไดเรกทอรี=ไดเรกทอรี] [-u ผู้ใช้งาน|--ผู้ใช้=ผู้ใช้งาน] [-p|--รักษาสิ่งแวดล้อม] [-s
เปลือก|--เชลล์=เปลือก] [-q|--เงียบ | -v|--รายละเอียด] [-c โครต|--chroot=โครต | [--ทั้งหมด |
--ออล-โครตส์ | --all-แหล่งที่มา-chroots | --all-เซสชัน] [--exclude-นามแฝง]]
[-o|--ตัวเลือก=คีย์=ค่า] [--] [คำสั่ง [ อาร์จี1 [ อาร์จี2 [ อาร์เจน-
DESCRIPTION
ชรูท อนุญาตให้ผู้ใช้รันคำสั่งหรือล็อกอินเชลล์ในสภาพแวดล้อม chroot ถ้าไม่
คำสั่งถูกระบุ เชลล์การเข้าสู่ระบบจะเริ่มต้นในการทำงานปัจจุบันของผู้ใช้
ไดเร็กทอรีภายใน chroot
คำสั่งนี้เป็นโปรแกรม บวกกับอาร์กิวเมนต์ที่เป็นทางเลือกได้มากเท่าที่ต้องการ แต่ละอาร์กิวเมนต์อาจ
จะยกมาต่างหาก
ไดเร็กทอรีที่รันคำสั่งหรือล็อกอินเชลล์ขึ้นอยู่กับบริบท ดู
--ไดเรกทอรี ตัวเลือกด้านล่างสำหรับคำอธิบายที่สมบูรณ์
การใช้งาน chroot ทั้งหมดจะถูกบันทึกไว้ในบันทึกของระบบ ในบางกรณี ผู้ใช้
อาจจำเป็นต้องตรวจสอบตัวเอง ดูส่วน “การยืนยันตัวตน", ด้านล่าง.
หากไม่มีการระบุ chroot ชื่อ chroot หรือชื่อแทน 'default' จะถูกใช้เป็นข้อมูลสำรอง
ซึ่งเทียบเท่ากับ “--chroot=default”
ภาพรวม
มักมีความจำเป็นต้องเรียกใช้โปรแกรมในสภาพแวดล้อมเสมือนจริงมากกว่าบนโฮสต์
ระบบโดยตรง. ไม่เหมือนกับระบบเวอร์ชวลไลเซชันอื่นๆ เช่น ตรม or Xen, schroot ไม่
จำลองทั้งระบบ มันจำลองระบบไฟล์เท่านั้นและบางส่วนของ
ระบบไฟล์อาจยังคงแชร์กับโฮสต์ จึงรวดเร็ว น้ำหนักเบา และ
ยืดหยุ่นได้. อย่างไรก็ตาม มันไม่ได้จำลองส่วนอื่น ๆ ของระบบ เช่น แชร์
หน่วยความจำ เครือข่าย อุปกรณ์ ฯลฯ และอื่นๆ อาจมีความปลอดภัยน้อยกว่าระบบอื่นๆ ทั้งนี้ขึ้นอยู่กับ
ตามวัตถุประสงค์ในการใช้งาน ตัวอย่างการใช้งานที่มีอยู่สำหรับ schroot ได้แก่:
· เรียกใช้โปรแกรมที่ไม่น่าเชื่อถือในแซนด์บ็อกซ์เพื่อไม่ให้รบกวนไฟล์บน
ระบบโฮสต์ อาจใช้เพื่อจำกัดความเสียหายของบริการที่ถูกบุกรุก
ทำร้ายเจ้าบ้านได้
· การใช้ a กำหนด or ปลาเดยส์ สิ่งแวดล้อมเพื่อรับประกันการทำซ้ำและ
ความสมบูรณ์ของงานที่กำหนด
· การใช้ระบบปฏิบัติการรุ่นต่างๆ หรือแม้แต่ระบบปฏิบัติการที่แตกต่างกัน
ระบบทั้งหมด เช่น GNU/Linux distributions ที่แตกต่างกัน
· การรันโปรแกรม 32 บิตโดยใช้ chroot 32 บิตบนระบบโฮสต์ 64 บิต
·สร้างแพ็คเกจ Debian โดยอัตโนมัติโดยใช้ สร้าง(1) ซึ่งสร้างแต่ละแพ็คเกจใน
สแน็ปช็อต chroot ดั้งเดิมเมื่อใช้สแน็ปช็อต LVM หรือยูเนียน
· รองรับหลายอิมเมจระบบในการตั้งค่าคลัสเตอร์ โดยจะแก้ไขฐาน
ภาพใช้เวลานานและ/หรือสนับสนุนการกำหนดค่าที่จำเป็นทั้งหมดที่จำเป็นโดย
ผู้ใช้เป็นเรื่องยาก: chroot ที่แตกต่างกันสามารถรองรับการกำหนดค่าที่แตกต่างกันทั้งหมด
จำเป็น และผู้ใช้คลัสเตอร์อาจได้รับสิทธิ์เข้าถึง chroots ที่พวกเขาต้องการ (ซึ่งสามารถ
รวมการเข้าถึงรูทสำหรับผู้ใช้ที่เชื่อถือได้เพื่อรักษาภาพของตัวเอง)
chroot อาจใช้เป็นรูทโดยตรงโดยการรัน โครต(8) แต่ผู้ใช้ทั่วไปไม่สามารถ
เพื่อใช้คำสั่งนี้ ชรูท อนุญาตให้เข้าถึง chroots สำหรับผู้ใช้ทั่วไปโดยใช้ตัวเดียวกัน
กลไก แต่มีคุณสมบัติเพิ่มเติมหลายประการ ในขณะที่ schroot ใช้ไดเร็กทอรีเป็น a
chroot เหมือน โครต(8) ไม่จำเป็นต้องเป็นไดเร็กทอรีปกติใน
ระบบไฟล์ แม้ว่าจะเป็นค่าเริ่มต้น แต่ chroot ยังสามารถสร้างขึ้นจากไฟล์ a
ระบบไฟล์ รวมถึงสแน็ปช็อต LVM และ Btrfs และการเมานต์ลูปแบ็ค หรือประกอบด้วยa
การซ้อนทับของสหภาพแรงงาน ผู้ใช้ขยายได้ขอบเขตสำหรับการสร้าง chroots จากที่แตกต่างกัน
แหล่งที่มาจำกัดด้วยจินตนาการของคุณเท่านั้น schroot ดำเนินการตรวจสอบการอนุญาตและ
อนุญาตให้ตั้งค่าอัตโนมัติเพิ่มเติมของสภาพแวดล้อม chroot เช่นการติดตั้งเพิ่มเติม
ระบบไฟล์และงานการกำหนดค่าอื่นๆ การตั้งค่าอัตโนมัตินี้ทำผ่าน
การกระทำของ การติดตั้ง สคริปต์ ซึ่งอาจปรับแต่งและขยายเพื่อดำเนินการใด ๆ ได้
ที่จำเป็น. การดำเนินการทั่วไปรวมถึงการติดตั้งโฮมไดเร็กทอรีของผู้ใช้ การตั้งค่า
ฐานข้อมูลเครือข่ายและระบบ และแม้กระทั่งการเริ่มต้นบริการ ทั้งหมดนี้อีกครั้งโดยสิ้นเชิง
ปรับแต่งโดยผู้ดูแลระบบ สคริปต์การตั้งค่าทำงานสำหรับ chroot ทุกประเภท โดยมี
ยกเว้นประเภท 'ธรรมดา' ซึ่งเป็นประเภท chroot ที่ง่ายที่สุด ไม่มีการตั้งค่าอัตโนมัติ
คุณสมบัติเลย การกำหนดค่าของ schroot มีรายละเอียดเพิ่มเติมใน
schroot.conf(5)
OPTIONS
ชรูท ยอมรับตัวเลือกต่อไปนี้:
สถานะ
-h, --ช่วยด้วย
แสดงข้อมูลสรุปความช่วยเหลือ
-V, --รุ่น
พิมพ์ข้อมูลรุ่น
-l, --รายการ
แสดงรายการ chroots ที่มีอยู่ทั้งหมด
-i, --ข้อมูล
พิมพ์ข้อมูลโดยละเอียดเกี่ยวกับ chroots ที่ระบุ
--การกำหนดค่า
พิมพ์การกำหนดค่าของ chroots ที่ระบุ สิ่งนี้มีประโยชน์สำหรับการทดสอบว่า
การกำหนดค่าที่ใช้จะเหมือนกับไฟล์การกำหนดค่า ความคิดเห็นใด ๆ ใน
ไฟล์ต้นฉบับจะหายไป
--ที่ตั้ง
พิมพ์ตำแหน่ง (เส้นทาง) ของ chroots ที่ระบุ โปรดทราบว่า chroot ประเภทที่สามารถ
ใช้เฉพาะภายในเซสชันเท่านั้น จะไม่มีตำแหน่งจนกว่าจะเปิดใช้งาน
ทั่วไป ตัวเลือก
-q, --เงียบ
พิมพ์เฉพาะข้อความที่จำเป็น
-v, --รายละเอียด
พิมพ์ข้อความทั้งหมด
โชติ การเลือก
-c, --chroot=โครต
ระบุ chroot หรือเซสชันที่ใช้งานอยู่เพื่อใช้ ตัวเลือกนี้อาจใช้ได้หลายครั้ง
เพื่อระบุมากกว่าหนึ่ง chroot ซึ่งในกรณีนี้ผลจะคล้ายกับ --ทั้งหมดส่วน
ชื่อ chroot อาจขึ้นต้นด้วย a namespace; ดูส่วน “โชติ namespaces"
ด้านล่าง
-a, --ทั้งหมด
เลือก chroots, chroots ต้นทาง และเซสชันที่ใช้งานอยู่ทั้งหมด เมื่อได้รับคำสั่ง
ระบุ คำสั่งจะถูกรันใน chroots ทั้งหมด, chroots ต้นทาง และ active
เซสชัน ถ้า --ข้อมูล ถูกใช้แล้ว แสดงข้อมูลเกี่ยวกับ chroots ทั้งหมด นี้
ตัวเลือกไม่เหมาะสมที่จะใช้กับเชลล์การเข้าสู่ระบบ (รันเมื่อไม่มีคำสั่งใด ๆ
ระบุไว้) ตัวเลือกนี้เทียบเท่ากับ “--all-chroots --all-source-chroots
--ทุกเซสชั่น”.
--ออล-โครตส์
เลือก chroots ทั้งหมด เหมือนกับ --ทั้งหมดยกเว้นแหล่งที่มา chroots และ active
เซสชันจะไม่ได้รับการพิจารณา
--all-เซสชัน
เลือกเซสชันที่ใช้งานอยู่ทั้งหมด เหมือนกับ --ทั้งหมดยกเว้นว่า chroots และ source
ไม่พิจารณา chroots
--all-แหล่งที่มา-chroots
เลือก chroots ต้นทางทั้งหมด เหมือนกับ --ทั้งหมดยกเว้นว่า chroots และ sessions
ไม่ได้รับการพิจารณา
--exclude-นามแฝง
อย่าเลือกนามแฝงนอกเหนือจาก chroots สิ่งนี้ทำให้มั่นใจได้ว่ามีเพียง chroots จริงเท่านั้น
ถูกเลือกและแสดงเพียงครั้งเดียว
โชติ สิ่งแวดล้อม
-d, --ไดเรกทอรี=ไดเรกทอรี
เปลี่ยนไป ไดเรกทอรี ภายใน chroot ก่อนรันคำสั่งหรือล็อกอินเชลล์
If ไดเรกทอรี ไม่พร้อมใช้งาน schroot จะออกพร้อมกับสถานะข้อผิดพลาด
ลักษณะการทำงานเริ่มต้นจะเป็นดังนี้ (เส้นทางไดเรกทอรีทั้งหมดอยู่ภายใน chroot) NS
เชลล์ล็อกอินถูกรันในไดเร็กทอรีการทำงานปัจจุบัน หากไม่สามารถใช้ได้ก็
จะลอง $HOME (เมื่อ --รักษาสิ่งแวดล้อม ถูกใช้) แล้วบ้านของผู้ใช้
ไดเรกทอรีและ / ในทางกลับกัน chroot คำสั่งจะถูกรันใน current . เสมอ
ไดเร็กทอรีการทำงานภายใน chroot หากไม่มีไดเร็กทอรี
schroot จะออกพร้อมกับสถานะข้อผิดพลาด
-u, --ผู้ใช้=ผู้ใช้งาน
เรียกใช้ในฐานะผู้ใช้อื่น ค่าเริ่มต้นคือการเรียกใช้ในฐานะผู้ใช้ปัจจุบัน หากจำเป็น
ผู้ใช้อาจต้องตรวจสอบตัวเองด้วยรหัสผ่าน ต่อไป
ข้อมูล โปรดดูส่วน “การยืนยันตัวตน", ด้านล่าง.
-p, --รักษาสิ่งแวดล้อม
รักษาสภาพแวดล้อมของผู้ใช้ภายในสภาพแวดล้อม chroot ค่าเริ่มต้นคือto
ใช้สภาพแวดล้อมที่สะอาด ตัวเลือกนี้จะคัดลอกสภาพแวดล้อมของผู้ใช้ทั้งหมดและตั้งค่า
ในเซสชั่น ตัวแปรสภาพแวดล้อมที่อนุญาตนั้นขึ้นอยู่กับบาง
ข้อ จำกัด; ดูส่วน “สภาพสิ่งแวดล้อม", ด้านล่าง.
-s, --เชลล์=เปลือก
ใช้ เปลือก เป็นเชลล์การเข้าสู่ระบบ เมื่อรันเชลล์การเข้าสู่ระบบมีศักยภาพจำนวนหนึ่ง
เชลล์จะได้รับการพิจารณาตามลำดับนี้: คำสั่งในสภาพแวดล้อมของเชลล์
ตัวแปร (ถ้า --รักษาสิ่งแวดล้อม ใช้หรือ อนุรักษ์สิ่งแวดล้อม เปิดใช้งาน),
เชลล์ของผู้ใช้ในฐานข้อมูล 'passwd' / bin / bash และในที่สุดก็ bin / sh /. นี้
ตัวเลือกแทนที่รายการนี้ และจะใช้เชลล์ที่ระบุ ตัวเลือกนี้ด้วย
แทนที่ เปลือก คีย์การกำหนดค่า หากตั้งค่าไว้
-o, --ตัวเลือก=คีย์=ค่า
ตั้งค่าตัวเลือก ค่าของคีย์การกำหนดค่าที่เลือกใน schroot.conf อาจจะ
แก้ไขโดยใช้ตัวเลือกนี้ กุญแจจะต้องอยู่ใน ผู้ใช้แก้ไขคีย์
คีย์การกำหนดค่าใน schroot.conf, หรือเพิ่มเติม ผู้ใช้แก้ไขคีย์ คีย์ if
ทำงานเป็น (หรือเปลี่ยนเป็น) ผู้ใช้รูท คีย์และค่าที่ตั้งไว้ที่นี่จะถูกตั้งค่า
ในสภาพแวดล้อมของสคริปต์การตั้งค่า และอาจใช้เพื่อปรับแต่ง
chroot ต่อเซสชัน
เซสชั่น การปฏิบัติ
--automatic-เซสชัน
เริ่ม เรียกใช้ และสิ้นสุดเซสชันโดยอัตโนมัติ นี่คือการกระทำเริ่มต้น . ก็เช่นกัน
ไม่จำเป็นต้องระบุในการทำงานปกติ
-b, --เริ่มต้น-เซสชั่น
เริ่มเซสชั่น ตัวระบุเซสชันที่ไม่ซ้ำกัน (ID เซสชัน) ถูกส่งกลับใน standard
เอาท์พุท ต้องใช้ ID เซสชันเพื่อใช้ตัวเลือกเซสชันอื่นๆ สังเกตว่า
ตัวระบุเซสชันอาจระบุด้วย --ชื่อเซสชัน ตัวเลือก
--recover-เซสชัน
กู้คืนเซสชันที่มีอยู่ หากเซสชันที่มีอยู่ไม่พร้อมใช้งานสำหรับ
ตัวอย่าง ยกเลิกการต่อเชื่อมเนื่องจากการรีบูต ตัวเลือกนี้จะทำให้ session
กลับมาใช้งานได้อีกครั้ง เช่น ติดตั้งใหม่ มีการระบุ ID เซสชัน
กับ --chroot ตัวเลือก
-r, --run-เซสชัน
เรียกใช้เซสชันที่มีอยู่ รหัสเซสชันถูกระบุด้วย --chroot ตัวเลือก
-e, --สิ้นสุดเซสชัน
สิ้นสุดเซสชันที่มีอยู่ รหัสเซสชันถูกระบุด้วย --chroot ตัวเลือก
เซสชั่น ตัวเลือก
-n, --ชื่อเซสชัน=ชื่อเซสชัน
ตั้งชื่อเซสชัน ที่ระบุ ชื่อเซสชัน แทนที่ชื่อเซสชันเริ่มต้น
มี ID เซสชันที่สร้างขึ้นโดยอัตโนมัติ ชื่อเซสชันต้องไม่
มีตัวระบุเนมสเปซ เนื่องจากเซสชันจะถูกสร้างขึ้นภายใน . เสมอ
'เซสชัน:' เนมสเปซ ชื่อเซสชันยังอยู่ภายใต้การตั้งชื่อ chroot
ข้อจำกัดที่บันทึกไว้ใน schroot.conf(5)
-f, --บังคับ
บังคับใช้เซสชัน แม้ว่าจะล้มเหลวก็ตาม สามารถใช้เพื่อ
บังคับให้สิ้นสุดเซสชัน แม้ว่าจะมีผู้ใช้ที่ใช้งานอยู่ก็ตาม นี้ไม่ได้รับประกันว่า
เซสชั่นจะสิ้นสุดลงอย่างหมดจด ระบบไฟล์ไม่สามารถยกเลิกการต่อเชื่อมได้ ตัวอย่างเช่น
เครื่องสกัด
-- สิ้นสุดตัวเลือก ใช้เพื่อระบุจุดสิ้นสุดของตัวเลือก schroot ต่อไปนี้
ตัวเลือกจะถูกส่งต่อไปยังคำสั่งที่กำลังรัน แทนที่จะส่งไปยัง schroot
การตรวจสอบ
หากผู้ใช้ไม่ใช่ผู้ใช้ที่ได้รับอนุญาต หรือเป็นสมาชิกของกลุ่มที่ได้รับอนุญาต (หรือหากเปลี่ยนเป็น
root ผู้ใช้ root ที่อนุญาตหรือกลุ่ม root ที่อนุญาตสำหรับ chroot ที่ระบุ
การอนุญาตจะถูกปฏิเสธทันที หากสลับผู้ใช้และผู้ใช้เรียกใช้
คำสั่งมีการเข้าถึง ผู้ใช้จะต้องตรวจสอบตัวเองโดยใช้
ข้อมูลประจำตัวของผู้ใช้ที่ถูกเปลี่ยนไปใช้
ในระบบที่รองรับ Pluggable Authentication Modules (PAM) schroot จะใช้ PAM for
การรับรองความถูกต้องและการอนุญาตของผู้ใช้ หากและเมื่อจำเป็น schroot จะพร้อมท์ให้
รหัสผ่าน หากไม่มี PAM การตรวจสอบสิทธิ์ทั้งหมดจะล้มเหลวโดยอัตโนมัติ (ผู้ใช้
การเปลี่ยนคือ ไม่ รองรับโดยไม่มี PAM)
โปรดทราบว่าเมื่อมีการใช้งาน PAM ผู้ใช้รูทจะไม่ได้รับสิทธิพิเศษใดๆ จาก
ค่าเริ่มต้นในโปรแกรม อย่างไรก็ตาม การกำหนดค่า PAM เริ่มต้นอนุญาตให้รูทเข้าสู่ระบบได้
ไม่มีรหัสผ่าน (pam_rootok.so) แต่สิ่งนี้อาจถูกปิดใช้งานเพื่อป้องกันการรูทจาก
เข้าถึง chroots ใด ๆ เว้นแต่ได้รับอนุญาตโดยเฉพาะ ในสถานการณ์เช่นนี้ รูทจะต้องเป็น
เพิ่มไปยังผู้ใช้หรือกลุ่มที่ได้รับอนุญาตเช่นเดียวกับผู้ใช้หรือกลุ่มอื่น ถ้า PAM ไม่ใช่
พร้อมใช้งาน ผู้ใช้รูทจะได้รับอนุญาตให้เข้าถึง chroot ทั้งหมด แม้ว่าจะไม่ได้เปิดเผยอย่างชัดเจนก็ตาม
ได้รับการเข้าถึง
โครต เนมสเปซ
namespace ข้อมูลเบื้องต้นเกี่ยวกับ
chroot มีสามประเภท: chroot ปกติ chroots ต้นทาง และ session
โครต chroot ประเภทต่าง ๆ เหล่านี้ถูกแยกออกเป็นที่แตกต่างกัน namespaces.
เนมสเปซเป็นคำนำหน้าชื่อ chroot ขณะนี้มีสามเนมสเปซ: 'chroot:',
'แหล่งที่มา:' และ 'เซสชัน:' ใช้ --รายการ --ทั้งหมด เพื่อแสดงรายการ chroots ทั้งหมดที่มีอยู่ทั้งหมด
เนมสเปซ เนื่องจาก ':' ถูกใช้เป็นตัวคั่นระหว่างชื่อเนมสเปซและ chroot มัน
ไม่อนุญาตให้ใช้อักขระนี้ในชื่อ chroot
ขึ้นอยู่กับการกระทำที่คุณร้องขอให้ schroot ดำเนินการ อาจค้นหา chroot ในหนึ่ง
ของสามเนมสเปซหรือเนมสเปซเฉพาะอาจระบุได้ ตัวอย่างเช่น
chroot ชื่อ "sid" จริง ๆ แล้วชื่อ "chroot:sid" หากรวมเนมสเปซไว้ แต่
เนมสเปซอาจถูกละเว้นสำหรับการดำเนินการส่วนใหญ่
แหล่ง chroot
chroot บางประเภท เช่น สแน็ปช็อต LVM และสแน็ปช็อต Btrfs มีการจัดการเซสชัน
สแน็ปช็อตคัดลอกเมื่อเขียนของ chroot สิ่งเหล่านี้ยังให้ แหล่ง โครต เพื่อให้ง่าย
เข้าถึงระบบไฟล์ที่ใช้เป็นแหล่งสำหรับสแนปชอต เหล่านี้เป็น chroots ปกติเช่น
ดีเพียงแค่ปิดการใช้งานสแนปชอต สำหรับ chroot ชื่อ “sid-snapshot” (เช่น กับ a
ชื่อเต็มของ "chroot:sid-snapshot") ก็จะมีแหล่งที่มาที่สอดคล้องกัน
chroot ชื่อ "source:sid-snapshot" เวอร์ชันก่อนหน้าของ schroot มีแหล่ง chroots
ด้วยคำต่อท้าย '-source' สิ่งเหล่านี้มีไว้เพื่อความเข้ากันได้ ในตัวอย่างนี้
สิ่งนี้จะเรียกว่า “chroot:sid-snapshot-source” ชื่อความเข้ากันได้เหล่านี้จะเป็น
ลดลงในเวอร์ชันอนาคต ดังนั้นโปรแกรมและสคริปต์ควรเปลี่ยนไปใช้เนมสเปซ-
ชื่อที่ผ่านการรับรองมากกว่าคำต่อท้ายแบบเก่า
เซสชั่น chroot
เซสชันทั้งหมดที่สร้างด้วย --เริ่มต้น-เซสชั่น ถูกวางไว้ในเนมสเปซ 'เซสชัน:' NS
เซสชั่นชื่อ with --ชื่อเซสชัน อาจมีชื่อใด ๆ แม้แต่ชื่อเดียวกับ chroot it
ถูกสร้างขึ้นจาก โดยจะต้องไม่ซ้ำกันภายในเนมสเปซนี้ นี่ไม่ใช่
อนุญาตใน schroot เวอร์ชันก่อนหน้าซึ่งไม่มีเนมสเปซ
สถานะ และ ผิดนัด namespaces
การดำเนินการทั้งหมดใช้ 'chroot:' เป็นเนมสเปซเริ่มต้น โดยมีการดำเนินการของเซสชันบางส่วนเป็น
ข้อยกเว้น --run-เซสชัน, --recover-เซสชัน และ --สิ้นสุดเซสชัน ใช้ 'เซสชัน:' เป็น
เนมสเปซเริ่มต้นแทน เนื่องจากการกระทำเหล่านี้ทำงานบนเซสชัน chroots ผลที่ได้คือ
ว่าโดยปกติเนมสเปซไม่จำเป็น ยกเว้นเมื่อคุณต้องการทำงานกับ chroot in
เนมสเปซอื่นที่ไม่ใช่ค่าดีฟอลต์ เช่น เมื่อใช้ chroot ต้นทาง วิธีทำ chroot
การเลือกที่ไม่คลุมเครือ สามารถใช้ชื่อเต็มรวมทั้งเนมสเปซได้เสมอ
แม้จะไม่ได้บังคับอย่างเข้มงวดก็ตาม
ประสิทธิภาพ
ประสิทธิภาพบนระบบไฟล์บางระบบ เช่น Btrfs ไม่ดีเมื่อรัน dpkg เนื่องจาก
จำนวนการดำเนินการ fsync ที่ดำเนินการ ซึ่งอาจบรรเทาได้ด้วยการติดตั้ง eatmydata
แพ็คเกจแล้วเพิ่ม eatmydata ลงใน คำสั่งคำนำหน้า คีย์การกำหนดค่าซึ่งปิดใช้งาน
การดำเนินการ fsync ทั้งหมด โปรดทราบว่าควรทำในสแน็ปช็อต chroots เท่านั้นโดยที่ data
การสูญเสียไม่ใช่ปัญหา สิ่งนี้มีประโยชน์เมื่อใช้ chroot สำหรับการสร้างแพ็คเกจ for
ตัวอย่าง.
DIRECTORY ความล้มเหลว
schroot จะเลือกไดเร็กทอรีที่เหมาะสมเพื่อใช้ภายใน chroot ขึ้นอยู่กับว่า
เชลล์ล็อกอินแบบโต้ตอบจะถูกใช้ หรือคำสั่งที่เรียกใช้ และนอกจากนี้ ถ้า
--ไดเรกทอรี ใช้ตัวเลือก ในกรณีที่รันคำสั่งโดยตรงหรือโดยชัดแจ้ง
การระบุไดเร็กทอรีจะใช้ไดเร็กทอรีเดียวเท่านั้นเพื่อความปลอดภัยและความสม่ำเสมอในขณะที่
สำหรับล็อกอินเชลล์ มีความเป็นไปได้หลายอย่างที่สามารถลองได้ ส่วนย่อยต่อไปนี้แสดงรายการ
ลำดับสำรองสำหรับแต่ละกรณี CWD คือไดเร็กทอรีการทำงานปัจจุบัน DIR คือ
ไดเร็กทอรีที่ระบุด้วย --ไดเรกทอรี.
เข้าสู่ระบบ เปลือก
┌────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────... ───────────────┐
│การเปลี่ยนแปลง │ │
│(โฮสต์ → Chroot) │ ความคิดเห็น │
├────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────... ───────────────┤
│CWD → CWD │ พฤติกรรมปกติ (ถ้า --ไดเรกทอรี ไม่ใช่ │
│ │ ใช้แล้ว) │
│CWD → $HOME │ หากไม่มี CWD และ │
│ │ -- รักษาสิ่งแวดล้อมถูกนำมาใช้ │
│CWD → passwd pw_dir │ ถ้า CWD ไม่มีอยู่ (หรือ │
│ │ --preserve-environment ถูกใช้และไม่มี │
│ │ $HOME มีอยู่) │
│CWD → / │ ไม่มีข้อใดกล่าวข้างต้น │
│ล้มเหลว │ ถ้า / ไม่มีอยู่ │
└────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────... ───────────────┘
คำสั่ง
┌─────────────────────────────────────────────────── ───────────┐
│การเปลี่ยนแปลง │ │
│(โฮสต์ → Chroot) │ ความคิดเห็น │
├─────────────────────────────────────────────────── ───────────┤
│CWD → CWD │ พฤติกรรมปกติ (ถ้า --ไดเรกทอรี ไม่ใช่ │
│ │ ใช้แล้ว) │
│ล้มเหลว │ หากไม่มี CWD │
└─────────────────────────────────────────────────── ───────────┘
ไม่ควรมีทางเลือกสำรองไม่ว่าในกรณีใดๆ
--ไดเรกทอรี มือสอง
┌─────────────────────────────────────────────────── ───────────┐
│การเปลี่ยนแปลง │ │
│(โฮสต์ → Chroot) │ ความคิดเห็น │
├─────────────────────────────────────────────────── ───────────┤
│CWD → DIR │ พฤติกรรมปกติ │
│ล้มเหลว │ ถ้า DIR ไม่มีอยู่ │
└─────────────────────────────────────────────────── ───────────┘
ไม่ควรมีทางเลือกสำรองไม่ว่าในกรณีใดๆ
การแก้จุดบกพร่อง
โปรดทราบว่า --debug=ประกาศ จะแสดงรายการทางเลือกภายในที่คำนวณสำหรับเซสชัน
ตัวอย่าง
รายการ ใช้ได้ chroot
% ชรูท -l↵
chroot:ค่าเริ่มต้น
chroot: etch
chroot:ซิด
chroot:การทดสอบ
chroot:ไม่เสถียร
เข้ามา ข้อมูล เกี่ยวกับ a โครต
% ชรูท -i -c SID↵
——— โครต ———
ชื่อซิด
คำอธิบาย Debian sid (ไม่เสถียร)
พิมพ์ธรรมดา
3 ลำดับความสำคัญ
ผู้ใช้ rleigh
สร้างกลุ่ม
ผู้ใช้รูท
สร้างกลุ่มราก
นามแฝงที่ไม่เสถียร unstable-sbuild unstable-p
owerpc-sbuild
ตัวกรองสภาพแวดล้อม ^(BASH_ENV|CDPATH|ENV|HOSTALIASES|I
FS|KRB5_CONFIG|KRBCONFDIR|KRBTKFILE|KRB_CONF|LD_.*|LOCALDOMA
ใน|NLSPATH|PATH_LOCALE|RES_OPTIONS|TERMINFO|TERMINFO_DIRS|TE
RMPATH)$
เรียกใช้สคริปต์การตั้งค่า true
การกำหนดค่าสคริปต์ ค่าเริ่มต้นของสคริปต์
เซสชันที่จัดการจริง
บุคลิกภาพ linux32
ที่ตั้ง /srv/chroot/sid
ใช้ --ทั้งหมด or -c หลายครั้งเพื่อใช้ chroots ทั้งหมดหรือหลายรายการตามลำดับ
เล่น คำสั่ง in a โครต
% ชรูท -c SID /ถัง/ลิตร↵
[sid chroot] รันคำสั่ง: “/ถัง/ลิตร"
CVS sbuild-chroot.c sbuild-session.h schroot.conf.5
Makefile sbuild-chroot.h schroot.1 schroot.conf.5.in
Makefile.am sbuild-config.c schroot.1.in
Makefile.in sbuild-config.h schroot.c
แพม sbuild-session.c schroot.conf
% ชรูท -c SID -- ls -1 | หัว -n 5↵
[sid chroot] รันคำสั่ง: “ls -1”
เกี่ยวกับ-NLS
ผู้เขียน
การทำสำเนา
ChangeLog
ติดตั้ง
ใช้ -- เพื่ออนุญาตให้ใช้ตัวเลือกที่ขึ้นต้นด้วย '-' หรือ '--' ในคำสั่งเพื่อทำงานใน chroot
ซึ่งจะป้องกันไม่ให้ถูกตีความว่าเป็นตัวเลือกสำหรับ schroot เอง โปรดทราบว่าด้านบน
บรรทัดถูกสะท้อนไปยังข้อผิดพลาดมาตรฐาน และบรรทัดที่เหลือไปยังเอาต์พุตมาตรฐาน นี่คือ
โดยเจตนาเพื่อให้โปรแกรมออกจากคำสั่งที่รันใน chroot อาจถูกไพพ์และ
เปลี่ยนเส้นทางตามต้องการ ข้อมูลจะเหมือนกับว่าคำสั่งถูกรันโดยตรงบน
ระบบโฮสต์
สวิตชิ่ง ผู้ใช้
% ชรูท -c SID -u ราก↵
รหัสผ่าน:
[sid chroot] (rleigh → root) การรันเชลล์การเข้าสู่ระบบ: “/ bin / bash"
#
หากผู้ใช้ 'rleigh' อยู่ใน ผู้ใช้รูท in /etc/schroot/schroot.confหรือกลุ่มใดกลุ่มหนึ่ง
เขาเป็นอยู่ใน กลุ่มรากพวกเขาจะได้รับอนุญาตให้เข้าถึงรูทโดยไม่ต้อง
การตรวจสอบสิทธิ์ แต่ขั้นตอนการอนุญาต PAM ยังคงใช้อยู่
การประชุม
อาจจำเป็นต้องใช้ chroot เพื่อเรียกใช้มากกว่าหนึ่งคำสั่ง โดยเฉพาะอย่างยิ่ง ที่ chroot เป็น
สร้างได้ทันทีจาก LVM LV หรือไฟล์บนดิสก์ จำเป็นต้องสร้าง chroot
ถาวรในขณะที่ทำงานที่กำหนด (หรือชุดของงาน) ถูกดำเนินการ มีเซสชันสำหรับสิ่งนี้
วัตถุประสงค์. สำหรับประเภท chroot อย่างง่าย เช่น 'ธรรมดา' และ 'ไดเรกทอรี' อาจสร้างเซสชันได้
แต่ไม่จำเป็นอย่างยิ่ง
เริ่มต้นด้วยการดู chroot ที่สามารถใช้งานเซสชันได้:
% ชรูท -i -c ด้านข้าง snap↵
——— โครต ———
ชื่อซิด-สแนป
คำอธิบาย Debian sid snapshot
พิมพ์ lvm-snapshot
3 ลำดับความสำคัญ
ผู้ใช้ทำ rleigh
สร้างกลุ่ม
ผู้ใช้รูท
Root Groups สร้างราก
นามแฝง
ตัวกรองสภาพแวดล้อม ^(BASH_ENV|CDPATH|ENV|HOSTALIASES|I
FS|KRB5_CONFIG|KRBCONFDIR|KRBTKFILE|KRB_CONF|LD_.*|LOCALDOMA
ใน|NLSPATH|PATH_LOCALE|RES_OPTIONS|TERMINFO|TERMINFO_DIRS|TE
RMPATH)$
เรียกใช้สคริปต์การตั้งค่า true
การกำหนดค่าสคริปต์ ค่าเริ่มต้นของสคริปต์
เซสชันที่จัดการจริง
ลินุกซ์บุคลิกภาพ
อุปกรณ์ /dev/hda_vg/sid_chroot
ตัวเลือกการเมานต์ -o atime,async,user_xattr
ผู้ใช้ที่มา
แหล่งที่มาของราก rleigh
ผู้ใช้รูทต้นทาง
ต้นทางกลุ่มราก rleigh
ตัวเลือกสแนปชอต LVM --ขนาด 2G -c 128
โปรดทราบว่า เซสชั่น การจัดการ ตัวเลือกถูกตั้งค่าเป็น 'จริง' นี่เป็นข้อกำหนดเพื่อที่จะ
ใช้การจัดการเซสชัน และได้รับการสนับสนุนโดยประเภท chroot ส่วนใหญ่ ต่อไปเราจะสร้างใหม่
เซสชัน:
% ชรูท -b -c ด้านข้าง snap↵
sid-snap-46195b04-0893-49bf-beb8-0d4ccc899f0f
รหัสเซสชันของเซสชันที่สร้างขึ้นใหม่จะถูกส่งคืนในเอาต์พุตมาตรฐาน เป็นเรื่องธรรมดา
เพื่อจัดเก็บดังนี้:
% เซสชั่น=$(schroot -b -c ซิด-สแนป)↵
% เสียงสะท้อน $เซสชัน↵
sid-snap-46195b04-0893-49bf-beb8-0d4ccc899f0f
เซสชันอาจใช้เหมือนกับ chroot ทั่วไป นี่คือลักษณะของเซสชัน:
% ชรูท -i -c sid-snap-46195b04-0893-49bf-beb8-0d4ccc899f0f↵
--- การประชุม ---
Name sid-snap-46195b04-0893-49bf-beb8-0d
4ccc899f0f
คำอธิบาย Debian sid snapshot
พิมพ์ lvm-snapshot
3 ลำดับความสำคัญ
ผู้ใช้ทำ rleigh
สร้างกลุ่ม
ผู้ใช้รูท
Root Groups สร้างราก
นามแฝง
ตัวกรองสภาพแวดล้อม ^(BASH_ENV|CDPATH|ENV|HOSTALIASES|I
FS|KRB5_CONFIG|KRBCONFDIR|KRBTKFILE|KRB_CONF|LD_.*|LOCALDOMA
ใน|NLSPATH|PATH_LOCALE|RES_OPTIONS|TERMINFO|TERMINFO_DIRS|TE
RMPATH)$
เรียกใช้สคริปต์การตั้งค่า true
การกำหนดค่าสคริปต์ ค่าเริ่มต้นของสคริปต์
เซสชันที่จัดการจริง
ลินุกซ์บุคลิกภาพ
ตำแหน่งเมานต์ /var/lib/schroot/mount/sid-snap-461
95b04-0893-49bf-beb8-0d4ccc899f0f
พาธ /var/lib/schroot/mount/sid-snap-461
95b04-0893-49bf-beb8-0d4ccc899f0f
เมานต์อุปกรณ์ /dev/hda_vg/sid-snap-46195b04-0893-
49bf-beb8-0d4ccc899f0f
อุปกรณ์ /dev/hda_vg/sid_chroot
ตัวเลือกการเมานต์ -o atime,async,user_xattr
ผู้ใช้ที่มา
แหล่งที่มาของราก rleigh
ผู้ใช้รูทต้นทาง
ต้นทางกลุ่มราก rleigh
อุปกรณ์สแนปชอต LVM /dev/hda_vg/sid-snap-46195b04-0893-
49bf-beb8-0d4ccc899f0f
ตัวเลือกสแนปชอต LVM --ขนาด 2G -c 128
ตอนนี้สร้างเซสชันแล้ว คำสั่งอาจถูกเรียกใช้ในนั้น:
% ชรูท -r -c sid-snap-46195b04-0893-49bf-beb8-0d4ccc899f0f --
uname -sr↵
I: [sid-snap-46195b04-0893-49bf-beb8-0d4ccc899f0f chroot] Running
คำสั่ง: “uname -sr”
ลินุกซ์ 2.6.18-3-powerpc
% ชรูท -r -c $เซสชัน -- uname -sr↵
I: [sid-snap-fe170af9-d9be-4800-b1bd-de275858b938 chroot] Running
คำสั่ง: “uname -sr”
ลินุกซ์ 2.6.18-3-powerpc
เมื่อดำเนินการคำสั่งทั้งหมดในเซสชันแล้ว เซสชันอาจสิ้นสุด:
% ชรูท -e -c sid-snap-46195b04-0893-49bf-beb8-0d4ccc899f0f↵
% ชรูท -e -c $เซสชั่น↵
สุดท้าย ชื่อเซสชันอาจยาวและเทอะทะ อาจระบุชื่อแทน
โดยใช้ ID เซสชันที่สร้างขึ้นโดยอัตโนมัติ:
% ชรูท -b -c ด้านข้าง snap -n ชื่อเซสชันของฉัน↵
ชื่อเซสชันของฉัน
การแก้ไขปัญหา
หากมีบางอย่างใช้งานไม่ได้และไม่ชัดเจนจากข้อความแสดงข้อผิดพลาดว่ามีอะไรผิดปกติ ให้ลอง
โดยใช้โปรแกรม --debug=ระดับ ตัวเลือกในการเปิดข้อความการดีบัก งานนี้คุ้มสุดๆ
ข้อมูลมากกว่านี้. ระดับการดีบักที่ถูกต้องคือ 'ไม่มี' และ 'แจ้ง', 'ข้อมูล', 'คำเตือน' และ
'วิกฤต' ตามลำดับความรุนแรงที่เพิ่มขึ้น ยิ่งระดับความรุนแรงต่ำมากเท่าไหร่
เอาท์พุต
หากคุณยังคงประสบปัญหา อาจมีการติดต่อนักพัฒนาในรายชื่อส่งเมล:
นักพัฒนาเครื่องมือสร้าง Debian
<buildd-tools-devel@lists.alioth.debian.org>
ใช้ schroot ออนไลน์โดยใช้บริการ onworks.net