انجمنهای فارسی اوبونتو
تازه کار => انجمن تازهکاران => نویسنده: alirezazzz در 31 امرداد 1387، 03:09 قظ
-
سلام دوستان.سوال من درمورد دستور find/ هست.خیلی هم فوریه!
من میخوام یه سری فولدر رو با perm 2 پیدا کنم.منتها به فولدر home دسترسی ندارم.
وقتی میزنم find /home -perm -2 -ls میگه find: /home: Permission denied
در اصل یه همچین چیزی میخوام: find /home/*/public_html/ -perm -2 -ls ولی میگه find: /home/*: No such file or directory
نمیدونم به جای * چی بزنم(* یعنی اسمش هرچی باشه مهم نیست خودتون میدونید که!)
لطفا منو راهنمایی کنید.
-
می توانید با کاربر root دستور را اجرا کنید؟
احتمالا مشکل از دسترسی شما به شاخه ی /home است.
-
از اوپشن path- استفاده کنید:
sudo find /home -path /home/*/public_html/* -perm 2 -ls
در ضمن باید با حساب root هم اجرا بشه چون اجازهٔ خوندن دایرکتوری خانگی کاربران دیگه رو بهتون نمیده و کلی پیغام خطا چاپ میکنه. اگه نمیخواید با حساب root اجرا کنید و اون پیغامهای خطا هم نمیخواید چاپ بشه(و فقط اون جاهایی که اجازهٔ خوندنش رو دارید بگرده) ارورهاش رو redirect کنید:
find /home -path /home/*/public_html/* -perm 2 -ls 2> /dev/null
-
از اوپشن path- استفاده کنید:
sudo find /home -path /home/*/public_html/* -perm 2 -ls
در ضمن باید با حساب root هم اجرا بشه چون اجازهٔ خوندن دایرکتوری خانگی کاربران دیگه رو بهتون نمیده و کلی پیغام خطا چاپ میکنه. اگه نمیخواید با حساب root اجرا کنید و اون پیغامهای خطا هم نمیخواید چاپ بشه(و فقط اون جاهایی که اجازهٔ خوندنش رو دارید بگرده) ارورهاش رو redirect کنید:
find /home -path /home/*/public_html/* -perm 2 -ls 2> /dev/null
من اصلا دسترسی root ندارم.این دستور رو هم که میزنم find /home -path /home/*/public_html/* -perm 2 -ls 2> /dev/null هیچ جوابی نمیده.
راه دیگه ای نداره؟؟؟ :'(
-
قبل از دستور ات کافی ی پیش دستور sudo رو اضافه کنه مثل این
sudo find / -name ur-file-name2search
-
من اصلا دسترسی root ندارم.این دستور رو هم که میزنم find /home -path /home/*/public_html/* -perm 2 -ls 2> /dev/null هیچ جوابی نمیده.
راه دیگه ای نداره؟؟؟ :'(
یعنی جایی هستید که مثلا کاربرتون Admin نیست؟(sudo ی نیست؟) اگه ادمین نیستید که طبیعیه نتونید محتویات home کاربران دیگه رو ببینید. باید از ادمین بخواید که اون دستور find رو اجرا کنه، یا این که از کاربران دیگه بخواید مجوز خوندن پوشهٔ public_html خودشون رو به دیگران(مثلا به اعضای گروه users یا به همه) بدند.
-
من اصلا دسترسی root ندارم.این دستور رو هم که میزنم find /home -path /home/*/public_html/* -perm 2 -ls 2> /dev/null هیچ جوابی نمیده.
راه دیگه ای نداره؟؟؟ :'(
یعنی جایی هستید که مثلا کاربرتون Admin نیست؟(sudo ی نیست؟) اگه ادمین نیستید که طبیعیه نتونید محتویات home کاربران دیگه رو ببینید. باید از ادمین بخواید که اون دستور find رو اجرا کنه، یا این که از کاربران دیگه بخواید مجوز خوندن پوشهٔ public_html خودشون رو به دیگران(مثلا به اعضای گروه users یا به همه) بدند.
ببینید من به فولدر / دسترسی دارم.ولی به home/ و home/evern/دسترسی ندارم(evern یه یوزره).در عوض به /home/evern/public_html/ دسترسی دارم.یعنی به فولدر public_html همه ی یوزر ها دسترسی دارم. حالا میخوام تو همه ی یوزر ها search کنم ببینم کدوم فولدر هاشون perm 2 دارند.
حالا فکر کنم بتونید بهتر راهنماییم کنید. ???
-
آها. ببینید این همون چیزیه که میخواید؟
for DIR in /home/* ; do
find "$DIR/public_html" -perm 2 -ls
done
البته این توی اون پوشههای public_html میگرده و تمام فایلها و پوشههایی که داخل یکی از اون public_html ها هستن(یا خود اونها) و مجوز 2 دارن رو چاپ میکنه.
اگه منظورتون این هست که خود اون پوشهٔ public_html مجوز 2 داشته باشه(نه یکی از محتویاتش)، این دستوری که نوشتم ممکنه یه سری چیزای اضافی چاپ کنه. اگه اینطور هست، بهتره مثلاً از این استفاده کنید:
for DIR in /home/* ; do
find "$DIR/public_html" -perm 2 -path "/home/$DIR/public_html" -ls
done
البته اگه میدونستم چطور به permission بصورت ساده فایل میشه دسترسی پبدا کرد، میشد توی همون حلقه تست کرد(سادهتر میشد).
-
آها. ببینید این همون چیزیه که میخواید؟
for DIR in /home/* ; do
find "$DIR/public_html" -perm 2 -ls
done
البته این توی اون پوشههای public_html میگرده و تمام فایلها و پوشههایی که داخل یکی از اون public_html ها هستن(یا خود اونها) و مجوز 2 دارن رو چاپ میکنه.
اگه منظورتون این هست که خود اون پوشهٔ public_html مجوز 2 داشته باشه(نه یکی از محتویاتش)، این دستوری که نوشتم ممکنه یه سری چیزای اضافی چاپ کنه. اگه اینطور هست، بهتره مثلاً از این استفاده کنید:
for DIR in /home/* ; do
find "$DIR/public_html" -perm 2 -path "/home/$DIR/public_html" -ls
done
البته اگه میدونستم چطور به permission بصورت ساده فایل میشه دسترسی پبدا کرد، میشد توی همون حلقه تست کرد(سادهتر میشد).
برای هردو دستوری که نوشتید جواب میده : find: /home/*: No such file or directory ](*,)
-
نباید اینطوری بشه! :o
دقیقاً توی چه سیستمعاملی اجرا کردید؟ مطمئنید شل اون bash بود؟
-
نباید اینطوری بشه! :o
دقیقاً توی چه سیستمعاملی اجرا کردید؟ مطمئنید شل اون bash بود؟
من روی php شل اجرا میکنم. در مورد bash هم هیچ اطلاعاتی ندارم! شرمنده.
Linux 2.6.9-55.0.9.ELsmp
-
من روی php شل اجرا میکنم. در مورد bash هم هیچ اطلاعاتی ندارم! شرمنده.
Linux 2.6.9-55.0.9.ELsmp[/color]
من هم متأسفانه در مورد php تقریباً هیچ اطلاعاتی ندارم. توی php نمیتونید تعیین کنید که اون دستور رو با bash اجرا کنه؟ یا اصلاً توی php نمیتونید به لیست محتویات دایرکتوری home/ دسترسی پیدا کنید؟