Score:0

Bash Script Permission ถูกปฏิเสธเมื่อกำหนดให้รัน

ธง in

ฉันทราบดีว่ามีโพสต์ที่คล้ายกัน แต่ฉันได้ติดตามสิ่งที่พวกเขาทำไปแล้ว แต่ยังคงได้รับปัญหาการอนุญาตเดิมที่ถูกปฏิเสธเมื่อพยายามเรียกใช้สคริปต์ทุบตีของฉัน

ฉันแก้ไขไฟล์ด้วยคำสั่งเช่น:

chmod u+x bash_script1.sh 

และได้รับสิ่งต่อไปนี้หลังจาก:

-rwxr--r-- 1 กลุ่มผู้ใช้ 1947 18 มิ.ย. 16:04 bash_script1.sh
-rwxr--r-- 1 กลุ่มผู้ใช้ 2430 18 มิ.ย. 15:59 น. bash_script2.sh
-rw-r--r-- 1 กลุ่มผู้ใช้ 1 มิ.ย. 61 10:57 น. run.txt

อย่างไรก็ตาม ฉันยังคงได้รับข้อผิดพลาดต่อไปนี้เมื่อเรียกใช้จากบรรทัดคำสั่ง:

คำสั่ง

./bash_script1.sh

ข้อผิดพลาด

-sh: ./bash_script1.sh: การอนุญาตถูกปฏิเสธ

เมื่อฉันเรียกใช้คำสั่งต่อไปนี้ ฉันไม่ได้รับข้อผิดพลาด แต่ฉันไม่ต้องการใช้ bash เพื่อเรียกใช้สคริปต์ของฉัน:

ทุบตี bash_script1.sh

#!/usr/bin/env ทุบตี วางไว้ที่หัวเรื่องของฉัน

hr flag
คุณให้สิทธิ์ดำเนินการกับ 'ผู้ใช้' เท่านั้น - คุณเข้าสู่ระบบด้วย 'ผู้ใช้' จริง ๆ หรือไม่เมื่อลองทำเช่นนี้ ผลลัพธ์ของคำสั่ง `id` คืออะไร คำสั่งใดที่ทำให้เกิดข้อผิดพลาด `-sh: ./bash_script1.sh: การอนุญาตถูกปฏิเสธ`
Joe_Informatics avatar
in flag
ใช่ มันเป็นข้อผิดพลาดที่ฉันได้รับเมื่อพยายามเรียกใช้ `./file_script1.sh` ในบรรทัดคำสั่ง ผลลัพธ์จะเป็นดังนี้: `uid=19979(user) gid=867800079(group) groups=867800079(group),11226(research),11765(omics)`
Joe_Informatics avatar
in flag
ฉันเพิ่งให้สิทธิ์แก่ผู้ใช้ทุกคนในการดำเนินการ chmod uga+rwx file.sh และมันยังให้สิทธิ์ฉันปฏิเสธข้อผิดพลาด....
hr flag
ตกลง สาเหตุอื่นเดียวที่ฉันคิดได้ก็คือระบบไฟล์ที่เก็บไว้นั้นติดตั้งด้วยตัวเลือก `noexec` - ตรวจสอบด้วย `findmnt -T .` (เรียกใช้จากไดเร็กทอรีที่มีสคริปต์)
Joe_Informatics avatar
in flag
`/home /dev/md126p2 xfs rw,noexec,relatime,attr2,inode64,noquota` นี่คือสิ่งที่ฉันได้รับหลังจากนั้น ฉันจะเปลี่ยนสิ่งนี้ได้อย่างไร หรือฉันต้องถามผู้ดูแลระบบของฉัน?
Score:4
ธง hr

ดังที่เราเห็นได้จากผลลัพธ์ของ findmnt -T .ระบบไฟล์ที่จัดเก็บสคริปต์จะถูกเมาต์ด้วยไฟล์ โนเอ็ก ตัวเลือก. สิ่งนี้จะป้องกันสคริปต์ (รวมถึงไฟล์เรียกทำงานแบบไบนารี) จากการถูกเรียกใช้งานโดยตรง ในขณะที่ ทุบตี bash_script1.sh ยังคงใช้งานได้เพราะ ทุบตี ไฟล์ปฏิบัติการถูกเก็บไว้ที่อื่นและจำเป็นต้องทำเท่านั้น อ่าน สคริปต์.

หากต้องการแก้ไขลักษณะการทำงานชั่วคราว คุณสามารถใช้ ภูเขา สั่งการ:

sudo mount -o รีเมาต์ exec /home

เพื่อให้การเปลี่ยนแปลงยังคงอยู่ คุณจะต้องแก้ไขของคุณ /etc/fstab ไฟล์และลบไฟล์ โนเอ็ก ตัวเลือกเมานต์สำหรับอุปกรณ์บล็อกนี้

Joe_Informatics avatar
in flag
ทั้งหมดนี้เป็นเรื่องใหม่สำหรับฉัน ดังนั้นฉันจะต้องพิจารณาให้ลึกลงไปกว่านี้อย่างแน่นอน น่าเสียดายที่ฉันไม่มีสิทธิ์ sudo ดังนั้นจะต้องติดต่อผู้ดูแลระบบของฉันเพื่อขอคำแนะนำเพิ่มเติม ขอบคุณมากอย่างน้อยสำหรับการชี้แจง :D
hr flag
@Joe_Informatics ยินดีต้อนรับ - tbh ฉันรู้สึกประหลาดใจเล็กน้อยที่ตัวเลือก `noexec` มีผลกับสคริปต์ (ไม่เฉพาะไฟล์เรียกทำงานแบบไบนารี) - หน้า man `mount` เพิ่งระบุว่า `noexec ไม่อนุญาตให้ดำเนินการโดยตรงกับไบนารีใด ๆ บน ระบบไฟล์ที่ติดตั้ง `. แต่ฉันยืนยันพฤติกรรมในระบบของฉันเอง และมีการกล่าวถึงในรายละเอียดเพิ่มเติมที่นี่ เช่น [การเรียกใช้สคริปต์ทุบตีหรือไบนารี c บนระบบไฟล์ด้วยตัวเลือก noexec](https://unix.stackexchange.com/questions/490402/ ดำเนินการ-a-bash-script-หรือ-a-c-binary-on-a-file-system-with-noexec-option)
Joe_Informatics avatar
in flag
ใช่ นี่เป็นเรื่องใหม่สำหรับฉัน แต่ก็ยินดีที่ได้ทราบต้นตอของปัญหา จะดูที่ url ที่ให้มา :D

โพสต์คำตอบ

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