Unix & Linux

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

3
อนุญาตให้รูทเข้าสู่ระบบผ่าน ssh ด้วยการพิสูจน์ตัวตนแบบใช้คีย์เท่านั้น
ผมมีข้อสงสัยบางประการเกี่ยวกับการกำหนดค่าเซิร์ฟเวอร์ SSH /etc/ssh/sshd_configบางอย่างบน ฉันต้องการพฤติกรรมต่อไป: การพิสูจน์ตัวตนคีย์สาธารณะเป็นวิธีเดียวที่จะพิสูจน์ตัวตนว่าเป็นรูท (ไม่มีการพิสูจน์ตัวตนด้วยรหัสผ่านหรืออื่น ๆ ) ผู้ใช้ปกติสามารถใช้ได้ทั้ง (รหัสผ่านและการตรวจสอบกุญแจสาธารณะ) ถ้าฉันตั้งค่าPasswordAuthentication noจุดแรกของฉันเป็นที่พอใจ แต่ไม่ใช่ที่สอง มีวิธีการตั้งค่าPasswordAuthentication noเฉพาะสำหรับรูทหรือไม่

4
วัตถุประสงค์ของคำสั่ง 'ติดตั้ง' คืออะไร?
ฉันเคยเห็นinstallคำสั่งที่ใช้ใน Makefiles จำนวนมากและการมีอยู่และการใช้งานของมันค่อนข้างสับสน จาก manpages ก็ดูเหมือนว่าชุ่ยของcpที่มีคุณสมบัติที่น้อยลง cpแต่ฉันคิดว่ามันจะไม่ถูกนำมาใช้จนกว่าจะมีข้อได้เปรียบบางกว่า ตกลงคืออะไร?
49 command-line  make  cp 

4
ความแตกต่างระหว่าง pkill และ killall คืออะไร?
ฉันรู้ว่ามีกฎการกรองมากกว่าpkill killallคำถามของฉันคืออะไรความแตกต่างระหว่าง: pkill [signal] name และ killall [signal] name ฉันอ่านแล้วว่าkillallมีประสิทธิภาพมากกว่าและฆ่ากระบวนการและกระบวนการย่อยทั้งหมด (และเรียกซ้ำ) ที่ตรงกับnameโปรแกรม pkillไม่ทำเช่นนี้ด้วย?

3
OpenSSH: วิธีสิ้นสุดบล็อกการแข่งขัน
ฉันใช้Matchบล็อกใน OpenSSH ของ/etc/ssh/sshd_config(บนเดเบียน) เพื่อ จำกัด ผู้ใช้บางคนไปยัง SFTP: # my stuff Match group sftponly X11Forwarding no AllowTcpForwarding no ForceCommand internal-sftp -u 0002 ChrootDirectory %h อย่างที่คุณเห็นฉันใช้#my stuffความคิดเห็นในไฟล์ปรับแต่งที่กำหนดเองเพื่อแยกแยะการกำหนดค่าเริ่มต้นจากสิ่งที่ฉันทำได้อย่างง่ายดาย ตอนนี้ผมอยากจะต่อท้ายคำสั่งUseDNS noเพื่อกำหนดค่า (เพื่อเพิ่มความเร็วในการเข้าสู่ระบบ) แต่ OpenSSH Directive 'UseDNS' is not allowed within a Match blockกล่าวว่า ตอนนี้ฉันสงสัยว่ามีไวยากรณ์ที่ต้องการEnd Matchจบบล็อกการแข่งขันเหล่านั้นหรือไม่
49 debian  openssh 

3
มันปลอดภัยที่จะเพิ่ม เส้นทางของฉัน มาทำไม
ฉันเคยเห็นผู้คนพูดถึงคำตอบอื่น ๆ ว่าเป็นความคิดที่ดีที่จะรวมไดเรกทอรีการทำงานปัจจุบัน (' ') ในตัวแปรสภาพแวดล้อมของคุณแต่ไม่สามารถค้นหาคำถามเพื่อแก้ไขปัญหาได้โดยเฉพาะ.$PATH ดังนั้นทำไมฉันไม่ควรเพิ่ม.เส้นทางของฉัน และแม้ว่าจะมีคำเตือนทั้งหมดที่ฉันทำอยู่แล้วฉันต้องระวังอะไรบ้าง ปลอดภัยกว่าที่จะเพิ่มไปยังจุดสิ้นสุดมากกว่าการเริ่มต้นหรือไม่
49 path 

3
วิธีการส่งออกข้อความไปยังหน้าจอและไฟล์ภายในเชลล์สคริปต์?
ขณะนี้ฉันมีเชลล์สคริปต์ที่บันทึกข้อความไปยังไฟล์บันทึกเช่นนี้: log_file="/some/dir/log_file.log" echo "some text" >> $log_file do_some_command echo "more text" >> $log_file do_other_command เมื่อเรียกใช้งานสคริปต์นี้ไม่มีผลลัพธ์ไปที่หน้าจอและเนื่องจากฉันกำลังเชื่อมต่อกับเซิร์ฟเวอร์ผ่าน putty ฉันต้องเปิดการเชื่อมต่ออื่นและทำ "tail -f log_file_path.log" เนื่องจากฉันไม่สามารถยุติการทำงานได้ สคริปต์และฉันต้องการที่จะเห็นผลลัพธ์ในเวลาจริง เห็นได้ชัดว่าสิ่งที่ฉันต้องการคือข้อความที่พิมพ์บนหน้าจอและเป็นไฟล์ แต่ฉันต้องการที่จะทำในบรรทัดเดียวไม่ใช่สองบรรทัดหนึ่งในนั้นไม่มีการเปลี่ยนเส้นทางไปยังไฟล์ ทำอย่างไรจึงจะได้สิ่งนี้?

1
วัตถุประสงค์ / dev / ศูนย์?
ฉันพยายามcat /dev/zeroและดูเหมือนจะไม่ทำอะไรเลย ฉัน googled /dev/zeroและมันบอกว่ามันเป็นไฟล์เปล่าที่มีขนาดไม่ จำกัด มีการcatพิมพ์จำนวนอนันต์ของตัวละครที่ไม่มีอยู่จริง? มันทำงานอย่างไร มันให้ข้อมูลที่ไม่สิ้นสุดได้อย่างไรถ้ามันเป็น 0 ไบต์? ไฟล์นี้มีประโยชน์อะไรถ้าใครสามารถสร้างไฟล์เปล่าได้?

2
Bash: วิธีอ่านทีละหนึ่งบรรทัดจากเอาต์พุตของคำสั่ง?
while loopฉันพยายามที่จะอ่านผลลัพธ์ของคำสั่งในทุบตีใช้ที่ while read -r line do echo "$line" done <<< $(find . -type f) ผลลัพธ์ที่ฉันได้รับ ranveer@ranveer:~/tmp$ bash test.sh ./test.py ./test1.py ./out1 ./test.sh ./out ./out2 ./hello ranveer@ranveer:~/tmp$ หลังจากนี้ฉันก็ลอง $(find . -type f) | while read -r line do echo "$line" done test.sh: line 5: ./test.py: Permission deniedแต่มันก็สร้างข้อผิดพลาด ดังนั้นฉันจะอ่านทีละบรรทัดได้อย่างไรเพราะฉันคิดว่าขณะนี้มันกำลังซัดทั้งบรรทัดในครั้งเดียว เอาต์พุตที่ต้องการ: ./test.py …
49 bash  shell  find  pipe 

6
ฉันจะเปลี่ยนจำนวนพื้นที่ทำงานที่มีอยู่ใน Cinnamon ได้อย่างไร
ฉันคุ้นเคยกับพื้นที่ทำงานสี่แห่งใน Gnome แต่ตอนนี้ฉันได้ติดตั้ง Cinnamon แล้วฉันมีเพียงสองแห่งเท่านั้น ฉันสามารถเพิ่มจำนวนได้หรือไม่ ถ้าเป็นเช่นนั้นได้อย่างไร
49 gui  cinnamon 


5
โปรแกรมบรรทัดคำสั่งสามารถป้องกันไม่ให้มีการเปลี่ยนเส้นทางเอาต์พุตได้หรือไม่?
ฉันคุ้นเคยกับการทำสิ่งนี้: someprogram >output.file ฉันทำเมื่อใดก็ตามที่ฉันต้องการบันทึกผลลัพธ์ที่โปรแกรมสร้างลงในไฟล์ ฉันยังรับรู้ถึงสองตัวแปรของการเปลี่ยนเส้นทาง IOนี้: someprogram 2>output.of.stderr.file (สำหรับ stderr) someprogram &>output.stderr.and.stdout.file (สำหรับทั้ง stdout + stderr รวมกัน) วันนี้ฉันได้วิ่งข้ามสถานการณ์ที่ฉันไม่คิดว่าเป็นไปได้ ฉันใช้คำสั่งต่อไปนี้xinput test 10และตามที่คาดหวังฉันมีผลลัพธ์ต่อไปนี้: user @ hostname: ~ $ xinput ทดสอบ 10 กดปุ่ม 30 การปลดล็อคกุญแจ 30 กดปุ่ม 40 การปลดล็อคกุญแจ 40 กดปุ่ม 32 การปลดล็อคกุญแจ 32 กดปุ่ม 65 การปลดล็อคกุญแจ 65 กดปุ่ม 61 ปล่อยกุญแจ 61 กดปุ่ม …


5
ฉันจะแปลงคีย์สาธารณะ ssh-keygen เป็นรูปแบบที่ openssl PEM_read_bio_RSA_PUBKEY () ฟังก์ชันจะใช้งานได้อย่างไร
ฉันมีปัญหาในการสร้างรหัสสาธารณะที่PEM_read_bio_RSA_PUBKEY()ฟังก์ชั่นopenssl สามารถใช้งานได้ ฉันได้รับข้อผิดพลาด เห็นได้ชัดว่าฉันไม่สามารถใช้สตริง ASCII ในssh-keygen <>.pubไฟล์คีย์ได้เนื่องจากอยู่ในรูปแบบไฟล์ SSH หรืออาจเป็นSubjectPublicKeyInfoโครงสร้างก็ได้ นี่คือรหัส gen ที่สำคัญ: ssh-keygen -t rsa -b 1024 -C "Test Key" ฉันพบตัวแปลงใน php บนเว็บซึ่งจะแปลงเนื้อหาของกุญแจสาธารณะให้เป็นรูปแบบสตริง base64 PEM ASCII อย่างไรก็ตามฟังก์ชั่นยังคงไม่ชอบ สถานะเอกสารประกอบของ Openssl: “ RSA_PUBKEY () ฟังก์ชั่นที่ประมวลผลรหัสสาธารณะโดยใช้โครงสร้าง EVP_PKEY” “ ฟังก์ชั่น RSA_PUBKEY ยังประมวลผลคีย์สาธารณะ RSA โดยใช้โครงสร้าง RSA” ฉันจะทำให้กุญแจสาธารณะ OpenSSH ของฉันเป็นรูปแบบใดก็ได้ที่ฟังก์ชั่น OpenSSL จะใช้มัน?
49 openssh  openssl 

5
ฉันจะรันคำสั่งเฉพาะสำหรับผลลัพธ์การค้นหาแต่ละรายการได้อย่างไร
หนึ่งจะรันคำสั่งเฉพาะสำหรับแต่ละไฟล์ที่พบโดยใช้findคำสั่งได้อย่างไร findสำหรับวัตถุประสงค์ของคำถามช่วยบอกว่าผมเพียงต้องการที่จะลบแต่ละไฟล์พบโดย

5
วิธีรันคำสั่งติดต่อกันจากประวัติ
สมมติว่าฉันต้องการรันคำสั่งสี่คำสั่งที่ฉันได้ดำเนินการมาก่อน หากคนแรกคือ 432 ในประวัติศาสตร์คำสั่งจากนั้นฉันสามารถทำได้: $ !432; !433; !434; !435 ฉันอยากรู้อยากเห็นมีวิธีที่มีประสิทธิภาพมากขึ้นเพื่อให้บรรลุนี้

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