Unix & Linux

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

1
“ wait &” (“ wait ampersand”) เป็นประโยชน์ (bash) shell / shell script สำนวนหรือเทคนิค?
ฉัน "ได้รับมรดก" เชลล์สคริปต์บางตัวสำหรับเครื่อง Linux ที่ใช้เชลล์ "bash" ของ GNU ในกรณีเฉพาะกรณีหนึ่งเครื่องจะรัน GNU bash รุ่น 2.0.5b หนึ่งในสคริปต์เหล่านั้นมีคำสั่งwait &("wait ampersand") ซึ่งเป็นส่วนหนึ่งของ "for line" ของforลูป ตั้งแต่แรกพบดูเหมือนว่าจะเป็นสำนวนที่น่าสนใจ / น่าสนใจ แต่เว็บของฉันค้นหาไม่ได้ส่งคืนสิ่งใดที่เกี่ยวข้อง man waitแสดง manpage "BASH_BUILTINS" ("BASH BUILTINS COMMAND") ซึ่งมีคำอธิบายดังต่อไปนี้: wait [n] Wait for the specified process and return its termination status. n may be a process ID …

1
รายการตัวเลือกทั้งหมดของ tput
ฉันต้องการซ่อนเคอร์เซอร์และฉันก็ตระหนักถึงtputคำสั่ง ฉันค้นหาหน้าเอกสารของมันแล้ว ในการค้นหาอินเทอร์เน็ตฉันพบ $ tput civis # to hide the cursor $ tput cnorm # to bring back the cursor สิ่งเหล่านี้ทำงานได้อย่างสมบูรณ์แบบ แต่ตัวเลือกเหล่านี้ไม่ได้กล่าวถึงในหน้าคู่มือ พวกเขาอยู่ที่ไหนเอกสารอย่างเป็นทางการ?

2
จะแสดงเฉพาะกระบวนการ * ไม่ * ตรงกับตัวกรองได้อย่างไร
ฉันใช้htopเพื่อตรวจสอบกระบวนการของฉันแบบโต้ตอบ อย่างไรก็ตามบางครั้งกระบวนการบางอย่างได้รับ "ในทาง" และฉันต้องการที่จะกรองพวกเขาออก น่าเสียดายที่ดูเหมือนว่าตัวกรอง htop ในตัว (เช่นF4) อนุญาตให้ฉันกำหนดตัวกรองเชิงบวกเท่านั้น (จะแสดงเฉพาะการจับคู่) และไม่ใช่ตัวกรองเชิงลบ (ทั้งหมดยกเว้นการแข่งขันจะแสดง) ในที่สุดฉันไม่พบเอกสารใด ๆ เกี่ยวกับไวยากรณ์ที่แท้จริงของ search-string ( ดูเหมือนว่าregexesจะไม่ทำงาน)
12 filter  htop 

1
กำลังออกจากเครื่องที่รัน“ nohup ./my_script &” =>“ คุณมีงานอยู่” ตกลงเพื่อออก
ว่าฉันทำงานต่อไปนี้ในกล่องระยะไกลกับความคิดในการป้องกันการฆ่างานเมื่อฉันยกเลิกการเชื่อมต่อสถานี nohup ./my_script.sh & เมื่อฉันพยายามออกจากเทอร์มินัลฉันได้รับคำเตือนดังต่อไปนี้: zsh: you have running jobs ฉันเข้าใจว่าไม่เป็นไร เป็นเพียงการบอกฉันว่าฉันมีงาน / กระบวนการทำงานในพื้นหลัง หากฉันยกเลิกการเชื่อมต่อเครื่องงาน / กระบวนการจะยังคงทำงานต่อไปถูกต้องหรือไม่

3
วิธีที่ปลอดภัยและง่ายที่สุดในการใช้รหัสผ่านที่ผู้ใช้พิมพ์บน bash กลายเป็นส่วนหนึ่งของ stdin ไปยังโปรแกรมอย่างไร
ฉันกำลังมองหา (1) ที่ปลอดภัยที่สุดและ (2) วิธีที่ง่ายที่สุดในการให้ผู้ใช้พิมพ์รหัสผ่านบน bash shell prompt และให้รหัสผ่านนั้นกลายเป็นส่วนหนึ่งของ stdin ไปยังโปรแกรม นี่คือสิ่งที่ stdin จำเป็นต้องมีลักษณะ: {"username":"myname","password":"<my-password>"}ซึ่ง<my-password>เป็นสิ่งที่พิมพ์ลงในเชลล์พรอมต์ ถ้าฉันควบคุมโปรแกรม stdin ได้ฉันสามารถแก้ไขมันเพื่อขอรหัสผ่านอย่างปลอดภัยและใส่ลงไป แต่ downstream เป็นคำสั่งทั่วไปที่เป็นมาตรฐาน ฉันได้พิจารณาและปฏิเสธวิธีการที่ใช้สิ่งต่อไปนี้: ผู้ใช้ที่พิมพ์รหัสผ่านลงในบรรทัดคำสั่ง: รหัสผ่านจะปรากฏบนหน้าจอและผู้ใช้ทุกคนสามารถมองเห็นได้ด้วย "ps" การแก้ไขตัวแปรเชลล์ในอาร์กิวเมนต์ของโปรแกรมภายนอก (เช่น...$PASSWORD...): รหัสผ่านจะยังคงปรากฏให้ผู้ใช้ทุกคนเห็นผ่าน "ps" ตัวแปรสภาพแวดล้อม (ถ้าทิ้งไว้ในสภาพแวดล้อม): รหัสผ่านจะสามารถมองเห็นได้ในกระบวนการลูกทั้งหมด แม้กระบวนการที่น่าเชื่อถืออาจเปิดเผยรหัสผ่านหากพวกเขาถ่ายโอนข้อมูลหลักหรือตัวแปรสภาพแวดล้อมการถ่ายโอนข้อมูลเป็นส่วนหนึ่งของการวินิจฉัย รหัสผ่านที่อยู่ในไฟล์เป็นระยะเวลานานแม้ไฟล์ที่มีสิทธิ์ จำกัด : ผู้ใช้อาจเผลอเปิดเผยรหัสผ่านและผู้ใช้รูทอาจบังเอิญเห็นรหัสผ่าน ฉันจะแก้ปัญหาปัจจุบันของฉันเป็นคำตอบด้านล่าง แต่จะเลือกคำตอบที่ดีกว่าถ้ามีคนมาด้วย ฉันคิดว่าควรจะมีบางสิ่งที่ง่ายกว่าหรืออาจมีบางคนเห็นข้อกังวลด้านความปลอดภัยที่ฉันพลาดไป
12 bash  security  password  curl 

1
ทำไมต้องเลือกโหมดเคอร์เนลแทนที่จะแยกสิทธิพิเศษ
การตั้งค่าโหมดเคอร์เนลเป็นเรื่องที่เจ็บปวดมากในตอนแรกที่ใช้งาน Linux แต่ตอนนี้มันยอดเยี่ยมมาก ฉันหมายถึง X ไม่จำเป็นต้องเรียกใช้ในฐานะรูท? ฮาร์ดแวร์ความละเอียดสูงเร่งคอนโซล สิ่งที่เย็น. ปัญหาคือแพลตฟอร์ม UNIX จำนวนมากไม่มีการตั้งค่าไดรเวอร์เคอร์เนลในโหมดใด ๆ ดังนั้นฮาร์ดแวร์ที่ต้องใช้ KMS จึง จำกัด เฉพาะ Linux เท่านั้น คำถามของฉัน: ทำไมใช้งานจริงในเคอร์เนล? หากจำเป็นต้องใช้การเข้าถึงฮาร์ดแวร์เพื่อตั้งค่าความละเอียดของหน้าจอทำไมไม่ใช้ daemon ที่มีสิทธิ์แยกต่างหากหรือ setuid binary ขนาดเล็ก สิ่งนี้จะรักษาความได้เปรียบของการแยกรหัสสิทธิพิเศษและให้เซิร์ฟเวอร์การแสดงผลทำงานแบบผู้ใช้ จำกัด ในขณะที่กำจัดข้อกำหนดพิเศษของไดรเวอร์และทำให้การสนับสนุนข้าม UNIX ง่ายขึ้น ขวา? หรือฉันขาดสิ่งสำคัญที่นี่
12 kernel  xorg  drivers 

4
ฉันจะตั้งค่าป้ายกำกับบนคอนเทนเนอร์ dm-crypt + LUKS ได้อย่างไร
ฉันเพิ่งได้รับแฟลชไดรฟ์ USB ใหม่และตั้งค่าพาร์ทิชันที่เข้ารหัสไว้ 2 ตัว ผมใช้ DM-ฝังศพใต้ถุนโบสถ์ (โหมด LUKS) cryptsetupผ่าน ด้วยพาร์ติชันที่ไม่เข้ารหัสเพิ่มเติมไดรฟ์มีโครงสร้างต่อไปนี้: /dev/sdb1เข้ารหัสเข้ารหัสซ่อนไฟล์ระบบ ext4 ที่มีป้ายกำกับว่า "Partition 1" /dev/sdb2เข้ารหัสเข้ารหัสซ่อนไฟล์ระบบ ext4 อื่นติดป้ายกำกับ "Partition 2" /dev/sdb3, ชัดเจน, มองเห็น ext4 filesystem ชื่อ "Partition 3" เนื่องจากเลเบลติดอยู่กับระบบไฟล์ ext4 สองรายการแรกจึงยังมองไม่เห็นได้อย่างสมบูรณ์ตราบใดที่พาร์ติชันไม่ได้ถูกถอดรหัส ซึ่งหมายความว่าในระหว่างนี้คอนเทนเนอร์ LUKS ไม่มีป้ายกำกับ สิ่งนี้น่ารำคาญเป็นพิเศษเมื่อใช้ GNOME (automount) ซึ่งในกรณีนี้พาร์ทิชันจะปรากฏเป็น " x GB Encrypted " และ " y GB Encrypted " …


1
คำเตือนของ CPU - abrt-watch-log
ฉันใช้Red Hat Enterprise Linux Server รีลีส 7.1 (Maipo)บนIntel (R) Xeon (R) CPU X5690 @ 3.47GHz ฉันได้รับข้อผิดพลาดนี้abrt-watch-logต่อไป root 888 1 0 Aug03 ? 00:00:00 /usr/bin/abrt-watch-log -F BUG: WARNING: at WARNING: CPU: INFO: possible recursive locking detected ernel BUG at list_del corruption list_add corruption do_IRQ: stack overflow: ear stack overflow (cur: eneral …

2
หลังจากส่งคำสั่งปิดระบบเซสชัน ssh จะไม่ยุติลง
เมื่อใดก็ตามที่ฉันส่งคำสั่งเพื่อปิดหรือรีสตาร์ทเซิร์ฟเวอร์ Debian ของฉันเชลล์ของฉันจะหยุดทำงานและไม่ตอบสนอง (ไม่สามารถพิมพ์คำสั่งใด ๆ ) การกระทำแบบเดียวกันกับ Ubuntu ทำให้การปิดเซสชันทำได้อย่างสวยงามดังนั้นฉันจึงไม่มีเทอร์มินัลแบบผูกติดค้างไว้ที่นั่น มีแพคเกจที่ฉันจำเป็นต้องติดตั้งหรือมีการเปลี่ยนแปลงการกำหนดค่าเพื่อที่ฉันจะได้รับพฤติกรรมนี้บน Debian หรือไม่?
12 debian  ssh  systemd  shutdown 

1
การเปลี่ยนค่า TCP RTO ใน Linux
ฉันต้องการเปลี่ยนค่า TCP RTO (retransmission timeout)สำหรับการเชื่อมต่อและการอ่านบางอย่างที่ฉันทำเสร็จแล้วแสดงให้เห็นว่าฉันสามารถทำได้ แต่ไม่เปิดเผยที่และวิธีการเปลี่ยน ฉันดู/proc/sys/net/ipv4ตัวแปรแล้ว แต่ไม่มีตัวแปรใดที่เกี่ยวข้องกับ RTO ฉันจะขอบคุณถ้ามีคนบอกฉันว่าจะแก้ไขค่านี้ได้อย่างไร

2
การใช้คำสั่ง“ ส่งออก” คืออะไร?
ฉันสร้างตัวแปรสภาพแวดล้อมในหน้าต่างเทอร์มินัลหนึ่งและพยายามที่จะสะท้อนในหน้าต่างเทอร์มินัลอื่น ที่แสดงอะไร $TEST=hello หลังจากนั้นฉันส่งออกและลองอีกครั้งechoในหน้าต่างเทอร์มินัลอื่น ผลลัพธ์เหมือนเดิม export TEST แต่ถ้าฉันรันรหัสเดียวกันที่~/.profileตัวแปรล็อกอิน (ต่อท้ายรหัสไปยังไฟล์) สามารถใช้หน้าต่างเทอร์มินัลใดก็ได้ เกิดอะไรขึ้นที่นี่ อะไรคือความแตกต่างระหว่างการเรียกใช้งานโค้ดในเครื่องเทอร์มินัลและการเรียกใช้งานเหมือนกันเมื่อทำการล็อกอิน

3
วิธีการแปลง ssl ciphers ให้เป็นฟอร์แมทฟอร์แมต?
เอกสาร SSL อย่างเป็นทางการรายการยันต์ในรูปแบบที่แตกต่างจากขดใช้เวลา ตัวอย่างเช่นถ้าผมต้องการที่ขดที่จะใช้ตัวเลข TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA curl --ciphers ecdhe_rsa_3des_shaผมต้องผ่านมัน ฉันรู้ว่าการแมปบางอย่างเป็นเช่นไร แต่ไม่ใช่ทั้งหมด - ตัวอย่างเช่นฉันต้องส่งต่อการขดเพื่อให้ใช้การเข้ารหัส TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 อย่างไร มีทุกที่ที่ฉันสามารถหาเอกสารที่แสดงว่าชื่อรหัสในแผนที่ ssl docs กับชื่อตัวเลขที่ขดยอมรับ? แก้ไข:ในที่สุดฉันก็ค้นพบว่า curl ของฉันได้รับการสนับสนุนโดย NSS ไม่ใช่ OpenSSL และปัญหานี้เกิดขึ้นเนื่องจากไม่มีเอกสารที่ดีเกี่ยวกับการใช้ curl ที่ NSS ได้รับการสนับสนุนในขณะที่มันต้องการอาร์กิวเมนต์ที่แตกต่างจาก OpenSSL เพื่อใช้ตัวเลขเดียวกัน ดังนั้นคำถามของฉันเฉพาะกับ NSS

3
สิทธิ์ลินุกซ์ทำงานอย่างไรเมื่อกระบวนการทำงานเป็นกลุ่มเฉพาะ
นี่คือสิ่งที่ฉันไม่สามารถหาข้อมูลได้มากนักเพื่อช่วยในการชื่นชม ความเข้าใจของฉันจึง ใช้ไฟล์ต่อไปนี้: -rw-r----- 1 root adm 69524 May 21 17:31 debug.1 ผู้ใช้philไม่สามารถเข้าถึงไฟล์นี้: phil@server:/var/log$ head -n 1 debug.1 cat: debug.1: Permission denied หากphilถูกเพิ่มลงในadmกลุ่มสามารถ: root@server:~# adduser phil adm Adding user `phil' to group `adm' ... Adding user phil to group adm Done. phil@server:/var/log$ head -n 1 debug.1 May 21 11:23:15 server …

7
ทดสอบว่า file descriptor ถูกต้องหรือไม่
ฉันต้องการสร้างสคริปต์ทุบตีข้อมูลเพิ่มเติมให้กับ file descriptors (FDs) มากกว่าหรือเท่ากับ 3 เมื่อเปิด เพื่อทดสอบว่า FD เปิดอยู่หรือไม่ฉันได้วางแผนเคล็ดลับต่อไปนี้: if (printf '' 1>&3) 2>&-; then # File descriptor 3 is open else # File descriptor 3 is not open fi นี่เพียงพอสำหรับความต้องการของฉัน แต่ฉันอยากรู้ว่ามีวิธีการทดสอบที่เป็นไปตามสำนวนมากขึ้นหรือไม่ถ้า FD นั้นถูกต้อง ฉันสนใจเป็นพิเศษเกี่ยวกับว่ามีการแม็พfcntl(1)syscall กับคำสั่งเชลล์หรือไม่ซึ่งจะอนุญาตให้เรียกใช้แฟล็ก FD ( O_WRONLYและ O_RDWRเพื่อทดสอบว่า FD สามารถเขียนได้หรือไม่O_RDONLYและ O_RDWRเพื่อทดสอบว่า FD อ่านได้หรือไม่)

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