การเมาท์กำลังเพิ่มการตั้งค่าสถานะการกักกันก่อให้เกิด: / bin / bash: ล่ามที่ไม่ดี: ไม่อนุญาตให้ใช้งาน - แต่ไม่ใช่ผู้ต้องสงสัยตามปกติ


8

ตกลงฉันมีปัญหาคล้ายกับ: -bash: Applications / mvim: / bin / sh: ล่ามไม่ดี: ไม่อนุญาตให้ใช้งาน - แต่มันไม่ใช่ปัญหาเดียวกัน ฉันได้รับผลลัพธ์เดียวกัน

ฉันได้ตรวจสอบแล้วว่าไม่ใช่ธง com.apple.quarantine

มันไม่ได้จบสาย (สคริปต์ที่ถูกสร้างขึ้นมาจาก vi) ฉันสามารถรันสคริปต์โดยใช้:

bash simpleshell.sh

นี่คือผลลัพธ์:

fawkes:tmp kylar$ vi simpleshell.sh
fawkes:tmp kylar$ chmod +x simpleshell.sh 
fawkes:tmp kylar$ ./simpleshell.sh 
-bash: ./simpleshell.sh: /bin/bash: bad interpreter: Operation not permitted
fawkes:tmp kylar$ cat simpleshell.sh 
#!/bin/bash
export FOO=Hey
echo $FOO
fawkes:tmp kylar$ which bash
/bin/bash
fawkes:tmp kylar$ bash simpleshell.sh 
Hey
fawkes:tmp kylar$ xattr -l simpleshell.sh 
fawkes:tmp kylar$ 

UPDATE: ฉันไม่เชื่อว่ามันเป็นระบบไฟล์ที่ติดตั้งเป็น noexec ฉันลองใช้งานสคริปต์ในที่ต่าง ๆ 3 แห่ง: / tmp, ~ และ / source

UPDATE2: ตกลงหลังจากขุดมากขึ้น - ฉันสร้างสคริปต์ภายใน / แหล่งซึ่งเป็นเมานต์ dmg นั่นคือสิ่งที่ฉันวิ่ง xattr -l และไม่พบอะไรเลย เมื่อฉัน cp ต้องการสคริปต์เป็น ~ และรัน xattr -l มันก็มี com.apple.quarantine xattr ในลางสังหรณ์ฉันมองไปที่แอตทริบิวต์ Mount สำหรับ / source และพบว่า:

/dev/disk1s9 on /Volumes/code (hfs, local, nodev, nosuid, journaled, noowners, quarantine, mounted by kylar)

ดังนั้นเมื่อฉันเมานต์ dmg นี้มันจะถูกกำหนดเป็นกักกัน ฉันจะบอกให้เมาไม่ติดด้วยธงกักกันได้อย่างไร เมื่อฉันลบการตั้งค่าสถานะใน ~ สคริปต์ก็ทำงานได้ดี


หากคุณไม่ได้รับคำตอบที่นี่ให้ลองถาม UNIX และ Linux SE
bot47

ฉันอาจข้ามโพสต์มันต่อไป - นี่เป็นพื้นปิดกั้นฉันจากการทำงานใด ๆ เสร็จ :(
Kylar

คุณสามารถรันโปรแกรมอื่น ๆ ในระบบไฟล์เดียวกันในลักษณะเดียวกันได้หรือไม่? chmod +x file.sh; ./file.shนั่นคือการใช้ บางทีระบบไฟล์นั้นถูกเมาท์ด้วยแฟล็ก "noexec"
cm2

2
อาจเป็นประโยชน์ในการเขียนคำถามของคุณอีกครั้งเพื่อถามเกี่ยวกับวิธีบอกให้เมาไม่ใช้การตั้งค่าสถานะกักกันเนื่องจากคุณพิจารณาแล้วว่าเป็นปัญหาจริงของคุณ นอกจากนี้ฉันไม่ทราบวิธีปิดการใช้งานสำหรับโวลุ่มเฉพาะ แต่เพื่อปิดการกักกันโดยรวม, defaults write com.apple.LaunchServices LSQuarantine -bool NO.
houbysoft

2
ตกลงฉันแก้ไขมันแล้ว มี xattr com.apple.quarantine ตั้งอยู่บนไฟล์. dmg ฉันต้องยกเลิกการต่อเชื่อมให้ล้าง xattr จากนั้นให้เมานต์ dmg อีกครั้ง GAH @houbysoft: ขอบคุณสำหรับเคล็ดลับในการปิดทั้งหมด
Kylar

คำตอบ:


1

สคริปต์กำลังถูกเรียกใช้จากภายใน. dmg ที่มีการตั้งค่าสถานะการกักกัน เมื่อ. dmg ถูกเมาท์มันถูกเมาท์ด้วยแฟลกกักกันที่สืบทอด แต่ไม่แสดงขึ้น ฉันเลิกเมานท์. dmg ลบธงกักกันออกแล้วติดตั้งใหม่อีกครั้งและทั้งหมดก็ทำได้ดี


ขอบคุณสำหรับสิ่งนี้. ฉันมีปัญหาที่คล้ายกันและมันทำให้ฉันเป็นบ้า: สคริปต์ Perl สร้างขึ้นโดย Vim (หรือแม้แต่แมว) โดยไม่มีการกักกัน xattr ที่เกี่ยวข้อง อย่างไรก็ตามสคริปต์อาศัยอยู่ในชุดกระจัดกระจายที่เมาท์ หลังจากอ่านหน้านี้ฉันก็ยกเลิกการต่อเชื่อมระบบไฟล์และดูข้างในบันเดิล: มีไฟล์ชื่อ "token" อยู่ในนั้นซึ่งมีชุด "com.apple.quarantine" xattr เมื่อฉันลบ xattr และติดตั้งระบบไฟล์บันเดิลแบบกระจัดกระจายปัญหา "ตัวแปลผิด" ของฉันกับสคริปต์ Perl ก็หายไป
ลีจอห์นสัน

0

ฉันมีทางออกง่ายๆ: cat configure.sh> test.sh จากนั้นเรียกใช้ test.sh.

กลายเป็นปัญหาของบรรณาธิการ: https://discussions.apple.com/thread/3733470?start=30&tstart=0


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