Unix & Linux

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

4
วิธีการดึงที่อยู่ IP ของผู้โจมตีที่เป็นไปได้ ssh?
ฉันเพิ่งcat /var/log/auth.logเข้าสู่ระบบและดูว่ามีหลาย| grep "Failed password for"ระเบียน อย่างไรก็ตามมีสองประเภทบันทึกที่เป็นไปได้ - สำหรับผู้ใช้ที่ถูกต้อง / ไม่ถูกต้อง มันทำให้ความพยายามของฉันยากขึ้นสำหรับ| cutพวกเขา ฉันต้องการจะดูสร้างรายการ (ไฟล์ข้อความ) พร้อมที่อยู่ IP ของผู้โจมตีที่เป็นไปได้และจำนวนครั้งสำหรับแต่ละที่อยู่ IP มีวิธีง่าย ๆ ในการสร้างหรือไม่ นอกจากนี้เกี่ยวกับssh: /var/log/auth.logฉันควรพิจารณาบันทึกทั้งหมดของรายการใดบ้างเมื่อทำรายการผู้โจมตีที่เป็นไปได้ ตัวอย่างของ 'auth.log' ของฉันด้วยตัวเลขที่ซ่อนอยู่: cat /var/log/auth.log | grep "Failed password for" | sed 's/[0-9]/1/g' | sort -u | tail ผลลัพธ์: Mar 11 11:11:11 vm11111 sshd[111]: Failed password …

4
ช่องว่างถัดจากท่อ
ฉันเคยเห็นhistory | grep blahและhistory |grep blah; และใช้history|grep blahงานได้แม้ว่าจะไม่มีใครดูเหมือนจะใช้มัน มีความสำคัญในช่องว่างหรือไม่ (เช่นการไพพ์ไปยัง / จากคำสั่งที่แตกต่างกันต้องใช้การเว้นวรรคที่แตกต่างกัน) หรือมันเป็นกฎเกณฑ์เสมอ?
17 bash  shell  pipe 

4
ทำไมการจัดการเหตุการณ์ของระบบปฏิบัติการบางระบบจึงเขียนด้วย asm แทนที่จะเป็น c
คำถามของฉันคือทำไมทุกวันนี้การจัดการเหตุการณ์ของระบบปฏิบัติการบางอย่างยังคงเขียนในภาษาแอสเซมบลีแทนที่จะเป็นภาษาระดับสูงกว่าเช่น C เมื่อเคอร์เนลเขียนเองส่วนใหญ่เป็น C
17 kernel  c  assembly 

3
LVM จัดเก็บการกำหนดค่าไว้ที่ไหน
ฉันพยายามที่จะเข้าใจวิธีการ / ที่ LVM เก็บข้อมูลการกำหนดค่าของมัน ไม่pvcreate /dev/sdbเขียนข้อมูลเมตาใด ๆ เพื่อ/dev/sdb? ถ้าเป็นเช่นนั้นสิ่งที่เขียน? ที่vgcreate data /dev/sdb /dev/sdcเก็บการกำหนดค่าของกลุ่มวอลุ่มอยู่ที่ไหน LVM จัดเก็บการทำแผนที่ระหว่างส่วนขยายตรรกะและส่วนขยายทางกายภาพอยู่ที่ใด มีการกำหนดค่าเฉพาะเครื่องในการกำหนดค่า LVM หรือไม่? สมมติว่าฉันมีเครื่องที่มีดิสก์ 2 แผ่นที่กำหนดค่าไว้ในโลจิคัลวอลุ่มฉันสามารถนำดิสก์เหล่านั้นออกจากเครื่องและวางลงในเครื่องอื่นและคาดหวังว่าโลจิคัลวอลุ่มจะทำงานในเครื่องใหม่ได้หรือไม่
17 lvm 

3
ฉันจะสร้างที่เก็บโลคัลสำหรับ NixOS / nixpkgs ได้อย่างไร?
คำแนะนำทั้งหมดที่ฉันค้นหาเพื่อสร้างที่เก็บโลคัลของแพ็กเกจ Nix เกี่ยวข้องกับการสร้างโคลนโลคัลของที่nixpkgsเก็บหลักและเพิ่มลงในนั้น มีวิธีที่ฉันสามารถสร้างพื้นที่เก็บข้อมูลขนาดเล็กเพียงแค่มีแพคเกจ Add-on ท้องถิ่นของฉัน?

4
fork และ exec ทำงานอย่างไร
ฉันไม่ได้มีประสบการณ์มากนักเพียงแค่พยายามเข้ามามีส่วนร่วมในกระบวนการต่าง ๆ พวกเขาตีความถึงฮาร์ดแวร์จากระดับผู้ใช้อย่างไร ดังนั้นเมื่อคำสั่งถูกไล่ออกจากเชลล์ให้fork()สืบทอดกระบวนการลูกของมันและexec()โหลดกระบวนการลูกไปยังหน่วยความจำและดำเนินการ หากกระบวนการลูกมีคุณลักษณะทั้งหมดของกระบวนการหลัก (ซึ่งเป็นกระบวนการดั้งเดิม) ดังนั้นความต้องการของกระบวนการลูกนี้คืออะไร? กระบวนการต้นฉบับอาจถูกโหลดไปยังหน่วยความจำ สิ่งนี้forkและexecแนวคิดนี้ใช้กับโปรแกรมปฏิบัติการทั้งหมดใน UNIX หรือไม่? ชอบเชลล์สคริปต์หรือเพียงแค่คำสั่ง? มันใช้กับคำสั่ง shell builtin หรือไม่? การคัดลอกเมื่อเขียนแนวคิดที่ใช้ถ้าฉันจะรันคำสั่ง / สคริปต์หรือไม่ ขออภัยที่ถามคำถามหลายครั้ง แต่คำถามเหล่านี้มาถึงใจของฉันทันทีเมื่อฉันคิดเกี่ยวกับการดำเนินการคำสั่งใด ๆ
17 fork  exec 

1
rsync ซ้ำกับความลึกของโฟลเดอร์ย่อย
ฉันต้องการrsyncโฟลเดอร์ซ้ำ แต่ต้องการให้โฟลเดอร์ย่อยรวมอยู่ในระดับความลึกที่แน่นอน ตัวอย่างเช่นฉันต้องการความลึกของ 1,2,3 หรือ 4 โฟลเดอร์ย่อยเช่นนี้ source/ ├── subfolder 1 │ ├── subsubfolder │ │ ├── subsubsubfolder │ │ │ └── wanted with depth 4.txt │ │ └── wanted with depth 3.txt │ └── wanted with depth 2.txt ├── subfolder 2 │ └── wanted with depth 2.txt └── wanted …

6
vi commandline, goto line และคอลัมน์
ฉันได้ผสมการใช้emacsและvi( vim) มาเป็นเวลานาน แต่ละคนมีข้อได้เปรียบ ฉันแยกวิเคราะห์ข้อผิดพลาดจากการคอมไพล์เช่นกระบวนการและรับหมายเลขบรรทัดและคอลัมน์ แต่ฉันสามารถใช้emacsเพื่อไปที่บรรทัดและคอลัมน์โดยตรงเท่านั้น: emacs +15:25 myfile.xml กับviฉันมีเพียงหมายเลขบรรทัด (ตามหน้าคน) vi +15 myfile.xml มีตัวเลือกในการเลื่อนตำแหน่งเคอร์เซอร์บนรูปแบบ ( vi +/pattern myfile.xml) ซึ่งฉันไม่เคยทำงาน แต่นั่นจะไม่ช่วยฉันเพราะรูปแบบอาจไม่เกิดขึ้นครั้งแรกในไฟล์เสมอ ฉันจะเริ่มต้นviเพื่อไปที่คอลัมน์ 25 ที่บรรทัด 15 ของไฟล์ของฉันได้อย่างไร ฉันสามารถทำบางอย่างด้วย-cตัวเลือกได้ไหม
17 vim  cursor 

1
ผลกระทบด้านความปลอดภัยของการใช้ข้อมูลที่ไม่ได้รับอนุญาตในการประเมินผลการคำนวณทางคณิตศาสตร์ของเชลล์
ในความคิดเห็นต่อคำถามล่าสุด Stéphane Chazelas กล่าวว่ามีผลกระทบด้านความปลอดภัยต่อวงเล็บทางคณิตศาสตร์สองหลักเช่น: x=$((1-$x)) บนเปลือกหอยส่วนใหญ่ ทักษะ Google ของฉันดูเหมือนจะเป็นสนิมและฉันไม่พบสิ่งใดเลย ผลกระทบด้านความปลอดภัยของเลขคณิตวงเล็บคู่คืออะไร?

1
การตั้งค่าภาพสำหรับล็อค i3:“ ไม่สามารถโหลดภาพ x: หน่วยความจำไม่เพียงพอ”
ฉันใช้คำสั่งนี้เพื่อล็อคหน้าจอ: i3lock -i /home/freyja/pics/owl.jpg หน้าจอถูกล็อค แต่ไม่มีภาพ (พื้นหลังสีขาวเท่านั้น) เมื่อเรียกจากคอนโซลคำสั่งจะแจ้งว่า: Could not load image /home/freyja/pics/owl.jpg: out of memory. ฉันจะทำอะไรเกี่ยวกับเรื่องนี้? หน่วยความจำขาดทั้งระบบ (ดูเหมือนไม่เหมือน) หรือเพียงแค่ i3-lock มีข้อ จำกัด ภายในบ้างไหม? ภาพมีขนาดใหญ่ (HD) แต่ความละเอียดตรงกับหน้าจอของฉันดังนั้นฉันจึงไม่ต้องการใช้ภาพที่เล็กกว่านี้

6
วิธีการป้องกัน `mv 'จากการย้ายคอลเลกชันของไฟล์ไปเป็นไฟล์เดียว?
ฉันเพิ่งสูญเสียคอลเล็กชั่นเสียงไปโดยที่ฉันทำผิดพลาดไป :-( ดีใจมากฉันมีการสำรองข้อมูลล่าสุดค่อนข้างมาก แต่มันก็ยังน่ารำคาญนอกเหนือจากของคุณอย่างแท้จริงผู้ร้ายคนอื่น ๆ ที่ทำอันตรายmvซึ่งจะแสดงดังต่อไปนี้: ไฟล์เสียงมีรูปแบบที่แน่นอน: ARTIST - Some Title YY.mp3 ที่YYเป็นสเปคปี 2 หลัก mkdir 90<invisible control character> (จนถึงขณะนี้ฉันไม่ทราบว่าฉันได้พิมพ์อักขระเกินหนึ่งในสามซึ่งมองไม่เห็น ... !) แทนที่จะมีทั้งหมดในไดเรกทอรีเดียวฉันต้องการมีเพลงทั้งหมดปี 1990 ในไดเรกทอรีเดียว ดังนั้นฉันจึงพิมพ์: find . -name '* 9?.mp3' -exec mv {} 90 \; ไม่ยากเลยที่จะเข้าใจว่าเกิดอะไรขึ้นใช่มั้ย : -> ผลลัพธ์ (หายนะ) คือไดเรกทอรีที่ว่างเปล่าบริสุทธิ์ที่เรียกว่า '90 บางสิ่งบางอย่าง '(มีบางอย่างที่เป็นตัวควบคุม "ที่มองไม่เห็น") และไฟล์เดียวหนึ่งไฟล์ที่เรียกว่า' 90 'เขียนทับnครั้ง ไฟล์ทั้งหมดหายไป …
17 mv 

1
BOOTPROTO = none | คงที่ | dhcp และ /etc/resolv.conf
มันหมายความว่าอย่างไรเมื่อมันบอกว่าBOOTPROTO=noneใน/etc/sysconfig/network-scripts/ifcfg-eth0ไฟล์ ฉันจำได้ว่าเคยเป็นมาBOOTPROTO=staticและมันก็ชัดเจนและตรงไปตรงมาในการบอกเราว่าถ้ามีการIPADDR=<x.x.x.x>มอบเซิร์ฟเวอร์จะเกิดขึ้นพร้อมกับที่อยู่ IP ที่ระบุ ในทำนองเดียวกันBOOTPROTO=dhcpจะค้นหาเซิร์ฟเวอร์ DHCP เพื่อรับที่อยู่ IP แบบไดนามิก Redhat พูดว่า: BOOTPROTO=protocol where protocol is one of the following: none — No boot-time protocol should be used. bootp — The BOOTP protocol should be used. dhcp — The DHCP protocol should be used. มันหมายความว่าถ้าเราไม่ได้ระบุ IP ในไฟล์ ifcfg-eth0 มันจะค้นหาเซิร์ฟเวอร์ DHCP และหากมีการระบุ …

1
หา - maxdepth 0 ไม่ส่งคืนเอาต์พุตใด ๆ ให้ฉัน
ฉันพยายามที่จะเข้าใจวิธีการใช้find -maxdepth 0ตัวเลือก ฉันมีโครงสร้างไดเรกทอรีด้านล่าง --> file1 --> parent --> child1 --> file1 --> file2 --> child2 --> file1 --> file2 --> file1 ตอนนี้ฉันรันfindคำสั่งของฉันดังต่อไปนี้ find ./parent -maxdepth 0 -name "file1" find ./ -maxdepth 0 -name "file1" find . -maxdepth 0 -name "file1" หากไม่มีfindคำสั่งข้างต้นfile1จะถูกส่งคืน จากหน้าคนของfindฉันเห็นข้อมูลด้านล่าง -maxdepth 0 หมายถึงใช้การทดสอบและการดำเนินการกับอาร์กิวเมนต์บรรทัดคำสั่งเท่านั้น ฉันค้นหาตัวอย่างด้วย-maxdepth 0ตัวเลือกและไม่พบตัวอย่างที่เหมาะสม findรุ่นของฉันคือ find …
17 find 

4
วิธีบังคับให้เคอร์เนลของ Linux“ หยุด” (หรือเกือบหยุดนิ่ง) เป็นเวลาสองสามร้อยมิลลิวินาที
เรากำลังเรียกใช้กระบวนการแบบเรียลไทม์บนเคอร์เนลที่ไม่ใช่แบบเรียลไทม์ (CentOS 6) และนี่อาจจะไม่เปลี่ยนแปลง เรามีแอพพลิเคชั่นวิดีโอสตรีมมิ่งที่ต้องการปริมาณการรับส่งข้อมูล PCIe ประมาณ 500 MB / s จาก FPGA ที่กำหนดเองอย่างต่อเนื่องเป็นเวลา 1.5 ชั่วโมงต่อครั้ง แอปพลิเคชั่นทำงานได้ดี - ส่วนใหญ่ อย่างไรก็ตามเรามีสถานการณ์ที่ดูเหมือนว่าเคอร์เนลจะหยุดตอบสนองต่อการให้บริการ PCIe หรือหน่วยความจำร้องขอสูงสุด 500 มิลลิวินาทีในแต่ละครั้ง สิ่งนี้ดูเหมือนว่าจะเกิดขึ้นในระหว่างการระเบิดไฟล์ IO จากเธรดอื่น ฉันพบว่ามันเป็นไปไม่ได้ที่จะพยายามทำซ้ำปัญหานี้โดยการทำไฟล์ดัมมี่จำนวนมาก IO จากพื้นที่ผู้ใช้ขณะที่แอปพลิเคชันหลักทำงานอยู่ มีวิธีบังคับ (จำลอง) "หยุด" ทั่วโลกของ Linux kernel (โดยเฉพาะการหยุด PCIe หรือการเข้าถึงหน่วยความจำ DDR3 ทั้งหมดหรืออะไรทำนองนั้น) เพื่อให้เราสามารถสร้างปัญหานี้ได้หรือไม่ ขณะนี้เรามีบัฟเฟอร์มากถึง 10 มิลลิวินาทีในหน่วยความจำ FPGA ภายใน แต่ก็ยังไม่เพียงพอ เราสามารถบัฟเฟอร์ไปยัง FPGA …

1
การติดตามการปฏิบัติการที่ไม่มีสิทธิ์อ่าน
ฉันพบพฤติกรรมที่น่าประหลาดใจบางอย่างบน Ubuntu 14.04 เมื่อใช้งานstraceกับไฟล์ปฏิบัติการซึ่งฉันไม่ได้รับอนุญาตให้อ่าน ฉันสงสัยว่านี่เป็นข้อผิดพลาดหรือว่ามาตรฐานบางอย่างทำให้พฤติกรรมที่คลุมเครือนี้ ก่อนอื่นเรามาดูกันว่าเกิดอะไรขึ้นเมื่อฉันเริ่มต้นปฏิบัติการปกติในพื้นหลังและแนบมัน ตามที่คาดไว้ใช้งานได้: $ /bin/sleep 100 & [2] 8078 $ strace -p 8078 Process 8078 attached restart_syscall(<... resuming interrupted call ...> ต่อไปฉันลองใช้ไฟล์ปฏิบัติการซึ่งฉันไม่ได้รับอนุญาตให้อ่าน: ---x--x--x 1 root root 26280 Sep 3 09:37 sleep* ไม่อนุญาตให้เชื่อมต่อกับกระบวนการทำงานนี้: $ ./sleep 100 & [1] 8089 $ strace -p 8089 strace: attach: ptrace(PTRACE_ATTACH, ...): …

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