คำถามติดแท็ก executable

บิตการอนุญาตในโหมดไฟล์ที่อนุญาตให้เรียกใช้ไฟล์เป็นโปรแกรม นอกจากนี้คำถามที่เกี่ยวข้องกับรูปแบบของไฟล์โปรแกรมและการค้นหาและเรียกใช้ไฟล์โปรแกรม

5
การดำเนินการของโปรแกรมที่อาจเป็นอันตรายบน Linux
ฉันกำลังเขียนโปรแกรมที่จะทดสอบโปรแกรมที่เขียนโดยนักเรียน ฉันกลัวว่าฉันจะไม่ไว้ใจพวกเขาและฉันต้องแน่ใจว่ามันจะไม่จบลงอย่างเลวร้ายสำหรับคอมพิวเตอร์ที่ใช้งาน ฉันกำลังคิดเกี่ยวกับการทำให้ผู้ใช้ทดสอบข้อผิดพลาดที่มีการเข้าถึงทรัพยากรระบบอย่าง จำกัด และเรียกใช้โปรแกรมในฐานะผู้ใช้รายนั้น แต่จากสิ่งที่ฉันพบในเน็ตจนถึงการสร้างระบบเสมือนจะเป็นตัวเลือกที่ปลอดภัยที่สุด ... ใครสามารถช่วยฉันด้วยการเลือกวิธีการที่ถูกต้อง? ความปลอดภัยเป็นเรื่องใหญ่สำหรับฉัน ในทางกลับกันฉันไม่ต้องการทางออกที่เกินกำลังและเสียเวลามากมายในการเรียนรู้สิ่งที่ฉันไม่ต้องการ

2
ความแตกต่างระหว่าง“ ไม่พบคำสั่ง” และ“ ไม่มีไฟล์หรือไดเรกทอรีดังกล่าว”?
ตัวอย่างเช่น: $ node -bash: /usr/local/bin/node: No such file or directory $ foo -bash: foo: command not found ความแตกต่างคืออะไร? ในทั้งสองกรณีnodeและfooเป็นคำสั่งที่ไม่ถูกต้อง แต่ดูเหมือนว่า Unix จะไม่พบnodeไบนารี เมื่อถอนการติดตั้งโปรแกรมเช่นnodeมีวิธีล้างข้อมูลนี้เพื่อให้ได้รับหรือไม่ $ node -bash: node: command not found แก้ไข: ผลลัพธ์จากtypeคำสั่ง: $ type node node is hashed (/usr/local/bin/node) $ type foo -bash: type: foo: not found


1
Linux ทำอะไรที่แตกต่างกันซึ่งทำให้ฉันสามารถลบ / แทนที่ไฟล์ที่ Windows จะบ่นว่าไฟล์นั้นถูกใช้งานอยู่ในปัจจุบัน?
ตัวอย่างที่ฉันมีคือ Minecraft เมื่อรัน Bukkit บน Linux ฉันสามารถลบหรืออัปเดตไฟล์. jar ในโฟลเดอร์ / plugins และเพียงแค่เรียกใช้คำสั่ง 'reload' ใน Windows ฉันต้องใช้กระบวนการเซิร์ฟเวอร์ทั้งหมดเพราะจะบ่นว่าขณะนี้ไฟล์. jar กำลังใช้งานอยู่เมื่อฉันพยายามลบหรือแทนที่ มันยอดเยี่ยมสำหรับฉัน แต่ทำไมมันเกิดขึ้น Linux ทำอะไรที่นี่แตกต่างกันอย่างไร

2
sudo: ไม่สามารถเรียกใช้. /script.sh: ไม่มีไฟล์หรือไดเรกทอรีดังกล่าว
ฉันนิ่งงัน ฉันมีสคริปต์ใน/homeไดเรกทอรีซึ่งสามารถใช้งานได้: [user@server ~]$ ll total 4 -rwx------ 1 user user 2608 Jul 15 18:23 qa.sh อย่างไรก็ตามเมื่อฉันพยายามเรียกใช้โดยแจ้งsudoว่าไม่พบ: [user@server ~]$ sudo ./qa.sh [sudo] password for user: sudo: unable to execute ./qa.sh: No such file or directory นี่คือการสร้างใหม่ ไม่มีการเปลี่ยนแปลงใด ๆ ที่จะทำให้เกิดปัญหา ในความเป็นจริงจุดของสคริปต์คือเพื่อให้แน่ใจว่ามันถูกสร้างขึ้นจริงตามนโยบายของเรา อาจเป็นไปไม่ได้และsudoกำลังถูกทำลายในระหว่างการสร้าง ฉันควรทราบด้วยว่าฉันสามารถเรียกใช้sudoคำสั่งอื่นในไดเรกทอรีอื่นได้ แก้ไข: สคริปต์ (ฉันไม่ได้เขียนดังนั้นอย่า/bin/bashให้ฉันมากกว่านั้นโปรด;)) #! /bin/bash . /root/.bash_profile customer=$1 …

5
ความเข้ากันได้ไบนารีระหว่าง Mac OS X และ Linux
รั้งตัวเองคำถามนี้จะดูเหมือนไร้เดียงสาและ / หรือโง่เขลาเพราะฉันค่อนข้างใหม่กับการทำงานภายในของยูนิกซ์เช่นระบบและการเขียนโปรแกรมโดยทั่วไป พร้อมหรือยัง? ตกลง! ฉันจะผ่านความน่าหัวเราะประมาณ 3 ระดับเพิ่มขึ้นเมื่อฉันไปตาม เรามีสองระบบที่มีฮาร์ดแวร์ที่คล้ายกัน (จุดหลักคือหน่วยประมวลผลให้เราพูด Intel Core 2 duo มาตรฐาน) หนึ่งกำลังทำงาน (แทรกของลินุกซ์ distro ของคุณที่นี่: Ubuntu จะใช้ต่อจากนี้ไป) และอื่น ๆ ที่กำลังทำงานสมมติว่า Mac OS X หนึ่งรวบรวมโปรแกรมที่เทียบเท่าให้เราพูดสิ่งที่ชอบ: int main() { int cat = 33; int dog = 5*cat; return dog; } รหัสนั้นง่ายมากเพราะฉันไม่ต้องการพิจารณาความหมายของไลบรารีที่แชร์ เมื่อรวบรวมในระบบที่เกี่ยวข้อง ความแตกต่างที่สำคัญระหว่างเอาท์พุทเป็นเรื่องของ ELF กับ Mach-O ไม่ใช่หรือ? หากมีใครที่จะตัดเลขฐานสองของการจัดรูปแบบออกจากไบนารีแบบแบนคำสั่งของเครื่องที่ถอดประกอบจะไม่เหมือนเดิมหรือไม่ …

11
ดำเนินการเป็น. test แทน. / Test
หากว่าฉันอยู่ในโฟลเดอร์เดียวกับไฟล์ที่เรียกใช้งานได้ฉันจะต้องพิมพ์สิ่งนี้เพื่อเรียกใช้งาน: ./file ฉันไม่ต้องการพิมพ์/เพราะ/ยากสำหรับฉันที่จะพิมพ์ มีวิธีที่ง่ายกว่าในการเรียกใช้ไฟล์หรือไม่? เป็นการดีที่จะมีไวยากรณ์ง่ายๆเช่น: .file หรืออย่างอื่นนอกจากง่ายกว่าต้องใส่/ตัวอักษรตรงนั้น อาจมีวิธีใส่บางอย่างใน/binไดเรกทอรีหรือสร้างนามแฝงสำหรับล่ามเพื่อที่ฉันจะได้ใช้: p file

2
เหตุใดจึงไม่สามารถเรียกใช้งานรูทได้เมื่อตั้งค่าบิตที่สามารถเรียกทำงานได้
rootผู้ใช้สามารถเขียนไปยังไฟล์แม้ว่าwriteจะไม่ได้ตั้งค่าการอนุญาต rootผู้ใช้สามารถอ่านไฟล์ได้แม้ว่าreadจะไม่ได้ตั้งค่าการอนุญาต rootผู้ใช้สามารถ cdเข้าไปในไดเรกทอรีแม้ว่าexecuteจะไม่ได้ตั้งค่าการอนุญาต rootผู้ใช้ไม่สามารถเรียกใช้ไฟล์เมื่อexecuteไม่ได้ตั้งค่าการอนุญาต ทำไม? user$ echo '#!'$(which bash) > file user$ chmod 000 file user$ ls -l file ---------- 1 user user 12 Jul 17 11:11 file user$ cat file # Normal user cannot read cat: file: Permission denied user$ su root$ echo 'echo hello' >> file # …

4
เหตุใดการอัปเดตระบบ Linux ที่ใช้งานจึงไม่มีปัญหา
เป็นเวลาหลายปีที่ฉันใช้ระบบ Linux ทุกวันและฉันไม่เคยมีปัญหาที่สำคัญโดยการอัปเดตระบบเมื่อมันทำงานอยู่ แต่ฉันก็ยังสงสัยว่าทำไมสิ่งนี้ถึงเป็นไปได้ ขอยกตัวอย่าง สมมติว่าโปรแกรม "A" จากบางแพ็คเกจกำลังทำงานอยู่ในระบบ โปรแกรมนี้จะต้องเปิดไฟล์อื่น ("B") จากแพ็คเกจเดียวกัน หลังจากนั้นโปรแกรม "A" จะปิด "B" เพราะไม่ต้องการอีกต่อไป สมมติว่าตอนนี้ฉันอัปเดตแพ็คเกจ "A" และ "B" "A" ไม่ได้รับผลกระทบโดยตรงจากการดำเนินการนี้อย่างน้อยก็ในขณะนี้เนื่องจากทำงานใน RAM และการอัปเดตจะแทนที่ "A" บนฮาร์ดดิสก์ สมมติว่า "B" ถูกแทนที่บนระบบไฟล์ด้วย ตอนนี้ "A" จำเป็นต้องอ่าน "B" อีกครั้งด้วยเหตุผลบางอย่าง คำถามคือ: เป็นไปได้หรือไม่ที่ "A" อาจพบรุ่น "B" ที่เข้ากันไม่ได้และเกิดความผิดพลาดหรือการทำงานผิดพลาดด้วยวิธีอื่น? เหตุใดจึงไม่มีใครอัปเดตระบบของพวกเขาโดยการรีบูตด้วย CD สดหรือขั้นตอนที่คล้ายกัน

6
วิธีใช้ `/ usr / bin / env sed -f 'ใน shebang?
การพิมพ์/usr/bin/env sed -fงานเทอร์มินัล แต่ถ้าใช้เป็น Shebang #!/usr/bin/env sed -f s/a/b/ สคริปต์จะล้มเหลวในการดำเนินการ: /usr/bin/env: sed -f: No such file or directory ฉันเชื่อว่ามันเกี่ยวข้องกับ -f แต่จะแก้ไขได้อย่างไร?

1
วิธีการหลอกลวงคำสั่งเฉพาะให้คิดว่าเป็นวันที่แตกต่างกันอย่างไร
ฉันจะรันคำสั่งทำให้เชื่อได้อย่างไรว่าวันที่แตกต่างจากวันที่หนึ่ง ตัวอย่างเช่นถ้าฉันมีสคริปต์นี้: #!/usr/bin/env bash date +"%B %d, %Y" มันพิมพ์วันที่จริง: march 13, 2014 แต่ฉันต้องการให้พิมพ์วันที่อื่นในอนาคตหรืออดีตโดยไม่เปลี่ยนวันที่ของระบบ ถ้าฉันไม่ชัดเจนพอฉันต้องการเครื่องมือบรรทัดคำสั่งเช่นเครื่องมือWindows GUIนี้ ฉันไม่ต้องการใช้สคริปต์อื่น (เป็นเพียงตัวอย่าง) ฉันไม่ต้องการที่จะตั้งcronjob ฉันไม่ต้องการเปลี่ยนวันที่ระบบทั่วไป เปลี่ยนเฉพาะวันที่ที่ใช้กับคำสั่งเพื่อเรียกใช้
23 date  executable 

1
“ LSB” หมายถึงอะไรเมื่ออ้างถึงไฟล์ที่สามารถใช้งานได้ในเอาต์พุตของ / bin / ไฟล์?
ฉันได้พบคำว่า" LSB executable"หรือ" LSB shared object"ในผลลัพธ์ของfileคำสั่งใน Linux ตัวอย่างเช่น: $ file /bin/ls /bin/ls: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.32, BuildID[sha1]=4637713da6cd9aa30d1528471c930f88a39045ff, stripped "LSB" หมายถึงอะไรในบริบทนี้

1
Linux กำหนดสิ่งอำนวยความสะดวกในการใช้งานเพื่อเรียกใช้ไบนารี (ที่ไม่ใช่ข้อความ) ได้อย่างไร
ฉันเข้าใจว่า Linux ใช้บรรทัด shebang เพื่อพิจารณาว่าล่ามอะไรที่จะใช้สำหรับภาษาสคริปต์ แต่มันทำงานกับไบนารีได้อย่างไร ฉันหมายถึงฉันสามารถเรียกใช้ไบนารีลินุกซ์และมีการติดตั้งทั้งไวน์และขาวดำ , Windows พื้นเมืองและ. NET ไบนารี และสำหรับพวกเขาทั้งหมดมันเป็นเพียงแค่./binary-name(ถ้าไม่ได้อยู่ใน PATH) เพื่อเรียกใช้ Linux ตรวจสอบได้อย่างไรว่าไบนารีที่กำหนดต้องทำงานเป็นไบนารีเนทิฟ Linux, เป็นไบนารีเนทีฟ Windows (โดยใช้เครื่องอำนวยความสะดวกด้านไวน์ ) หรือเป็นไบนารี Windows .NET (โดยใช้เครื่องอำนวยความสะดวกแบบโมโน )
23 linux  executable 

2
ทำไม sshd ต้องใช้พา ธ สัมบูรณ์
เหตุใดจึงsshdต้องใช้พา ธ สัมบูรณ์เมื่อรีสตาร์ทเช่น/usr/sbin/sshdแทนที่จะเป็นsshd มีผลกระทบด้านความปลอดภัยหรือไม่? ป.ล. ข้อผิดพลาด: # sshd sshd re-exec requires execution with an absolute path

1
สิ่งที่ ~ / .local / bin เริ่มต้นอย่างไร มันแพร่หลายแค่ไหน?
ฉันพบเครื่องมือมากขึ้นและมากขึ้นที่ใส่ไฟล์ปฏิบัติการลงใน ~ / .local / bin ฉันแก่แล้วและสำหรับฉัน ~ / bin คือที่สำหรับ $ executables สำหรับปฏิบัติการของฉัน แฟชั่นใหม่ที่บ้าคลั่งนี้มาจากไหน ทำไมผู้คนถึงทำเช่นนี้? มันแพร่หลายแค่ไหน? มันเป็นทางการทุกที่หรือไม่? ไม่ได้อยู่ในข้อกำหนดคุณสมบัติของไดเรกทอรี XDG มีคำถามที่เกี่ยวข้อง: การกระจายใดมี $ HOME / .local / bin ใน $ PATH ความคิดเห็นสำหรับคำถามอื่นอ้างถึงhttps://www.python.org/dev/peps/pep-0370ซึ่งเคยใช้ในปี 2551 มาแล้ว: ทำไมโปรแกรมนี้ถึงติดตั้งลงใน ~ / .local / bin ... นั่นเป็นครั้งแรก เวลาที่ฉันเห็นว่าเกิดขึ้น?

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