حل خطأ zsh: رفض الأذونات في Linux أو macOS
خطأ “zsh: permission denied” هو خطأ يحدث عندما تحاول تنفيذ أمر على Linux أو Mac وليس لديك صلاحيات التنفيذ اللازمة. يمكن أن يكون الأمر بسيطًا مثل تنفيذ ‘ls’ على دليل ليس لديك صلاحيات الكتابة فيه، أو تشغيل script يقوم بإجراءات ليس لمستخدمك صلاحية القيام بها. بصلاحيات، نشير إلى صلاحيات القراءة أو الكتابة.

دعونا نلقي نظرة على السبب الرئيسي لهذا الخطأ، ثم يمكننا تجربة كل حل لمعرفة الأفضل.
يحدث هذا الخطأ بشكل أساسي عندما لا تملك صلاحيات التنفيذ أو الكتابة أو القراءة للملف.
لنفترض أننا داخل Zsh shell في نظام تشغيل Linux، وتحاول عرض محتويات ملف باستخدام ‘cat’، ولكنك تتلقى خطأ ‘permission denied’.

الآن لإصلاح هذا الخطأ، نحتاج أولاً إلى عرض صلاحيات الملف. نقوم بتنفيذ “ls -l” لرؤية الصلاحيات.

كما ترى، الصلاحيات هي بحيث يمكن لمستخدم root ومجموعة root فقط قراءة الملف، بينما يمكن لمستخدم root فقط الكتابة على الملف.
1. استخدام sudo
لإصلاح ذلك، الحل الأبسط هو استخدام ‘sudo’ مع الأمر الذي نريد تشغيله. سيؤدي هذا إلى تنفيذ الأمر كمستخدم root. في حالتك أيضًا، يمكنك استخدام ‘sudo’ عندما تكون واثقًا من أن الأمر الذي تريد تنفيذه أو المهمة التي تريد تشغيلها لن تضر بجهاز الكمبيوتر الخاص بك.
يمكننا بالتالي تشغيل:

sudo cat file
2. تغيير صلاحيات الملف أو الملفات
الخطوة التالية التي يمكننا القيام بها هي تغيير صلاحيات الملف. بما أن خطأ ‘permission denied’ عادة ما يكون سببه صلاحيات القراءة أو الكتابة، يمكننا تغيير صلاحيات هذا الملف أو الملفات المعنية.

بتنفيذ ‘ls -l’ داخل الدليل الذي يوجد به الملف، يمكننا أن نرى أن مالك الملف ومجموعته هما root.
يمكننا تغيير المالك إلى مستخدمنا ثم القيام بما نريد فعله بالملف.

يمكننا تشغيل:
sudo chown [user] [file-name]
في مثالنا، بما أن v3n0m هو المستخدم الذي سجلنا الدخول به، سنصدر الأمر كالتالي:
sudo chown v3n0m file
v3n0m هنا هو مستخدمنا. في حالتك، سيكون اسم المستخدم الخاص بك.
الآن، يمكننا تشغيل cat على الملف لأنه لن يعطينا بعد الآن خطأ permission denied.
3. تمكين صلاحيات التنفيذ
يمكنك استخدام ./ مع اسم ملف في Zsh أو غيرها من الـ shells لتنفيذ ملف كبرنامج. ولكن إذا لم يتم تعيين صلاحيات التنفيذ على ملف، فستتلقى خطأ ‘zsh: permission denied’.

لنفترض أننا نريد تنفيذ script يسمى script1. نكتب ./script1 في طرفيتنا ويظهر لنا هذا الخطأ:
نقوم بتنفيذ `ls -la` على الملف لرؤية الأذونات. كما ترى، أذونات التنفيذ على الملف غير مضبوطة.
الحل هنا بسيط، وهو إضافة أذونات التنفيذ إلى الملف.
نصدر أمرًا بسيطًا

chmod +x script1
سيضيف `chmod +x` بت التنفيذ على أذونات الملف للمالك والمجموعة والآخرين.
الآن يمكننا تشغيل الملف كبرنامج عن طريق كتابة `./script1` بدون أي خطأ.
يجب أن يحل هذا الخطأ إذا كنت تواجهه على Linux، ومع ذلك، إذا كنت تواجه هذا الخطأ على macOS أو Gradle، فتابع قراءة المقال.
تعديل ملف zshrc الخاص بك (macOS)
أبلغ بعض المستخدمين على macOS عن مشكلة عند استخدام `zsh` عندما لا يكونون داخل الدليل الذي يريدون تنفيذ أمر منه.
إذا واجهت مشكلة مماثلة، فإن الحل بسيط للغاية.
تحتاج إلى تعديل ملف `.zshrc` في دليل `home/username` الخاص بك وإضافة هذا إلى نهاية الملف.
setopt auto_cd
سيؤدي هذا إلى تمكين خيار `auto_cd` في `zsh`.
لتحرير ملف `.zshrc`، يمكنك استخدام أي محرر نصوص رسومي أو محرر نصوص سطر أوامر مثل `vim` أو `vi`.
استخدام أمر CHMOD لتعيين الأذونات (Gradle)
يمكن أن يحدث خطأ “zsh: permission denied” إذا كنت تعمل على Gradle وملف `gradlew` لا يمتلك الأذونات الصحيحة.
لإصلاح مثل هذا الخطأ، تحتاج إلى تعيين الأذونات الصحيحة على gradlew.
يمكنك كتابة هذا الأمر في محطتك الطرفية،
chmod 755 gradlew
سيجعل هذا ملف `gradlew` قابلاً للتنفيذ وسيتم إصلاح الخطأ.
أو يمكنك ببساطة كتابة هذا الأمر `chmod +x gradlew`
سيجعل هذا أيضًا ملف `gradlew` قابلاً للتنفيذ.
إذا لم ينجح أي من هذه الحلول معك، فلا تتردد في التعليق أدناه وسيسعد فنينا بمساعدتك قريبًا.
Comments are closed.