انجمن‌های فارسی اوبونتو

لطفاً به انجمن‌ها وارد شده و یا جهت ورود ثبت‌نام نمائید

لطفاً جهت ورود نام کاربری و رمز عبورتان را وارد نمائید


توزیع گنو/لینوکس اوبونتو ۲۰ ساله شد 🎉

نویسنده موضوع: Permission denied مربوط به فرمان داخل اسکریپت  (دفعات بازدید: 1140 بار)

0 کاربر و 3 مهمان درحال مشاهده موضوع.

آفلاین setaiesh

  • Newbie
  • *
  • ارسال: 14
سلام؛
اسکریپتی نوشتم که داخلش به کارت شبکه دسترسی پیدا میکنه و یک سری اطلاعات رو در اون تغییر میده.
اما به errorی برخوردم که نمیدونم چه جوری باید درستش کنم!

line : /etc/network/interfaces: Permission denied

من به این اسکریپت با chmod اجازه تغییرات رو میدم. ولی در خود اسکریپت، به خطی که به فایل کارت شبکه میخواد دسترسی پیدا کنه و در اون چیزی بنویسه ایراد میگیره و اجازه نمیده!
چه جوری باید این خطا رو برطرف کنم؟

آفلاین بهروز رمضانی

  • High Hero Member
  • *
  • ارسال: 1111
  • جنسیت : پسر
  • Kakashi Hatake
    • ابونتو نیوز
پاسخ : Permission denied مربوط به فرمان داخل اسکریپت
« پاسخ #1 : 22 آذر 1392، 09:18 ب‌ظ »
محتویات اسکریپت را کامل بزار .
در یادگیری و استفاده از خط فرمان کوشا باشید چرا که رستگاری شما در آن است.

آفلاین setaiesh

  • Newbie
  • *
  • ارسال: 14
پاسخ : Permission denied مربوط به فرمان داخل اسکریپت
« پاسخ #2 : 22 آذر 1392، 09:34 ب‌ظ »
محتویات اسکریپت را کامل بزار .


#!/bin/bash
#chmod u+x /etc/network/interfaces;
 
##add 
str1="add";
str2="dhcp";
 
if [ "$1" == "$str1" ]
then
{
netcartname1=$(grep $2 /etc/network/interfaces );
if [[ "$3" == "$str2"  &&  $netcartname1 ]]
then 
echo "There's a netcart with the same name";
elif [[ "$3" == "$str2" && !$netcartname1 ]]
then
{
# sudo dhclient $2;
echo  "auto $2">>/etc/network/interfaces;
echo "iface $2 inet dhcp">>/etc/network/interfaces;
# sudo /etc/init.d/networking restart;
}
fi;
 
exit $?;


البته به طور کامل اسکریپت رو نذاشتم تا زیاد قاطی پاتی نشه و فقط جایی که این ارور رو میده گذاشتم.
اگر لازمه به طور کامل اسکریپت رو بگذارم؟
« آخرین ویرایش: 23 آذر 1392، 09:03 ق‌ظ توسط setaiesh »

آفلاین Ma3X

  • عضو کاربران ایرانی اوبونتو
  • *
  • ارسال: 877
  • جنسیت : پسر
  • It is Matrix
    • ماتریکس. آی آر
پاسخ : Permission denied مربوط به فرمان داخل اسکریپت
« پاسخ #3 : 23 آذر 1392، 01:31 ق‌ظ »
کاربری که باهاش اسکریپت رو اجرا می‌کنید اجازه تغییر در فایل /etc/network/interfaces رو نداره و در نتیجه خطا می‌گیرید. اگر اسکریپت کاملا مطمئنه از این فایل یک بکاپ بگیرید و با کاربر ریشه اسکریپت رو اجرا کنید.
ضمنا برای خواناتر شدن کد بهتر بود اون رو توی تگ کد قرار می‌دادین (علامت # تو ادیتور انجمن).

آفلاین setaiesh

  • Newbie
  • *
  • ارسال: 14
پاسخ : Permission denied مربوط به فرمان داخل اسکریپت
« پاسخ #4 : 23 آذر 1392، 09:06 ق‌ظ »
کاربری که باهاش اسکریپت رو اجرا می‌کنید اجازه تغییر در فایل /etc/network/interfaces رو نداره و در نتیجه خطا می‌گیرید. اگر اسکریپت کاملا مطمئنه از این فایل یک بکاپ بگیرید و با کاربر ریشه اسکریپت رو اجرا کنید.
ضمنا برای خواناتر شدن کد بهتر بود اون رو توی تگ کد قرار می‌دادین (علامت # تو ادیتور انجمن).


ممنونم از پاسختون
اما نمی دونم چه جوری میشه با کاربر ریشه وارد لینوکس شد!!!
(البته توی ماشین مجازی هم دارم کار میکنم...)
و البته با فرمان chmod u+x  بهش اجازه دسترسی هم میدم... ولی نمی دونم چرا بازم این خطا رو داره؟!!

آفلاین بهروز رمضانی

  • High Hero Member
  • *
  • ارسال: 1111
  • جنسیت : پسر
  • Kakashi Hatake
    • ابونتو نیوز
پاسخ : Permission denied مربوط به فرمان داخل اسکریپت
« پاسخ #5 : 23 آذر 1392، 09:27 ق‌ظ »
اینطوری عمل کن .
sudo -iازت پسورد می‌خواد ، بعد از دادن پسورد علامت $ به # تغییر میکنه . که نشون دهنده دسترسی مستقیم روت هست
در یادگیری و استفاده از خط فرمان کوشا باشید چرا که رستگاری شما در آن است.

آفلاین nixoeen

  • ناظر انجمن
  • *
  • ارسال: 4869
  • جنسیت : پسر
  • masoft قدیم
پاسخ : Permission denied مربوط به فرمان داخل اسکریپت
« پاسخ #6 : 23 آذر 1392، 09:52 ق‌ظ »
دستور chmod u+x اجازه اجرا شدن رو به اسکریپت می‌ده، اجازه دسترسی نمی‌ده.

آفلاین setaiesh

  • Newbie
  • *
  • ارسال: 14
پاسخ : Permission denied مربوط به فرمان داخل اسکریپت
« پاسخ #7 : 24 آذر 1392، 09:18 ق‌ظ »
دستور chmod u+x اجازه اجرا شدن رو به اسکریپت می‌ده، اجازه دسترسی نمی‌ده.

خوب باید آرگومانهای chmod چی باشه که اجازه دسترسی و تغییر رو بده؟

آفلاین Ma3X

  • عضو کاربران ایرانی اوبونتو
  • *
  • ارسال: 877
  • جنسیت : پسر
  • It is Matrix
    • ماتریکس. آی آر

آفلاین ali.abry

  • High Hero Member
  • *
  • ارسال: 1224
پاسخ : Permission denied مربوط به فرمان داخل اسکریپت
« پاسخ #9 : 24 آذر 1392، 05:57 ب‌ظ »
درست نیست که فایل interfaces رو پرمیشنش رو تغییر بدین تا اسکریپت دست رسی داشته باشه .
یک راهش اینه که صاحب اسکریپت رو root کنین با دستور chown بعد با دستور chmod که تو پست قبلی اموزشش رو گذاشتن بهش suid بدین . این جوری با هر یوزری اون اسکریپت رو اجرا کنین با دست رسی روت اجرا میشه .
http://30li.org/bash/commands/chown

آفلاین nixoeen

  • ناظر انجمن
  • *
  • ارسال: 4869
  • جنسیت : پسر
  • masoft قدیم
پاسخ : Permission denied مربوط به فرمان داخل اسکریپت
« پاسخ #10 : 24 آذر 1392، 07:00 ب‌ظ »
SID روش خطرناکی هستش و به راحتی می‌تونه مورد سواستفاده قرار بگیره.

راه درست اینه که اون اسکریپت با کاربر root اجرا بشه!