Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การแก้ไขปัญหา >> Linux

แก้ไขสิทธิ์ Zsh ที่ถูกปฏิเสธบน Linux และ macOS:การแก้ไขด่วนและการแก้ไขปัญหา

สิทธิ์ Zsh ถูกปฏิเสธเป็นข้อผิดพลาดที่เกิดขึ้นเมื่อคุณพยายามรันคำสั่งบน Linux หรือ Mac ซึ่งคุณไม่มีสิทธิ์ดำเนินการ คำสั่งอาจตรงไปตรงมาเหมือนกับการดำเนินการ 'ls' ในไดเร็กทอรีที่คุณไม่มีสิทธิ์เขียนหรือรันสคริปต์ที่ดำเนินการที่ผู้ใช้ของคุณไม่ได้รับอนุญาตให้ทำ จากการอนุญาต เราอ้างถึงการอนุญาตในการอ่านหรือเขียน

มาดูสาเหตุหลักของข้อผิดพลาดนี้ จากนั้นเราจะลองแต่ละวิธีเพื่อดูว่าวิธีใดทำงานได้ดีที่สุด

ข้อผิดพลาดนี้ส่วนใหญ่เกิดขึ้นเมื่อคุณไม่มีสิทธิ์ดำเนินการ เขียน หรืออ่านไฟล์

สมมติว่าเราอยู่ในเชลล์ Zsh ในระบบปฏิบัติการ Linux และคุณกำลังพยายามแสดงรายการเนื้อหาของไฟล์โดยใช้ 'cat' แต่คุณได้รับข้อผิดพลาด 'permission rejected'

เพื่อแก้ไขข้อผิดพลาดนี้ ก่อนอื่นเราต้องแสดงรายการสิทธิ์ของไฟล์ก่อน เราดำเนินการ “ls -l” เพื่อดูสิทธิ์

อย่างที่คุณเห็น การอนุญาตนั้นมีเพียงผู้ใช้รูทและกลุ่มรูทเท่านั้นที่สามารถอ่านไฟล์ได้ ในขณะที่ผู้ใช้รูทสามารถเขียนได้เฉพาะไฟล์เท่านั้น

1. ใช้ sudo

เพื่อแก้ไขปัญหานี้ วิธีแก้ปัญหาที่ง่ายที่สุดคือใช้ 'sudo' ด้วยคำสั่งที่เราอยากจะรัน สิ่งนี้จะดำเนินการคำสั่งในฐานะผู้ใช้รูท ในกรณีของคุณเช่นกัน คุณสามารถใช้ 'sudo' เมื่อคุณมั่นใจว่าคำสั่งที่คุณต้องการดำเนินการหรืองานที่คุณต้องการเรียกใช้จะไม่เป็นอันตรายต่อคอมพิวเตอร์ของคุณ

เราจึงสามารถรันได้:

sudo cat file

2. เปลี่ยนการอนุญาตของไฟล์หรือไฟล์

สิ่งต่อไปที่เราทำได้คือเปลี่ยนการอนุญาตของไฟล์ เนื่องจากข้อผิดพลาดการอนุญาตถูกปฏิเสธมักเกิดจากการอนุญาตในการอ่านหรือเขียน เราจึงสามารถเปลี่ยนการอนุญาตของไฟล์นั้น ๆ ได้ 

โดยดำเนินการ 'ls -l' ภายในไดเร็กทอรีที่มีไฟล์อยู่ เราจะเห็นว่าเจ้าของและกลุ่มของไฟล์นั้นเป็น root

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

เราวิ่งได้:

sudo chown [ผู้ใช้] [ชื่อไฟล์]

ในตัวอย่างของเรา เนื่องจาก v3n0m เป็นผู้ใช้ที่เราเข้าสู่ระบบ เราจะออกคำสั่งเป็น:

sudo chown v3n0m file

v3n0m นี่คือผู้ใช้ของเรา ในกรณีของคุณ มันจะเป็นชื่อผู้ใช้ของคุณ 

ตอนนี้ เราสามารถเรียกใช้ cat บนไฟล์ได้ เนื่องจากไฟล์จะไม่ให้ ข้อผิดพลาดในการปฏิเสธสิทธิ์ อีกต่อไป

3. เปิดใช้งานสิทธิ์ดำเนินการ

คุณสามารถใช้ ./ กับชื่อไฟล์ใน zsh หรือเชลล์อื่นๆ เพื่อรันไฟล์ในรูปแบบโปรแกรม แต่หากไม่ได้ตั้งค่าการอนุญาตดำเนินการในไฟล์ มันจะให้ zsh :ข้อผิดพลาดการอนุญาตถูกปฏิเสธ

สมมติว่าเราต้องการรันสคริปต์ชื่อ script1 เราพิมพ์ ./script1 ในเทอร์มินัลของเรา และมันแจ้งข้อผิดพลาดนี้:

เราทำ ls -la ในไฟล์เพื่อดูการอนุญาต ดังที่คุณเห็นว่าไม่ได้ตั้งค่าสิทธิ์การดำเนินการในไฟล์ 

วิธีแก้ปัญหานี้ง่ายมาก เพิ่มสิทธิ์ในการดำเนินการให้กับไฟล์
เราออกคำสั่งง่ายๆ

chmod +x script1

ชโมด +x จะเพิ่มบิตดำเนินการ เกี่ยวกับการอนุญาตของไฟล์ สำหรับเจ้าของ กลุ่ม รวมถึงคนอื่นๆ 

ตอนนี้เราสามารถเรียกใช้ไฟล์เป็นโปรแกรมได้โดยพิมพ์ ./script1 โดยไม่มีข้อผิดพลาดใดๆ

การดำเนินการนี้ควรแก้ไขข้อผิดพลาดหากคุณพบปัญหาบน Linux อย่างไรก็ตาม หากคุณพบข้อผิดพลาดของ MacOS หรือ Gradle โปรดติดตามบทความต่อไป

แก้ไขไฟล์ zshrc ของคุณ (macOS)

ผู้ใช้บางรายรายงาน MacOS ของตนโดยใช้ zsh เมื่อไม่ได้อยู่ในไดเร็กทอรีจากตำแหน่งที่ต้องการดำเนินการคำสั่ง 

หากคุณประสบปัญหาที่คล้ายกัน การแก้ไขนั้นง่ายมาก 

คุณต้องแก้ไข .ไฟล์ zshrc ในหน้าแรก/ชื่อผู้ใช้ของคุณ ไดเร็กทอรีและเพิ่มส่วนนี้ที่ส่วนท้ายของไฟล์ 

setopt auto_cd

ซึ่งจะเปิดใช้งานตัวเลือก auto_cd ใน zsh .

หากต้องการแก้ไข .zshrc คุณสามารถใช้โปรแกรมแก้ไขข้อความกราฟิกหรือโปรแกรมแก้ไขข้อความบรรทัดคำสั่ง เช่น vim หรือ vi ได้

ใช้คำสั่ง CHMOD เพื่อตั้งค่าสิทธิ์ (Gradle)

ข้อผิดพลาดการปฏิเสธสิทธิ์ Zsh อาจเกิดขึ้นได้หากคุณกำลังทำงานกับการไล่ระดับและไฟล์ gradlew ไม่มีสิทธิ์ที่ถูกต้อง 

ในการแก้ไขข้อผิดพลาดดังกล่าว คุณต้องตั้งค่า การอนุญาตที่ถูกต้องบน gradlew 

คุณสามารถพิมพ์คำสั่งนี้ในเทอร์มินัลของคุณ

chmod 755 gradlew 

ซึ่งจะทำให้ไฟล์ gradlew สามารถเรียกใช้งานได้ และข้อผิดพลาดจะได้รับการแก้ไข

หรือคุณสามารถพิมพ์คำสั่งนี้ง่ายๆ chmod +x gradlew  

สิ่งนี้จะทำให้ไฟล์ gradlew ปฏิบัติการได้

หากไม่มีวิธีแก้ไขปัญหาเหล่านี้ที่เหมาะกับคุณ โปรดแสดงความคิดเห็นด้านล่างได้เลย แล้วช่างเทคนิคของเรายินดีที่จะช่วยเหลือคุณในไม่ช้า

เกี่ยวกับผู้เขียน

แก้ไขสิทธิ์ Zsh ที่ถูกปฏิเสธบน Linux และ macOS:การแก้ไขด่วนและการแก้ไขปัญหา

เควิน แอร์โรว์ส

Kevin Arrows เป็นผู้เชี่ยวชาญด้านเทคโนโลยีที่มีประสบการณ์สูงและมีความรู้และมีประสบการณ์ในอุตสาหกรรมมานานกว่าทศวรรษ เขาได้รับการรับรองจาก Microsoft Certified Technology Specialist (MCTS) และมีความมุ่งมั่นอย่างแรงกล้าที่จะติดตามข่าวสารเกี่ยวกับการพัฒนาเทคโนโลยีล่าสุด Kevin ได้เขียนหัวข้อที่เกี่ยวข้องกับเทคโนโลยีอย่างกว้างขวาง โดยนำเสนอความเชี่ยวชาญและความรู้ของเขาในด้านต่างๆ เช่น การพัฒนาซอฟต์แวร์ ความปลอดภัยทางไซเบอร์ และการประมวลผลแบบคลาวด์ การมีส่วนร่วมของเขาในด้านเทคโนโลยีได้รับการยอมรับและเคารพอย่างกว้างขวางจากเพื่อนร่วมงานของเขา และเขาได้รับการยกย่องอย่างสูงจากความสามารถของเขาในการอธิบายแนวคิดทางเทคนิคที่ซับซ้อนในลักษณะที่ชัดเจนและรัดกุม