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

کمک و پشتیبانی => انجمن عمومی => نویسنده: watermelon در 11 امرداد 1396، 10:24 ب‌ظ

عنوان: chmod 222 کجا کاربرد دارد؟
ارسال شده توسط: watermelon در 11 امرداد 1396، 10:24 ب‌ظ
دسترسی فقط ویرایش، برای فایل ها به چه دردی ‌می‌خوره؟ اصولا وقتی دسترسی خواندن یک فایل  یا ورود به دایرکتوری رو نداریم،‌ دسترسی ویرایشش دیگ‌ چیه؟!
عنوان: پاسخ : chmod 222 کجا کاربرد دارد؟
ارسال شده توسط: M!lad در 11 امرداد 1396، 10:27 ب‌ظ
درواقع با 222 فقط دسترسی override یا append دارید نه ویرایش، برا اینکه بتونید یک فایل رو ویرایش کنید اول باید بتونید بخونیدش.
عنوان: پاسخ : chmod 222 کجا کاربرد دارد؟
ارسال شده توسط: فاروق در 12 امرداد 1396، 10:24 ق‌ظ
درواقع با 222 فقط دسترسی override یا append دارید نه ویرایش، برا اینکه بتونید یک فایل رو ویرایش کنید اول باید بتونید بخونیدش.
منظورتون از ویرایش رو فکر کنم اشتباه متوجه شدم، اما چرا برای ویرایش نیاز داریم ابتدا بخونیمش؟میتونیم با مود w بازش کنیم.
در هر صورت باز این سوال باقی میمونه که این دسترسی(تنها توشتن برای همه) به چه درد میخوره؟
عنوان: پاسخ : chmod 222 کجا کاربرد دارد؟
ارسال شده توسط: M!lad در 12 امرداد 1396، 11:13 ق‌ظ
منظورم از ویرایش این هست که بتونید تنها یک قسمت از یک فایل رو تغییر بدید، برا مثال یک کلمه خاص رو پیدا کنید و تغییر بدید به یک چیز دیگه. البته با دید دیگه تغییر دادن کل فایل یا اضافه کردن چیزی به انتهاش که با w امکان پذیر هست هم میتونیم ویرایش بگیم.

قطعا می‌دونید که مودهای دسترسی کنار هم معنی پیدا می‌کند و الزاما کسی نیومده بگه خوب یه 222 بزاریم برای زمانی که شرایط x رخ داد.
ولی مثال: فرض کنید یک فایل لاگ دارم به چند نفر میگم هر event رو این تو لاگ کنید فقط هم من میخوام ببینمش.

touch log
sudo chattr +a log

با chattr فقط اجازه append کردن به فایل رو دادم.

chmod 222
الان هم به همه اجازه دادم تو فایل بنویسند، یا میتونند کلش رو باز نویسی کنند (که با توجه به اینکهa  به عنوان attr روش ست کردم این اجازه رو نمیده) یا میتونند به انتهاش متن اضافه کند:

sudo cat log


می‌بینیم که فایل لاگم خالیه، حالا بیاید فرض کنیم یه چیزی توش هست ولی من میخوام بزنم همش رو پاک کنم:

> log
-bash: log: Operation not permitted

نشد... ولی میتونم بهش اضافه کنم همونطور که مدیر سیستم میخواست:

echo something to log >> log
echo something else to log >> log

بعد هم

sudo cat log
something to log
something else to log
عنوان: پاسخ : chmod 222 کجا کاربرد دارد؟
ارسال شده توسط: فاروق در 12 امرداد 1396، 12:30 ب‌ظ
بابت توضیحاتتون ممنون!
عنوان: پاسخ : chmod 222 کجا کاربرد دارد؟
ارسال شده توسط: watermelon در 12 امرداد 1396، 01:54 ب‌ظ
کاملا دقیق و روشن توضیح دادین، دم‌شما گرم. فقط یه سوال دیگه : دسترسی 222 برای یک دایرکتوری به چه دردی می‌خوره؟
عنوان: پاسخ : chmod 222 کجا کاربرد دارد؟
ارسال شده توسط: فاروق در 12 امرداد 1396، 03:40 ب‌ظ
این سوالی که جناب هندوانه پرسیدند برای من هم پیش اومد.
در ضمن به ویکی اضافه شد، نیازمند ویراستاری و انشای صحیح:
https://wiki.ubuntu.ir/wiki/Chmod
عنوان: پاسخ : chmod 222 کجا کاربرد دارد؟
ارسال شده توسط: Sosha در 12 امرداد 1396، 05:12 ب‌ظ
این سوالی که جناب هندوانه پرسیدند برای من هم پیش اومد.
در ضمن به ویکی اضافه شد، نیازمند ویراستاری و انشای صحیح:
https://wiki.ubuntu.ir/wiki/Chmod
کار خیلی خوبی کردی ;)
عنوان: پاسخ : chmod 222 کجا کاربرد دارد؟
ارسال شده توسط: فاروق در 12 امرداد 1396، 06:53 ب‌ظ
این سوالی که جناب هندوانه پرسیدند برای من هم پیش اومد.
در ضمن به ویکی اضافه شد، نیازمند ویراستاری و انشای صحیح:
https://wiki.ubuntu.ir/wiki/Chmod
کار خیلی خوبی کردی ;)
شما بیا کار خوب ما رو گسترش بده و خوب تر بکن  :)
(نوعی دعوت به همکاری در ویکی)
عنوان: پاسخ : chmod 222 کجا کاربرد دارد؟
ارسال شده توسط: Sosha در 12 امرداد 1396، 07:47 ب‌ظ
این سوالی که جناب هندوانه پرسیدند برای من هم پیش اومد.
در ضمن به ویکی اضافه شد، نیازمند ویراستاری و انشای صحیح:
https://wiki.ubuntu.ir/wiki/Chmod
کار خیلی خوبی کردی ;)
شما بیا کار خوب ما رو گسترش بده و خوب تر بکن  :)
(نوعی دعوت به همکاری در ویکی)
چشم :) قبل از ارسال این پست هم، مطلب توی ویکی یه تیکش به اندازه یه کلمه مشکل داشت که تصحیح کردمش...
چیزی که کامل هست رو نمیان دستکاری کنن، مثل همون مطلب شما توی ویکی :)
عنوان: پاسخ : chmod 222 کجا کاربرد دارد؟
ارسال شده توسط: فاروق در 12 امرداد 1396، 08:01 ب‌ظ
این سوالی که جناب هندوانه پرسیدند برای من هم پیش اومد.
در ضمن به ویکی اضافه شد، نیازمند ویراستاری و انشای صحیح:
https://wiki.ubuntu.ir/wiki/Chmod
کار خیلی خوبی کردی ;)
شما بیا کار خوب ما رو گسترش بده و خوب تر بکن  :)
(نوعی دعوت به همکاری در ویکی)
چشم :) قبل از ارسال این پست هم، مطلب توی ویکی یه تیکش به اندازه یه کلمه مشکل داشت که تصحیح کردمش...
چیزی که کامل هست رو نمیان دستکاری کنن، مثل همون مطلب شما توی ویکی :)
بله ویرایش شما رو دیدم، مطلب شاید بی اشکال باشه اما کامل نیست و باید گسترش داده بشه، و البته تنها مطلبی هم نیست که باید گسترش داده بشه.
عنوان: پاسخ : chmod 222 کجا کاربرد دارد؟
ارسال شده توسط: Sosha در 12 امرداد 1396، 08:06 ب‌ظ
این سوالی که جناب هندوانه پرسیدند برای من هم پیش اومد.
در ضمن به ویکی اضافه شد، نیازمند ویراستاری و انشای صحیح:
https://wiki.ubuntu.ir/wiki/Chmod
کار خیلی خوبی کردی ;)
شما بیا کار خوب ما رو گسترش بده و خوب تر بکن  :)
(نوعی دعوت به همکاری در ویکی)
چشم :) قبل از ارسال این پست هم، مطلب توی ویکی یه تیکش به اندازه یه کلمه مشکل داشت که تصحیح کردمش...
چیزی که کامل هست رو نمیان دستکاری کنن، مثل همون مطلب شما توی ویکی :)
بله ویرایش شما رو دیدم، مطلب شاید بی اشکال باشه اما کامل نیست و باید گسترش داده بشه، و البته تنها مطلبی هم نیست که باید گسترش داده بشه.
من ویکی نویس خوبی نیستم. نحوه نوشتنه من طبق عادت وبلاگی هست و خیلی راحت و به زبون خودم. اما توی ویکی باید رسمی بنویسی که من قادر نیستم. نهایتا در حد همون ویرایش خوب باشم. البته خوشحال میشم در همین حد هم فعالیت داشته باشم توی ویکی، واسه شروع بنظرم خوبه ;D
عنوان: پاسخ : chmod 222 کجا کاربرد دارد؟
ارسال شده توسط: فاروق در 12 امرداد 1396، 08:08 ب‌ظ
این سوالی که جناب هندوانه پرسیدند برای من هم پیش اومد.
در ضمن به ویکی اضافه شد، نیازمند ویراستاری و انشای صحیح:
https://wiki.ubuntu.ir/wiki/Chmod
کار خیلی خوبی کردی ;)
شما بیا کار خوب ما رو گسترش بده و خوب تر بکن  :)
(نوعی دعوت به همکاری در ویکی)
چشم :) قبل از ارسال این پست هم، مطلب توی ویکی یه تیکش به اندازه یه کلمه مشکل داشت که تصحیح کردمش...
چیزی که کامل هست رو نمیان دستکاری کنن، مثل همون مطلب شما توی ویکی :)
بله ویرایش شما رو دیدم، مطلب شاید بی اشکال باشه اما کامل نیست و باید گسترش داده بشه، و البته تنها مطلبی هم نیست که باید گسترش داده بشه.
من ویکی نویس خوبی نیستم. نحوه نوشتنه من طبق عادت وبلاگی هست و خیلی راحت و به زبون خودم. اما توی ویکی باید رسمی بنویسی که من قادر نیستم. نهایتا در حد همون ویرایش خوب باشم. البته خوشحال میشم در همین حد هم فعالیت داشته باشم توی ویکی، واسه شروع بنظرم خوبه ;D
اشکال نداره، با همین لحن هم ویرایش بکنید و مطلب بنویسید، نهایتا کاربران دیگه مطلب شما رو ویرایش میکنن. البته این نظر شخصی منه و ممکنه نظر مدیران و ناظران نباشه.
عنوان: پاسخ : chmod 222 کجا کاربرد دارد؟
ارسال شده توسط: M!lad در 12 امرداد 1396، 08:34 ب‌ظ
همونطور که می‌دونید، مودها روی فایل‌ها و دایرکتوری‌ها تاثیر متفاوتی دارند. برای مثلا SUID روی یک دایرکتوری هیچ تاثیری نداره و در مقابلش  Sticky Bit (الان) روی فایلها هیچ تاثیری نمیزاره.


یک دایرکتوری هم یک فایله، برای اینکه بخوام ببینم چی توشه باید بتونم این فایل رو بخونم r، برای اینکه بتونم یک فایل جدید توش بسازم یا تغییر نام بدم یا حذف کنم یعنی دارم محتوای این دایرکتوری (یا همون فایله رو) ویرایش می‌کنم، پس به w نیاز دارم نیاز دارم و نهایتا هم x برای وارد شدن به یک دایرکتوری مورد استفاده قرار می‌گیره.

فقط نکته ای و جود داره، من بخوام هر کاری  با یک فایل توی یک دایرکتوری کنم، برای مثال بخونمش، اجراش کنم، تغییر نام بدمش، مود هاش رو عوض کنم و ... باید قبلش توی اون دایرکتوری قرار بگیرم پس عموما در هر شرایطی به بیت x نیاز دارم و بیت های دیگه شرایط رو یا تسهیل می کنند مثل r که میزاره ببینم اون تو چه خبره یا فراهم می‌کنند مثل w که میزاره تغییرات اعمال کنم ولی در هر حال باید اول توی دایرکتوری مورد نظر قرار بگیرم و بدون x کار خاصی نمیتونم بکنم، مثلا اگر تمام دسترسی لازم رو از سمت والدش بهش داشته باشم باز نمیتونم recursive حذفش کنم چون اجازه ندارم بهش وارد بشم.


درنتیجه 222 روی دایرکتوری ها تاثیر خاصی نداره و انگار نمیتوید هیچ کاری باهاش انجام بدید مگر خالی باشه و مستقیم حذفش کنید که خوب اصلا ربطی به دسترسی های خودش نداره یا دسترسی خواندن هم داشته باشید که بتونید یک لیست بگیرید، ولی کافیه به جای r بهش x رو اضافه و تبدیلش بکنید به 333 حالا تقریبا میتونید هر کاری کنید فقط باید اسم دقیق فایل ها رو بدونید چون r ندارید که بتونید ببینید اون تو چه خبره.

و دقیقا به همین خاطر هست که umask دایرکتوری ها با استفاده از 777 تنظیم میشه نه مثل فایل‌ها با 666 که بتونید پیشفرض به دایرکتوری ها x رو بدید.

همینطور میتونید یه find بزنید:
sudo find / -mount -type d -perm 222 -exec ls -ld --color {} +
این دستور کل سیستم رو میگرده برای دایرکتوری هایی با مود دقیقا 222 و قطعا هیچ چیزی پیدا نمی‌کنید.