Unix & Linux

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

2
เป็นไปได้ไหมที่จะคอมไพล์และ bootstrap GNU?
Guix รุ่นใหม่ออกมาเมื่อไม่นานมานี้ และฉันก็มีความคิดว่าถ้าฉันสามารถ bootstrap glibc, gcc และ guix ไปยัง HURD และ Mach ฉันสามารถมีระบบ GNU ที่ไม่ใช่ Linux ได้ แต่ฉันต้องการซอฟต์แวร์บางอย่างเช่น bash, emacs, binutils, coreutils, ระบบ init มีผู้ใดบ้างที่มีการเรียกของระบบใด ๆ ฉันจะสามารถทำได้เหมือนใน LFS หรือไม่?
9 gcc  glibc  hurd 

3
พิมพ์งาน“ จัดขึ้นเพื่อรับรองความถูกต้อง”
ทำตามคำแนะนำที่นี่ฉันได้ติดตั้งเซิร์ฟเวอร์การพิมพ์ Samba บนUdoo-quadบน ARM ที่ใช้ Udoobuntu 12.04 LTS เซิร์ฟเวอร์ Samba ใช้งานได้และ (หลังจากตั้งค่าguest ok = yesในเซิร์ฟเวอร์smb.conf) ฉันสามารถเรียกดูโฟลเดอร์ "print $" (ไดรเวอร์เครื่องพิมพ์) โดยไม่ต้องป้อนข้อมูลรับรอง ฉันสามารถเรียกดูเครื่องพิมพ์ระหว่างการติดตั้งเครื่องพิมพ์ฝั่งไคลเอ็นต์ (บน Ubuntu 13.10) แต่งานพิมพ์ไม่ได้ไปที่เซิร์ฟเวอร์ พวกเขาเพียงแค่นั่งอยู่ในคิวการพิมพ์ลูกค้าที่มีข้อความสถานะ"ที่จัดขึ้นสำหรับการตรวจสอบ" ฉันมีเซิร์ฟเวอร์ที่กำหนดค่าเพื่ออนุญาตให้ผู้เยี่ยมชมเข้าถึงเครื่องพิมพ์ที่มีหัวข้อต่อไปนี้ใน/etc/samba/smb.conf(ตามที่รายงานโดยtestparm): [printers] comment = All Printers path = /var/spool/samba create mask = 0700 guest ok = Yes printable = Yes print ok = Yes …
9 ubuntu  samba  printing  arm 

2
ทำไม setuid ไม่สามารถใช้งานกับไฟล์ที่เรียกทำงานได้?
ฉันรู้ว่าการเปิดใช้งาน setuid กับสคริปต์มีปัญหาด้านความปลอดภัยและดังนั้นจึงไม่ได้ใช้งานเป็นค่าเริ่มต้น แต่คาดว่าจะใช้งานได้สำหรับไฟล์ปฏิบัติการ ฉันสร้างและปฏิบัติการซึ่งแสดง uid เป็นคำสั่งต่อไปนี้อธิบายไว้ในโพสต์นี้: อนุญาต setuid ในสคริปต์เชลล์ แต่มันกลับ uid เดียวกัน (1000) sudo chmod +s ./setuid-testทั้งก่อนและหลังการทำงาน ฉันคิดว่านี่หมายความว่า setuid ไม่มีผลกระทบใด ๆ ต่อการปฏิบัติการของฉันทำไมและวิธีการแก้ปัญหา? รหัสแหล่งที่มา: #include <stdio.h> #include <unistd.h> int main(int argc, char** argv) { printf("%d", geteuid()); return 0; } สร้างและเรียกใช้ด้วย $ gcc -o setuid-test setuid-test.c $ ./setuid-test 1000 $ sudo …

2
APEI Generic Hardware Error
ในช่วงสัปดาห์ที่ผ่านมาเซิร์ฟเวอร์ของฉัน (ใช้งาน Debian Jessie) ได้รีบูตเครื่องสองครั้ง ใน syslog ฉันเห็นสิ่งนี้ก่อนการรีบูตแต่ละครั้งและไม่มีประเด็นอื่น: Aug 15 13:32:58 hoshimiya kernel: [296512.005355] {1}[Hardware Error]: Hardware error from APEI Generic Hardware Error Source: 1 Aug 15 13:32:58 hoshimiya kernel: [296512.005360] {1}[Hardware Error]: It has been corrected by h/w and requires no further action Aug 15 13:32:58 hoshimiya kernel: [296512.005361] …
9 hardware 

4
จำกัด เวลาที่อนุญาตให้ผู้ใช้ลงชื่อเข้าใช้
เรามีระบบ Backbox 3.13 หลายตัวที่สร้างบน Ubuntu 12.04 หนึ่งในวัยรุ่นของฉันไม่เข้าใจแนวคิดของสิ่งนี้เรียกว่า "หลับ" และมีแนวโน้มที่จะลุกขึ้นเล่นบนคอมพิวเตอร์ ฉันพยายาม จำกัด การกระทำนั้น เราลองพี่เลี้ยงซึ่งใช้งานได้สองสามวัน จากนั้นแม้ว่าการตั้งค่าจะยังคงอยู่ในสถานที่ แต่ก็ยังช่วยให้วัยรุ่นดังกล่าวสามารถเข้าถึงบัญชีผู้ใช้และอินเทอร์เน็ตของเธอได้ /etc/security/time.confหลังจากการวิจัยบางอย่างผมตัดสินใจที่จะลองปรับเปลี่ยน เห็นได้ชัดว่าฉันไม่ได้ทำอย่างถูกต้องเพราะไม่ว่าคำสั่งใดที่ฉันป้อนลงในไฟล์เรายังสามารถเข้าสู่บัญชีผู้ใช้ของเธอได้ เราไม่ต้องการให้เธอเข้าถึงได้ตั้งแต่ 21.00 น. ถึง 18.00 น. เรายังคงต้องการให้ฉันเข้าถึงคอมพิวเตอร์ได้ตลอดเวลา นี่คือไวยากรณ์หลายอย่างที่ฉันได้ลอง: 1. login;*;username;A12100-0600 2. login;*;username;!A12100-0600 3. login;*;username;!A12100-0600 login;*;my username;A10000-2400 4. login;*;!username;A12100-0600 ฉันจะบ้าไปที่นี่โดยพยายามหาวิธีทำสิ่งนี้ ฉันแน่ใจว่ามันเป็นเรื่องง่ายที่ฉันพลาดหรือกำลังเข้ามาอย่างไม่ถูกต้อง ความช่วยเหลือใด ๆ ที่จะได้รับการชื่นชม

2
ภาพตัวอย่างแรนเจอร์ที่มีพื้นหลังขั้วโปร่งใส
ฉันชอบภาพตัวอย่างในเรนเจอร์ แต่ฉันชอบเทอร์มินัลโปร่งใสของฉัน มีวิธีใดที่จะทำให้ภาพตัวอย่างทำงานกับ w3m และพื้นหลังโปร่งใสได้หรือไม่? (ฉันยินดีเปลี่ยนเทอร์มินัลอีมูเลเตอร์ของฉันหากจำเป็น urxvt ปัจจุบัน)
9 w3m  ranger 

2
ลบ / tmp โดยไม่ตั้งใจ
ฉันวิ่งไปโดยบังเอิญsudo rm -r /tmpนั่นเป็นปัญหาหรือไม่? ฉันสร้างมันขึ้นมาโดยใช้มันsudo mkdir /tmpช่วยแก้ปัญหาได้ไหม? หลังจากที่ฉันสร้างไดเรกทอรีขึ้นมาใหม่ในส่วนของplacesในแถบด้านข้างใน nautilus ใน Ubuntu 14.04 ฉันเห็น / tmp ซึ่งไม่เคยมีมาก่อน .. นั่นเป็นปัญหาหรือเปล่า สิ่งสุดท้ายที่ฉันต้องsudo chown $USER:$USER /tmpทำเพื่อให้สามารถเข้าถึงได้เหมือนเดิม .. จะมีผลข้างเคียงหลังจากนี้หรือไม่? โดยวิธีการที่ฉันได้รับข้อผิดพลาดที่เกี่ยวข้องกับดูเหมือนเมื่อฉันพยายามใช้การเติมข้อความอัตโนมัติทุบตี bash: ไม่สามารถสร้างไฟล์ temp สำหรับ here-document: การอนุญาตถูกปฏิเสธ

1
สร้างนามแฝงชั่วคราวหลายรายการ
ฉันไม่ใช่ผู้ใช้รูต & ฉันไม่สามารถเข้าถึงไฟล์นามแฝงส่วนกลางที่มีชื่อแทนทั้งหมดที่สร้างขึ้น แต่ฉันต้องการสร้างชื่อแทนบางส่วนที่ยังคงใช้งานได้เฉพาะสำหรับเซสชันที่ฉันเข้าสู่ระบบฉันใช้คำสั่งalias x='cd /parent/child'เพื่อสร้าง นามแฝงที่จะทำให้ฉันพิมพ์xบนคอนโซล & ฉันเปลี่ยน dir เป็น / Parent / Child อย่างไรก็ตามฉันต้องการสร้างชื่อแทนหลายรายการและฉันไม่ต้องการพิมพ์ชื่อแทนแต่ละรายการที่ฉันสร้างทุกครั้ง ฉันพยายามวางชื่อแทนทั้งหมด 'ทำสิ่งนี้' บรรทัดในไฟล์ (ให้สิทธิ์ 777) โดยหวังว่าเมื่อใช้งานไฟล์นามแฝงเหล่านี้ทั้งหมดจะถูกสร้างขึ้นทุกครั้งที่ฉันลงชื่อเข้าใช้ แต่นั่นไม่ได้เกิดขึ้น เช่น alias x='cd /parent/child' alias y='cd /a/b/c' alias z='tail -0f some.log' ฉันยังลองนี้ในไฟล์ แต่ไร้ประโยชน์: alias x='cd /parent/child';alias y='cd /a/b/c';alias z='tail -0f some.log' ไม่มีชื่อนามแฝงที่ฉันได้ลองแล้วมีอยู่ในชื่อแทนส่วนกลางแล้ว (ฉันพิมพ์นามแฝงและเห็นผลลัพธ์บนหน้าจอ)
9 alias 

2
จะติดตั้ง meld 3.11 ใน Ubuntu 14.04 ได้อย่างไร
ฉันพยายามรวม meld 3.11 เพื่อใช้งานบน Ubuntu 14.04 ฉันลองทำตามวิธีด้านล่าง " cd ~ git clone https://git.gnome.org/browse/meld cd meld sudo ln -s ~/meld/bin/meld /usr/bin/meld แต่เมื่อฉันรัน meld ใน terminal ฉันได้รับข้อผิดพลาดดังต่อไปนี้ Traceback (most recent call last): File "/usr/bin/meld", line 223, in <module> setup_settings() File "/usr/bin/meld", line 197, in setup_settings cwd=melddir) File "/usr/lib/python2.7/subprocess.py", line 522, in call …

1
วิธีการประมาณลูป / เวลาสำหรับ GNU ddrescue (1.18.1) เสร็จสมบูรณ์โดยใช้สถานะปัจจุบัน
พื้นหลัง / บริบท: ขณะนี้ฉันกำลังใช้ GNU ddrescue 1.18.1 เพื่อกู้คืนข้อมูลจาก USB ที่ประสบปัญหาการถอดสายเคเบิลในขณะที่ฉันกำลังเขียนอิมเมจดิสก์เสมือนลงบนพาร์ติชัน disk2s1 เริ่มแรกฉันจะกู้คืนพาร์ติชั่นที่สองของฉัน (disk2s2) และสังเกตว่าฉันได้มาถึงขั้นตอนที่สาม (การแยก) ฉันวางภาพลงบนที่เก็บข้อมูลเครือข่าย คำถาม: ฉันสังเกตุเห็นว่าช่วงนี้ลูป มีวิธีในการคำนวณจำนวนลูปที่ฉันน่าจะได้รับจากข้อมูลสถานะปัจจุบันของฉันหรือไม่ (ฉันแสดงข้อผิดพลาดสองข้อเท่านั้น) สถานะ: การปรับปรุง / แก้ไข: ดังนั้นฉันยังคงสนใจอย่างมากว่าจะประเมินลูป / เวลาโดยใช้เครื่องมือ ddrescue ได้อย่างไร ตามความคิดเห็นฉันกำลังเพิ่มการประเมินผลของไฟล์บันทึกสำหรับพาร์ติชัน disk2s1 ของฉันที่กำลังทำงานอยู่ (disk2s2 เสร็จสมบูรณ์หลังจาก 14.5 ชั่วโมงโดยมีผู้ใช้หนึ่งรายหยุดชะงักประมาณ 6 ชั่วโมง) บันทึกพาร์ติชันเสร็จสมบูรณ์ สำหรับพาร์ติชันที่เพิ่งเสร็จสิ้นนี่คือผลลัพธ์ของการตรวจสอบบันทึก การอ้างอิง (หมายเหตุขั้นตอนวิธี ddrescue): 4 อัลกอริทึม GNU ddrescue ไม่ได้เป็นอนุพันธ์ของ dd และไม่เกี่ยวข้องกับ …
9 ddrescue 

4
วางงานในพื้นหลังโดยไม่หยุด
สมมติว่าคุณเริ่มงานเช่นนี้ foo และจากนั้นความปรารถนาที่คุณต้องการวางไว้ในพื้นหลัง พิมพ์ดีดCtrl+ Zแล้วbgไม่หลอกลวง แต่จะหยุดfooระหว่างCtrl+ และZ bgฉันจะวาง foo ไว้ในพื้นหลังโดยไม่หยุดก่อนได้อย่างไร
9 bash 

1
Multi-Threading / Forking ในสคริปต์ทุบตี
ฉันได้เขียนสคริปต์ทุบตีซึ่งอยู่ในรูปแบบต่อไปนี้: #!/bin/bash start=$(date +%s) inFile="input.txt" outFile="output.csv" rm -f $inFile $outFile while read line do -- Block of Commands done < "$inFile" end=$(date +%s) runtime=$((end-start)) echo "Program has finished execution in $runtime seconds." whileห่วงจะอ่านจากดำเนินกิจกรรมบางอย่างในสายและการถ่ายโอนผลใน$inFile$outFile เนื่องจาก$inFileมีความยาว 3,500+ บรรทัดสคริปต์จะใช้เวลา 6-7 ชั่วโมงในการดำเนินการอย่างสมบูรณ์ เพื่อลดเวลานี้ฉันวางแผนที่จะใช้หลายเธรดหรือฟอร์กในสคริปต์นี้ ถ้าฉันสร้างกระบวนการลูก 8 กระบวนการจะประมวลผล 8 บรรทัด$inFileพร้อมกัน สิ่งนี้สามารถทำได้?

2
รับค่าตัวแปรสภาพแวดล้อมใน systemd Docker container
ฉันมีหางภาชนะทำงาน systemd ฉันต้องการส่งผ่านตัวแปรสภาพแวดล้อมไปยังแอปพลิเคชันภายใต้ เมื่อฉันเริ่มต้นจากภายใน systemd หาง ( /sbin/initเป็นบรรทัดคำสั่ง), หาง exposes ตัวแปรเพื่อ systemd แต่ไม่ได้สัมผัสกับบริการรับเลี้ยงเด็ก ถ้าฉันเพิ่มsystemd.setenv=...ใน cmdline ตัวแปรจะถูกส่งผ่าน ฉันกำลังมองหาทางออกที่สะอาดกว่า ฉันจะเปิดเผยตัวแปรสภาพแวดล้อมที่ส่งผ่านไป/sbin/initยังแอปพลิเคชันที่เริ่มต้นได้อย่างไร % docker run -v /sys/fs/cgroup:/sys/fs/cgroup:ro --privileged -ti \ -e VAR1=1 motiejus/systemd_fedora20 \ init systemd.setenv=VAR2=2 ... Welcome to Fedora 20 (Heisenbug)! ... [ OK ] Reached target Multi-User System. [root@740690365eb0 ~]# env | …

4
การจับคู่สตริงที่มีจำนวนอักขระคงที่โดยใช้ grep
ฉันพยายามค้นหา6คำศัพท์ที่ใช้grepทั้งหมด ฉันมีสิ่งนี้: grep "^.\{6\}$" myfile.txt étuisแต่ฉันพบว่านอกจากนี้ผมยังได้รับผลเช่น étude, ฉันสงสัยว่ามันมีบางอย่างเกี่ยวกับสัญลักษณ์ด้านบนeในคำด้านบน มีสิ่งที่ฉันสามารถทำได้เพื่อให้แน่ใจว่าสิ่งนี้จะไม่เกิดขึ้น? ขอบคุณสำหรับความช่วยเหลือของคุณ!

5
ค้นหาสตริงที่แน่นอนด้วย grep
โดยวิธีการเช่นฉันเป็นไฟล์ข้อความขนาดใหญ่ที่มีที่อยู่อีเมลจำนวนมากโดยใช้ทุบตีฉันต้องการค้นหา / ตรวจสอบว่ามีอีเมลอยู่ (หรือไม่) ควรจะใช้ "เบรก" เท่านั้นหรือไม่ grep '^user1@example.com' text_file หรือว่ามีวิธีที่ดีกว่า ฉันต้องการสร้างสคริปต์ทุบตีและฉันต้องการความปลอดภัย
9 grep 

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