انجمنهای فارسی اوبونتو
کمک و پشتیبانی => انجمن عمومی => نویسنده: norouzi90 در 07 فروردین 1400، 07:30 بظ
-
۱-مجوز مناسبی که بتوانیم به تمامی یوزرهای خانگی(اعم از عضو و یا غیر عضو در گروه مالک فولدر در سیستم خانگی) برای اشتراک بدهیم، تا بتوانند در استفاده از فولدر مورد نظر آسوده باشند ،کدام است؟
مثلاً
location:/media/a/examfolder
دستور مربوطه را هم بنویسید ،بسیار سپاسگزار خواهم بود.
۲-منظور از other ، تنها افراد غیر عضو از گروه مالک فایل در داخل شبکه محلی هستند، یا اینکه در زمانیکه به اینترنت وصل میشویم ،کلیه افرادی که در بستر اینترنت هستند ، مصداق other برای فایل مورد نظر هستند؟
۳- آیا اعطا مجوز 777 در کلیه موارد نامناسب است؟ و یا مواردی وجود دارد که می توان از این مجوز استفاده کرد؟
-
آیا اعطا مجوز 777 در کلیه موارد نامناسب است؟ خیر
و یا مواردی وجود دارد که می توان از این مجوز استفاده کرد؟ بله
منظور از other ، تنها افراد غیر عضو از گروه مالک فایل در داخل شبکه محلی هستند.
بنظر من منظور همه کاربران در ان کامپیوتر (یا شاید فقط در ان هاست نه کل کامپیوتر) هست.چه کاربران عضو گروه فایل چه صاحب فایل چه دیگران. البته امتحان نکردم. یعنی اگه به دیگران دسترسی نوشتن داده باشین و به صاحب فابل و کاربران عضو فایل نداده باشن ، بازم اون کاربران (صاحب و کاربران عضو گروه فایل) میتونن فایل رو ویرایش کنن.(امتحان نکردم).
یا اینکه در زمانیکه به اینترنت وصل میشویم ،کلیه افرادی که در بستر اینترنت هستند ، مصداق other برای فایل مورد نظر هستند؟
مگه شما زمانی که به اینترنت وصل میشید کلیه افراد در بستر اینترنت، کاربری در سیستم شما هستند که بخواد اون قوانین براشون اعمال بشه؟ اصلا مگه وقتی به اینترنت وصل میشید بقیه افراد میتونن فایل ها یا پوشه شما رو ببینند؟ :o (چون به صورت پیشفرض اینطور نیست)
-
۱. بستگی داره پروندهها رو به چه صورتی همرسانی کرده باشید.
۲. هر کاربری روی اون رایانه. حالا ممکنه اون کاربر اون پرونده رو برای دیگران هم همرسانی کنه.
۳. در کلیهٔ موارد که نه، ولی در ۹۹ درصد مواقع، خطرناکه.
-
میتونید یه گروه بسازید، بعد هر کاربر که میخواهید رو عوض اون گروه کنید. گروه دایرکتوری موردنظر رو به گروهی که ساختید، تغییر بدید.
بعد بیت setgid رو فعال کنید تا هر فایلی که داخل اون دایرکتوری ساخته بشه، گروهش به گروهی که دایرکتوری عضوش هست تغییر کنه.
مثلا اول گروه share رو بسازید
sudo addgroup share
بعد کاربرهایی که میخواهید رو به اون گروه اضافه کنید.
sudo usermod -aG share username
الان گروه دایرکتوری موردنظر رو تغییر بدید.
sudo chgrp share /media/a/examplefolder
حالا دسترسی اون دایرکتوری رو درست کنید.
sudo chmod 2770 /media/a/examplefolder
عدد اول باعث میشه که بیت setgid فعال بشه. عدد دومی دسترسی خوندن نوشتن و دیدن محتویات رو به صاحب دایرکتوری میده.
عدد سومی همون دسترسیهای قبلی رو به گروه دایرکتوری میده و عدد آخری هیچ دسترسی به بقیه افراد نمیده.
کارهای بالا باعث میشه که فایلهایی که توی اون دایرکتوری ساخته میشن عضو گروه share بشن و چون کاربرها عضو گروه share هستند، میتونند فایلها رو بخونند اما نمیتونند فایلهایی که مال خودشون نیست رو تغییر بدهند.
یه مشکلی که کارهای بالا داره اینهکه اگه فایلی رو به اونجا انتقال بدید، کارهای بالا روش اِعمال نمیشه.
برای این مشکل میشه یه cron درست کرد و تعریف کرد که هر ۱ دقیقه یکبار اجرا بشه و دسترسی فایلهای اون پوشه رو درست کنه.
میتونید مستقیما توی فایل /etc/crontab چیزهای لازم رو بنویسید ولی بهتره که برید توی دایرکتوری /etc/cron.d/ و یه فایل با هر اسمی خواستید بسازید.
بعد اینو توش کپی کنید.
SHELL=/bin/sh
PATH=/usr/bin:/usr/sbin:/bin:/sbin
* * * * * root chgrp -R share /media/a/examplefolder
اگه لازم دارید که دسترسی فایلها عوض بشه که همهی کسایی که عضو گروه share هستند، بتونند همهی فایلهای اون دایرکتوری رو تغییر بدهند، این رو به آخر خط متن بالا اضافه کنید.
&& chmod -R 770 /media/a/examplefolder/*
ممکنه کارهایی که من گفتم مشکل داشته باشه یا اینکه راه های بهتری هم برای حل این مشکل باشه. این چیزی بود که به ذهن من رسید.
برای اینکه گروه کاربرها درست اعمال بشه، باید یکبار کاربر logout کنه و دوباره وارد بشه. میشه کامپیوتر رو خاموش روشن هم کرد.
-
با تشکر فراوان از آقای Dragon و سایر عزیزان( Issac و دانیال بهزادی )
آقای Dragon میدانم که برای نوشتن این حجم از سطور چقدر زحمت کشیده اید.واقعا لطف نموده اید.سلامت باشید.
۱-
میتونید یه گروه بسازید، بعد هر کاربر که میخواهید رو عوض اون گروه کنید.
لطفاً تفاوت دو دستور زیر را در صورت امکان بیان فرمایید. اگر یکی هستند بدون تفاوت پس چرا دو تا دستور با عملکرد یکسان بوجود آمده است؟
sudo addgroup share
sudo groupadd share
۲-
گروه دایرکتوری موردنظر رو به گروهی که ساختید، تغییر بدید.
شما در اینجا از فرمان chgrp استفاده کرده اید.آیا میشود بجای این فرمان از chown بهره جست ؟
۳-اگر میشود تفاوت setuid و setgid را بفرمایید ممنون می شوم.
۴- چگونه بعداً میتوان بیت setgid را غیر فعال کرد.
با تشکر مجدد
-
۱-فرق زیادی با هم ندارند. addgroup جوری هست که کاربر باهاش تعامل کنه. groupadd معمولا توی اسکریپتها به کار میاد.
addgroup یا یه اسکریپته که groupadd رو با بعضی آپشن اجرا میکنه، یا اینکه یه لینک به یه چیز دیگه هست.
میتونید از دستور which addgroup استفاده کنید، تا ببینید وقتی میزنید addgroup چه چیزی اجرا میشه (احتمالا /usr/bin/addgroup اجرا میشه) بعد نوع اون فایل رو با دستور file بدست بیارید.
file /usr/bin/addgroup
۲-بله می تونید از chown هم به این شکل استفاده کنید.
chown :share /media/a/examplefolder
در اصل chown به این شکل استفاده میشه.
chown user:group /path/to/file
و چون نمیخواهید که صاحب فایل رو تغییر بدید، بهجای user چیزی نمینویسید.
۳-بیت setuid رو میشه فقط روی فایلها گذاشت و روی دایرکتوریها تاثیر نداره. وقتی بیت setuid یه فایل روشنه، اگه فایل اجرایی باشه با دسترسی صاحب فایل اجرا میشه. اگه فایل اجرایی نباشه setuid و setgid هیچ تاثیری ندارند.
مثلا فایل /etc/shadow رو فقط روت میتونه بخونه یا تغییر بده، چون هش گذرواژه هر کاربر توی اون ذخیره شده و هر کسی نباید بهش دسترسی داشته باشه.
برای مثال وقتی شما بخواهید که رمز کاربرتون رو عوض کنید، باید این فایل تغییر کنه ولی فقط روت میتونه این فایل رو تغییر بده. به خاطر همین setuid فایل /usr/bin/passwd فعاله که باعث میشه با دسترسی روت اجرا بشه و بتونه فایل /etc/shadow رو تغییر بده.
باید حواستون باشه چه فایلی setuid داره چون ممکنه مشکلات امنیتی پیش بیاد اگه درست استفلده نشه.
برای دیدن دسترسیهای فایل /usr/bin/passwd از این دستور استفاده کنید.
ls -l /usr/bin/passwd
بیت setgid برای فایلها شبیه setuid عمل میکنه. یعنی اگه فایل اجرایی باشه با دسترسیهایِ گروهی که عضوش هست اجرا میشه.
ولی برای دایرکتوریها باعث میشه که هر فایلی که توی اون دایرکتوری ساخته میشه، با گروهی که دایرکتوریِ اصلی داره، ساخته بشه.
۴- میتونید از این دستور استفاده کنید.
chmod g-s /path/to/directort-or-file
میتونید هم از شیوه عددی استفاده کنید. ولی باید حواستون باشه که یه وقت فایل یا دایرکتوری setuid یا sticky bit نداشته باشه. در غیر اینصورت باید عدد اول رو با توجه به خرجی ls -l تغییر بدید. باید ۳ تا عدد بعدی رو هم از روی خروجی ls -l حساب کنید تا یه وقت دسترسی اشتباهی به فایل یا دایرکتوری ندید.
کلا برای این کار دستور بالا خیلی بهتره چون احتمال اشتباه توش کمتره و راحتتر میفهمید چیکار کردید.