Unix & Linux

คำถาม & คำตอบสำหรับผู้ใช้ Linux, FreeBSD และระบบปฏิบัติการ Un * x อื่น ๆ

1
ทำไม“ nodev” ใน / etc / fstab สำคัญมาก? อุปกรณ์อักขระสามารถใช้สำหรับการแฮ็กได้อย่างไร
ฉันกำลังเรียนรู้เกี่ยวกับความปลอดภัยของ linux และพยายามเข้าใจว่าเหตุใดอุปกรณ์ USB ที่ติดกับอุปกรณ์อักขระจึงอาจเป็นอันตรายได้ หากฉันมีอุปกรณ์ USB ที่มีการปฏิบัติการทุบตีที่มีราก setuid สิ่งที่เป็นอันตรายก็ชัดเจน: ใครก็ตามที่มีอุปกรณ์ USB นั้นสามารถได้รับสิทธิ์รูทในคอมพิวเตอร์ของฉันหากฉันมีรายการเช่น /dev/sdb1 /media/usbstick auto defaults 0 0 ในของฉัน/etc/fstabเพราะมีdefaultssuid แต่สิ่งที่เกี่ยวกับอุปกรณ์ตัวละคร? ฉันจะใช้อุปกรณ์ตัวละครเพื่อรับสิทธิพิเศษรูทหรือทำลายไฟล์ได้อย่างไรหาก USB stick ที่มีอุปกรณ์ตัวละครอยู่นั้นถูกเมาท์ด้วยdevหรือdefaults?

3
นักเทียบท่าพูดว่า“ ไม่มีที่ว่างเหลืออยู่ในอุปกรณ์” แต่ระบบมีพื้นที่เหลือเฟือหรือไม่
ฉันกำลังพยายามเรียกใช้อิมเมจนักเทียบท่าที่ใช้งานได้กับระบบอื่น ๆ (และคุณสามารถดึงมันออกมาจาก dockerhub ถ้าคุณต้องการ: มันdougbtv/asterisk) อย่างไรก็ตามบนเวิร์คสเตชั่นทั่วไปของฉันมันบ่นเกี่ยวกับพื้นที่ว่างเมื่อมัน (ดูเหมือน) มันไม่ได้แสดงภาพนักเทียบท่า ฉันพยายามเรียกใช้และเมื่อฉันฉันได้รับข้อผิดพลาดที่ระบุว่าพื้นที่ไม่เพียงพอ นี่คือตัวอย่างของฉันพยายามเรียกใช้และมันบ่นเกี่ยวกับพื้นที่ .. [root@localhost docker]# docker run -i -t dougbtv/asterisk /bin/bash Timestamp: 2015-05-13 07:50:58.128736228 -0400 EDT Code: System error Message: [/usr/bin/tar -xf /var/lib/docker/tmp/70c178005ccd9cc5373faa8ff0ff9c7c7a4cf0284bd9f65bbbcc2c0d96e8565d410879741/_tmp.tar -C /var/lib/docker/devicemapper/mnt/70c178005ccd9cc5373faa8ff0ff9c7c7a4cf0284bd9f65bbbcc2c0d96e8565d/rootfs/tmp .] failed: /usr/bin/tar: ./asterisk/utils/astdb2sqlite3: Wrote only 512 of 10240 bytes /usr/bin/tar: ./asterisk/utils/conf2ael.c: Cannot write: No space …

2
ส่งออกเฉพาะที่อยู่ IP ของเครื่องออนไลน์ที่มี nmap
ฉันรู้วิธีใช้nmapเพื่อค้นหารายชื่อโฮสต์ที่ออนไลน์อยู่ในขณะนี้ สิ่งที่ฉันอยากทำคือรับรายการที่อยู่ IP ของพวกเขาเท่านั้นตอนนี้มันแสดงข้อมูลเพิ่มเติมเช่น Nmap scan report for 192.168.x.x' and 'Host is up (0.12s latency). สิ่งที่ฉันต้องการคือสามารถเรียกใช้nmapคำสั่งรับเอกสารข้อความของที่อยู่ IP ที่ออนไลน์อยู่ในขณะนี้ เป็นไปได้ไหม?
19 ip  nmap 

2
วิธีการ ls โดยไม่ต้องเรียกซ้ำ
ฉันพยายาม ls บางไฟล์ที่มีรูปแบบในไดเรกทอรี ฉันแค่ต้องการสแกนระดับแรกไม่ใช่เรียกซ้ำ สคริปต์ของฉัน: for i in $(ls $INCOMINGDIR/*$BUSSINESSDATE*) do echo $i; done คำสั่งข้างต้นสแกนซ้ำ จะทำให้มันสแกนไดเรกทอรีระดับแรกเท่านั้นได้อย่างไร
19 bash  shell-script  ls 

4
ฉันจะใช้การไหลเวียนของข้อมูลแบบวงกลมในคำสั่งที่เชื่อมต่อระหว่างกันได้อย่างไร
ฉันรู้ว่ามีสองประเภทวิธีที่คำสั่งสามารถเชื่อมต่อซึ่งกันและกัน: โดยใช้ Pipe (วาง std-output ลงใน std-input ของคำสั่งถัดไป) โดยใช้ Tee (แบ่งเอาต์พุตเป็นเอาต์พุตจำนวนมาก) ฉันไม่ทราบว่านั่นคือทั้งหมดที่เป็นไปได้หรือไม่ดังนั้นฉันวาดประเภทการเชื่อมต่อสมมุติ: เป็นไปได้อย่างไรที่จะใช้การไหลเวียนของข้อมูลระหว่างคำสั่งเช่นในรหัสเทียมนี้ซึ่งฉันใช้ตัวแปรแทนคำสั่ง: pseudo-code: a = 1 # start condition repeat { b = tripple(a) c = sin(b) a = c + 1 }

1
ทำไม file-nr และ lsof ถึงมีความแตกต่างกัน? [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นไปตามหัวข้อสำหรับ Unix & Linux Stack Exchange ปิดให้บริการใน3 ปีที่ผ่านมา ฉันกำลังเจอปัญหาทันทีทันใด; แอปพลิเคชันทั้งหมดและเซิร์ฟเวอร์ของฉันทำงานได้ดีและในทันใดฉันเห็นจำนวนไฟล์ที่เปิดค้าง ฉันกำลังตรวจสอบมันด้วยคำสั่งนี้: cat /proc/sys/fs/file-nr เมื่อฉันตรวจสอบสิ่งนี้มันจะแสดง44544 0 128000ดังนั้น 44544 คือจำนวนไฟล์ที่เปิด แต่เมื่อฉันตรวจสอบด้วยคำสั่งนี้ - lsof | wc -l มันแสดง - 28384 แล้วอันไหนที่ถูกต้อง? ขีด จำกัด สูงสุดสำหรับการเปิดไฟล์ของฉันคือ 65535 ulimit -a open files (-n) 65535 ฉันต้องการทราบกระบวนการ 5 อันดับแรกที่ใช้ไฟล์ที่เปิดมากขึ้น ฉันสามารถรับได้จากนี้lsofแต่จำนวนที่แสดงที่นี่แตกต่างจากคำสั่งอื่น ๆ ที่ฉันได้กล่าวไว้ข้างต้น ฉันสามารถรับรายละเอียดของกระบวนการที่นับได้ด้วยคำสั่งนี้cat /proc/sys/fs/file-nrหรือไม่? …

3
ฉันจะบังคับให้ใช้คำสั่งในตัวอย่างชัดเจนและปลอดภัยได้อย่างไร
มีเป็นคำถามที่คล้ายกันที่เกี่ยวข้องกับ 'ตัด' สถานการณ์ที่คุณต้องการแทนที่เช่นcdมีคำสั่งที่เรียกใช้ cdbuiltin อย่างไรก็ตามในแง่ของ shellshock et al และเมื่อรู้ว่าทุบตีนำเข้าฟังก์ชั่นจากสภาพแวดล้อมฉันได้ทำการทดสอบสองสามครั้งและฉันไม่สามารถหาวิธีโทรหา builtin ได้อย่างปลอดภัยcdจากสคริปต์ของฉัน พิจารณาสิ่งนี้ cd() { echo "muahaha"; } export -f cd สคริปต์ใด ๆ ที่ถูกเรียกใช้ในสภาพแวดล้อมนี้cdจะใช้งานไม่ได้(พิจารณาถึงผลกระทบของสิ่งที่ชอบcd dir && rm -rf .) มีคำสั่งให้ตรวจสอบประเภทของคำสั่ง (เรียกว่าสะดวกtype) และคำสั่งสำหรับการดำเนินการรุ่น builtin แทนที่จะเป็นฟังก์ชั่น ( builtinและcommand) แต่แท้จริงและดูเถิดสิ่งเหล่านี้สามารถถูกแทนที่ด้วยการใช้ฟังก์ชั่นเช่นกัน builtin() { "$@"; } command() { "$@"; } type() { echo "$1 is a …
19 bash  security 

9
การใช้ "ในขณะที่จริง" เพื่อให้สคริปต์มีชีวิตอยู่เป็นความคิดที่ดี?
ฉันแค่กระโดดเข้าสู่ยูนิกซ์จากโลกที่แตกต่างและอยากรู้ว่า while true do /someperlscript.pl done สคริปต์ perl ภายในมีโฟลเดอร์ / ตัวเฝ้าดูไฟล์ที่ดำเนินการเมื่อไฟล์ถูกเปลี่ยนในตำแหน่งเป้าหมาย นี่while trueเป็นความคิดที่ดีหรือไม่? ถ้าไม่เป็นวิธีการที่แข็งแกร่งที่ต้องการคืออะไร? TIA แก้ไข: เนื่องจากสิ่งนี้ดูเหมือนว่าจะสร้างความสนใจพอสมควรนี่เป็นสถานการณ์ที่สมบูรณ์ สคริปต์ perl ตัวเองดูไดเรกทอรีโดยใช้ตัวตรวจสอบไฟล์ เมื่อได้รับไฟล์ใหม่ (พวกเขามาถึงทาง rsync) มันจะรับไฟล์ใหม่และดำเนินการ ตอนนี้ไฟล์ที่เข้ามาอาจเสียหาย (อย่าถาม .. มาจาก raspberry pi) และบางครั้งกระบวนการอาจไม่สามารถจัดการกับมันได้ ฉันไม่รู้ว่าทำไมเพราะเรายังไม่ได้ตระหนักถึงสถานการณ์ทั้งหมด แต่ - หากกระบวนการล้มเหลวด้วยเหตุผลบางอย่างเราต้องการให้มันทำงานและจัดการกับไฟล์ถัดไปเพราะไฟล์ถัดไปไม่เกี่ยวข้องอย่างสมบูรณ์กับไฟล์ก่อนหน้าซึ่งอาจทำให้เกิดข้อผิดพลาด โดยปกติฉันจะใช้การจับบางอย่างและห่อโค้ดทั้งหมดไว้รอบ ๆ เพื่อไม่ให้เกิดปัญหา แต่ก็ไม่แน่ใจเรื่อง Perl จากสิ่งที่ฉันเข้าใจการใช้สิ่งต่าง ๆ เช่น supervisord เป็นวิธีการที่ดีสำหรับสิ่งนี้
19 shell  perl 

5
grep พร้อมตัวดำเนินการเชิงตรรกะ
มียูทิลิตี grep คล้ายหรือไม่ซึ่งจะทำให้ฉันสามารถค้นหา grep ด้วยตัวดำเนินการทางตรรกะได้ ฉันต้องการที่จะสามารถซ้อนและรวมโครงสร้างเชิงตรรกะได้อย่างอิสระ ตัวอย่างเช่นสิ่งนี้ควรเป็นไปได้: grep (term1 && term2) || (term1 && (term3 xor term4)) * ฉันรู้ว่าสิ่งนี้สามารถทำได้ด้วยวานิลลา grep และการเขียนสคริปต์ทุบตีเพิ่มเติม แต่เป้าหมายของฉันที่นี่คือหลีกเลี่ยงการทำเช่นนั้น
19 grep 

1
ความแตกต่างระหว่าง / dev และ / sys
ความแตกต่างระหว่างdevfsและsysfsคืออะไร ทั้งสองดูเหมือนจะรักษารายชื่อของ hardwares ที่แนบมากับระบบ ถ้าอย่างนั้นทำไมต้องแยกกัน 2 เอฟเอส? เท่าที่ฉันจะได้รับ/ sysรักษารายการอุปกรณ์ "แบบดิบ" (เช่น "ser0") Udev ทำหน้าที่ในอุปกรณ์เหล่านั้นรับข้อมูลต่าง ๆ และใช้กฎต่าง ๆ เพื่อแสดงเป็นชื่อที่รู้จักซึ่งจะถูกแมปลงบน/ dev (เช่น "กล้อง") นี่เป็นเหตุผลเดียวหรือไม่ จากนั้นเราติดอุปกรณ์ที่เกี่ยวข้องจาก/ dev fs (เราไม่สามารถทำเช่นนั้นจาก/ sys fs) ลงใน/ media fs ฉันได้อ่านคำตอบที่แตกต่างระหว่าง / dev และ / sys / class? . แต่ฉันไม่สามารถรับส่วน sys fs ที่มันกล่าวว่า Sysfs มีลำดับชั้นของอุปกรณ์ตามที่แนบมากับคอมพิวเตอร์ ไฟล์ใน / sys ไม่ใช่ไฟล์โหนดอุปกรณ์หรือไม่ …
19 linux  mount  devices  udev  sysfs 

1
อะไรคือความแตกต่างระหว่าง / media, / mnt และ / run / mount?
ใน FHS-2.3 เรามี/mediaจุดยึดสำหรับสื่อบันทึกข้อมูลแบบถอดได้เช่น CD-ROM และเรามี/mntระบบไฟล์ที่ติดตั้งชั่วคราว บนมืออื่น ๆ ที่เรามีและ/run/media /run/mountสำหรับฉันแล้ว CD และ USB นั้นได้รับการติดตั้งบน / run / media ฉันไม่เห็นความแตกต่างที่ชัดเจนระหว่างพวกเขา ( /media, /mnt, /run/mount) ความแตกต่างของพวกเขาคืออะไร? ฉันได้เห็นแนวโน้มที่คล้ายกัน (เมานต์ / รัน / สื่อ) ใน fedora 20 - GNOME 3.10.4 และ Ubuntu 14.04.1 (ติดตั้งบนกล่องเสมือน) พร้อม GNOME 3.10.4 แต่เมื่อฉันเสียบแฟลช USB (ด้วยสคริปต์ตัวเมาท์อัตโนมัติ) บนระบบที่มี Centos 6 และ GNOME …

1
มีความแตกต่างระหว่างการเพิ่มคู่ค่าชื่อให้กับคำสั่งและการใช้ env ใน bash หรือไม่?
สมมติว่าผมเรียกA=B commandและในenv A=B command bashมีสถานการณ์ใดบ้างที่อาจมีความแตกต่างระหว่างการขอร้องทั้งคู่?


1
พบช่องโหว่ของ Shellshock Bash อย่างไร
เนื่องจากข้อผิดพลาดนี้ส่งผลกระทบต่อแพลตฟอร์มจำนวนมากเราอาจเรียนรู้บางอย่างจากกระบวนการที่พบช่องโหว่นี้: มันเป็นช่วงเวลาεὕρηκα (ยูเรก้า) หรือผลลัพธ์ของการตรวจสอบความปลอดภัยหรือไม่ เนื่องจากเรารู้ว่าStéphaneพบข้อผิดพลาดของ Shellshock และคนอื่น ๆ อาจรู้จักกระบวนการเช่นกันเราจึงสนใจในเรื่องราวของวิธีที่เขามาหาข้อผิดพลาด

2
อะไรคือวัตถุประสงค์ของ avahi บนเซิร์ฟเวอร์ RHEL 7?
ใช้งานเครื่องเซิร์ฟเวอร์กับ CentOS 7 ฉันสังเกตว่าบริการ avahi นั้นกำลังทำงานอยู่ตามค่าเริ่มต้น ฉันสงสัยว่าจุดประสงค์ของมันคืออะไร สิ่งหนึ่งที่ดูเหมือนว่าจะทำ (ในสภาพแวดล้อมของฉัน) คือการปิดใช้งานการเชื่อมต่อ IPv6 แบบสุ่มซึ่งมีลักษณะเช่นนี้ในบันทึก: Oct 20 12:23:29 example.org avahi-daemon[779]: Withdrawing address record for fd00::1:2:3:4 on eno1 Oct 20 12:23:30 example.org Withdrawing address record for 2001:1:2:3:4:5:6:7 Oct 20 12:23:30 example.org Registering new address record for fe80::1:2:3:4 on eno1.*. (คำต่อท้าย1:2:3...ถูกสร้างขึ้น) และแน่นอนหลังจากนั้นที่2001:1:2:3:4:5:6:7อยู่ IPv6 สาธารณะจะไม่สามารถเข้าถึงได้อีกต่อไป เนื่องจากการที่ฉันปิดการใช้งานบริการ …
19 centos  rhel  ipv6  avahi 

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