คำถามติดแท็ก chroot

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

4
chroot“ คุก” - มันคืออะไรและฉันจะใช้มันได้อย่างไร?
ฉันเคยได้ยิน / อ่านมากเกี่ยวกับคุก chroot ภายใต้ linux แต่ไม่เคยใช้มัน (ฉันใช้ Fedora วันต่อวัน) ดังนั้น chroot "คุก" คืออะไร? ฉันควรใช้เมื่อไหร่และทำไม / ไม่ใช้และมีอะไรอีกบ้างที่ฉันควรรู้ ฉันจะสร้างได้อย่างไร
99 chroot 


3
ฉันจะบอกได้อย่างไรว่าฉันทำงานเป็น chroot?
ฉันมีการติดตั้งยูนิกซ์ที่ควรจะใช้งานได้ทั้งแบบ chroot และแบบสแตนด์อโลน หากทำงานเป็น chroot ฉันไม่ต้องการเรียกใช้บริการใด ๆ (cron, inetd และอื่น ๆ ) เพราะพวกเขาจะขัดแย้งกับระบบโฮสต์หรือซ้ำซ้อน ฉันจะเขียนเชลล์สคริปต์ที่ทำงานแตกต่างกันอย่างไรขึ้นอยู่กับว่ามันทำงานใน chroot หรือไม่? ความต้องการเร่งด่วนของฉันคือระบบ Linux ที่ทันสมัยพร้อมกับ/procติดตั้งใน chroot และสคริปต์ทำงานเป็นรูท แต่ก็ยินดีต้อนรับคำตอบที่พกพาได้มากกว่า (ดูฉันจะบอกได้อย่างไรว่าฉันกำลังทำงานอยู่ใน chroot หาก / proc ไม่ถูกเมาท์สำหรับกรณีของ Linux ที่ไม่มี/proc) โดยทั่วไปคำแนะนำที่ใช้ได้กับวิธีการกักเก็บอื่น ๆ นั้นน่าสนใจ คำถามที่ปฏิบัติได้คือระบบนี้ควรใช้บริการใด ๆ หรือไม่? (คำตอบที่ไม่ได้อยู่ใน chroot และใช่ในเครื่องเสมือนที่เต็มเปี่ยมฉันไม่รู้เกี่ยวกับตัวพิมพ์กลางเช่นคุกหรือตู้คอนเทนเนอร์)
46 chroot 

5
วิธีสร้างผู้ใช้ FTP ที่มี / dir / เข้าถึงเฉพาะในการติดตั้ง Centos / linux
ดังนั้นฉันจึงติดตั้ง VPS - CentOS Linux ฉันมี vsFTPd บนเซิร์ฟเวอร์ ขณะนี้ฉันมีการเข้าถึง SFTP ไปยังเซิร์ฟเวอร์ผ่านผู้ใช้รูทของฉัน แต่ตอนนี้ฉันกำลังพยายามสร้างผู้ใช้ใหม่ด้วยการเข้าถึง FTP ไปยังไดเรกทอรีเฉพาะบนเซิร์ฟเวอร์ฉันได้ทำสิ่งต่อไปนี้แล้ว: 1. mkdir /var/www/mydomain.com 2. mkdir /var/www/mydomain.com/html 3. useradd <-username> 4. passwd <-username> 5. chown –R <-username> /var/www/mydomain.com 5. groupadd <-groupname> 6. gpasswd -a <-username> <-groupname> 7. chgrp -R <-groupname> /var/www/mydomain.com 8. chmod -R g+rw /var/www/mydomain.com สิ่งที่ฉันพยายามทำคือการสร้างผู้ใช้ให้มีสิทธิ์เข้าถึงเท่านั้น …
44 centos  ftp  chroot  vsftpd 

4
จำกัด การเข้าถึง FTP เฉพาะกับ / var / www ด้วย vsftpd
ฉันใช้ vsftpd เป็น ftp server บน linux ของฉัน (rasbian) ฉันเข้าสู่ระบบในฐานะผู้ใช้รูท ฉันอยากจะยังคงล็อคการใช้ / var / www เท่านั้นฉันจะกำหนดค่า vsftpd conf เพื่อให้สำเร็จได้อย่างไร

9
ฉันจะ chroot ลงในระบบไฟล์ที่มีส่วนประกอบที่แตกต่างกันได้อย่างไร
ฉันพยายามที่จะchrootเป็น Arch Linux ระบบแฟ้มจากARMx86_64 ฉันได้เห็นว่าเป็นไปได้ที่จะใช้ static qemuโดยการคัดลอกไบนารีลงในระบบ chroot: $ cp /usr/bin/qemu-arm archarm-chroot/usr/bin แต่อย่างไรก็ตามฉันได้รับข้อผิดพลาดต่อไปนี้: chroot: failed to run command ‘/bin/bash’: Exec format error ฉันรู้ว่านี่หมายถึงสถาปัตยกรรมที่แตกต่าง ฉันกำลังทำอะไรผิดหรือเปล่า?
38 chroot  qemu  arch-arm 

3
การ จำกัด ผู้ใช้ SSH / SCP / SFTP ไปยังไดเรกทอรี
มีวิธีง่ายๆในการ จำกัด ผู้ใช้ SCP / SFTP ไปยังไดเรกทอรีหรือไม่? วิธีการทั้งหมดที่ฉันเจอนั้นกำหนดให้ฉันต้องจำคุก chroot โดยการคัดลอกไบนารี แต่ฉันไม่คิดว่ามันจำเป็น
36 ssh  chroot  scp  sftp  openssh 

1
ฉันจะเข้าถึงไดเรกทอรีภายนอก chroot จากภายในได้อย่างไร?
ฉันมีผู้ใช้ที่ chrooted ไปยังไดเรกทอรีบ้านของเธอ แต่ฉันต้องการให้เธอสามารถจัดการไฟล์ภายใน/var/wwwได้เช่นกัน เช่นนี้ฉันทำสิ่งต่อไปนี้: root@server:/home/username# ln -s /var/www www root@server:/home/username# cd www root@server:/home/username/www# chown username:username * อย่างไรก็ตามเมื่อฉันพยายามเปิด/wwwด้วย FileZilla มันจะส่งคืน "ไม่มีไฟล์หรือไดเรกทอรีดังกล่าว" ฉันเห็นไดเรกทอรีที่ลิงก์ แต่ฉันไม่สามารถเข้าถึงได้ ผมทำอะไรผิดหรือเปล่า?
33 debian  symlink  chroot 

2
สิ่งที่ใช้ในการทำให้กล่อง Linux แข็งตัว Apparmor, SELinux, grsecurity, SMACK, chroot?
ฉันวางแผนที่จะกลับไปที่ Linux เป็นเครื่องเดสก์ท็อป ฉันต้องการทำให้มันปลอดภัยยิ่งขึ้น และลองใช้เทคนิคการชุบแข็งโดยเฉพาะอย่างยิ่งเนื่องจากฉันวางแผนที่จะรับเซิร์ฟเวอร์ของตัวเอง อะไรจะเป็นกลยุทธ์การชุบแข็งที่ดี ฉันควรใช้เครื่องมือใด - Apparmor, SELinux, SMACK, chroot ฉันควรใช้เครื่องมือเดียวเช่น Apparmor หรือการรวมกันของข้างต้น? เครื่องมือเหล่านี้มีข้อดี / ข้อเสียใดบ้าง มีคนอื่นบ้างไหม? ซึ่งมีการกำหนดค่าสติเพื่อความปลอดภัย (ปรับปรุง) อัตราส่วน ฉันจะเลือกใช้อันไหนในระบบเดสก์ท็อป เป็นที่หนึ่งในสภาพแวดล้อมเซิร์ฟเวอร์ มีคำถามมากมาย

5
วิธียกเลิกการต่อเชื่อมระบบไฟล์ chroot'd เดิม?
ฉันใช้ระบบช่วยเหลือชีวิต (คล้ายกับ live-cd) เพื่อแก้ไขปัญหาบางอย่างกับเซิร์ฟเวอร์ Debian ของฉันเช่นนั้น: # mkdir -p /mnt/rescue # mount /dev/md2 /mnt/rescue # mount --bind /dev /mnt/rescue/dev/ # mount --bind /proc /mnt/rescue/proc/ # mount --bind /sys /mnt/rescue/sys/ ตอนนี้ฉันสามารถ chroot ถึง/mnt/rescue- แต่หลังจากฉันทำเสร็จแล้วจะยกเลิกการต่อเชื่อมระบบไฟล์อีกครั้งได้อย่างไร? umount: /mnt/rescue: target is busy. (In some cases useful info about processes that use the device is …

4
สภาพแวดล้อม Linux แบบแยกที่มีน้ำหนักเบา
ฉันต้องการสภาพแวดล้อม Linux (แบบผู้เยี่ยมชม) ที่แยกต่างหากบนคอมพิวเตอร์ของฉันซึ่งฉันสามารถทำสิ่งสกปรกโดยไม่ต้องกังวลเกี่ยวกับโฮสต์ เช่นติดตั้งสิ่งต่าง ๆ มากมายจากแหล่งที่ไม่มีการจัดการแพคเกจตัวแปรสภาพแวดล้อมของสภาพแวดล้อมที่มีมลพิษ ฯลฯ จากนั้นจะวางไข่สภาพแวดล้อมของแขกคนอื่นเมื่อแขกเก่า ๆ ได้รับความยุ่งเหยิงมากเกินไป ฉันสนุกกับการใช้ Virtualbox กับ Tinycore linux แต่อย่างน้อยฉันก็ใช้มันฉันไม่คิดว่าค่าใช้จ่ายของ Virtualbox นั้นเป็นสิ่งที่จำเป็นทั้งหมด สำหรับสิ่งหนึ่งถ้าเป็นไปได้ฉันต้องการใช้เคอร์เนลเดียวกันกับโฮสต์ของฉัน นอกจากนี้ในขณะที่ฉันทำงานผ่านการสอน Linux จาก Scratch ฉันได้เรียนรู้เล็กน้อยchrootซึ่งดูเหมือนว่าอาจเป็นสิ่งที่ฉันกำลังมองหา ความจริงแล้วมีหลายอย่างที่ฉันไม่เข้าใจใน LFS จริง ๆ เลยการเป็นหนึ่งในนั้น ฉันจะลองเล่นกับchrootถ้าฉันไม่กลัวมันอาจทำให้สภาพแวดล้อมในปัจจุบันของฉันยุ่ง ดังนั้นฉันกำลังมองหาโปรแกรมจำลองเสมือนที่ใช้ความจริงที่ว่าฉันอยู่บน linuxbox (ฉันใช้ PinguyOS btw) เพื่อเพิ่มความเร็วในการจำลองเสมือนหรืออ้างอิงถึงวิธีใช้ chroot เป็นสนามเด็กเล่นแยก

3
เหตุใดฉันจึงต้อง chroot สำหรับ sandboxing เพื่อความปลอดภัยถ้าแอปพลิเคชันของฉันสามารถเรียกใช้ตั้งแต่เริ่มต้นที่ระดับต่ำกว่าได้
ฉันกำลังเขียน daemon เซิร์ฟเวอร์ HTTP ใน C (มีเหตุผลว่าด้วยอะไร) จัดการมันด้วยไฟล์ systemd unit ฉันเขียนใหม่แอปพลิเคชันที่ออกแบบมาเมื่อ 20 ปีก่อนประมาณปี 1995 และระบบที่พวกเขาใช้คือพวกเขา chroot แล้ว setuid และขั้นตอนมาตรฐาน ตอนนี้ในงานก่อนหน้าของฉันนโยบายปกติคือคุณไม่เคยเรียกใช้กระบวนการใด ๆ ในฐานะที่เป็นรูท คุณสร้างผู้ใช้ / กลุ่มสำหรับมันและเรียกใช้จากที่นั่น แน่นอนว่าระบบใช้บางสิ่งเป็นรูท แต่เราสามารถบรรลุการประมวลผลเชิงตรรกะทางธุรกิจทั้งหมดโดยไม่ต้องรูท ตอนนี้สำหรับดีมอน HTTP, ฉันสามารถเรียกใช้โดยไม่รูทถ้าฉันไม่ chroot ภายในแอปพลิเคชัน. ดังนั้นแอปพลิเคชันจะปลอดภัยกว่าหรือไม่ที่จะไม่รันในฐานะรูท? ปลอดภัยหรือไม่ที่จะเรียกใช้ในฐานะผู้ใช้ mydaemon ตั้งแต่ต้น? แทนที่จะเริ่มด้วย root, chrooting, จากนั้น setuid เป็น mydaemon-user
14 chroot  daemon 

1
วิธีการดำเนินการ chroot กับ namespaces Linux?
หลังจากอ่านเกี่ยวกับเนมสเปซลินุกซ์ฉันก็รู้สึกว่ามันมีคุณสมบัติอื่น ๆ มากมายซึ่งเป็นทางเลือกสำหรับ chroot ตัวอย่างเช่นในบทความนี้ : การใช้งานอื่น ๆ [ของ namespaces] รวมถึง [... ] chroot () - การแยกลักษณะของกระบวนการเป็นส่วนหนึ่งของลำดับชั้นไดเรกทอรีเดียว อย่างไรก็ตามเมื่อฉันโคลนเนมสเปซ Mount ตัวอย่างเช่นด้วยคำสั่งต่อไปนี้ฉันยังคงเห็นต้นไม้รากเดิมทั้งหมด unshare --mount -- /bin/bash ฉันเข้าใจว่าตอนนี้ฉันสามารถทำการเมาท์เพิ่มเติมในเนมสเปซใหม่ที่ไม่ได้ใช้ร่วมกับเนมสเปซดั้งเดิมได้ดังนั้นจึงให้การแยก แต่ก็ยังคงเป็นรูทเดียวกันเช่น/etcจะยังคงเหมือนเดิมสำหรับเนมสเปซทั้งสอง ฉันยังต้องchrootเปลี่ยนรูทหรือมีทางเลือกอื่นหรือไม่? ฉันคาดหวังว่าคำถามนี้จะให้คำตอบ แต่คำตอบนั้นใช้chrootอีกครั้งเท่านั้น แก้ไข # 1 pivot_rootมีความคิดเห็นที่ถูกลบในขณะนี้ว่าเป็นที่กล่าวถึง เนื่องจากนี่เป็นส่วนหนึ่งของlinux/fs/namespace.cความเป็นจริงมันเป็นส่วนหนึ่งของการติดตั้งเนมสเปซ นี้แสดงให้เห็นว่าการเปลี่ยนไดเรกทอรีรากเท่านั้นที่มีunshareและmountเป็นไปไม่ได้ แต่ namespaces ให้ตัวเอง - ฉลาดมากขึ้น - chrootรุ่นของ ถึงกระนั้นฉันก็ยังไม่ได้รับแนวคิดหลักของวิธีการนี้ที่ทำให้มันแตกต่างจากchrootเดิมแม้หลังจากอ่านซอร์สโค้ด (ในแง่ของความปลอดภัยและการแยกที่ดีกว่า) แก้ไข # 2 นี้ไม่ซ้ำกับคำถามนี้ หลังจากรันคำสั่งทั้งหมดจากคำตอบฉันมี /tmp/tmp.vyM9IwnKuY …
14 chroot  namespace 

1
ทำไมฉันต้องใช้ chroot
คำถามนี้chroot-คุกสิ่งที่เป็นมันและวิธีการทำ i-use มันchrootหมายถึงสิ่งที่เป็นและวิธีการใช้งาน chrootสิ่งที่ผมไม่เข้าใจคือทำไมฉันต้องใช้ ฉันเข้าใจสิ่งที่มันทำ แต่ฉันไม่สามารถนึกถึงกรณีเมื่อฉันต้องใช้มันเนื่องจากความจริงที่ว่ามันไม่ใช่กลไกความปลอดภัยหรือกล่องทรายตามคำตอบที่ชี้ให้เห็น "คุณไม่ควรใช้chrootเป็นระบบรักษาความปลอดภัย วัดเพื่อป้องกันไม่ให้โปรแกรมแก้ไขไฟล์นอกระบบไฟล์จำลองของคุณ ". ทำไมกระบวนการบางอย่างจึงจำเป็นต้องแมปไดเรกทอรีย่อยเป็นระบบไฟล์
13 chroot 

3
บูตเป็น chroot หรือไม่?
ฉันติดตั้ง Linux (Debian Jessie) บนฮาร์ดไดรฟ์แล้ว Drive - sda1, ext4fs และsda2- swap ฉันมี/chrootโฟลเดอร์ มีการติดตั้งระบบอื่นใน/chrootโฟลเดอร์ คำถาม: จะบอก bootmanager ได้อย่างไรให้บูตไม่ใช่ระบบหลัก (หลัก, Debian Jessie) แต่เป็นระบบใน/ chroot ? อาจมีการเปลี่ยนแปลง/menu.lstและ/chroot/etc/fstab? ( vmlinuz root=/dev/sda1/chroot?) หรืออีกหนึ่งคำถามที่แตกต่าง: เป็นไปได้ไหมที่จะติดตั้ง linux ไม่ได้อยู่ในไดเรกทอรีรากของพาร์ติชั่น แต่อยู่ในโฟลเดอร์? ( /another_linux/bin, /another_linux/home, /another_linux/etc, ... )

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.