ساختن دایرکتوری قابل دسترسی برای همه کاربران در لینوکس

توی یه سرور چندتا کاربر بودن که میخواستن سیستم‌ عامل‌های مجازی داشته باشن برای همین روی سرور VMware Player نصب کردم. مساله‌ای که وجود داشت این بود که مثلا ۳ تا کاربر میخواستن که Ubuntu16.04 داشته باشن ولی برای اینکار مجبور بودیم برای هر کاربر جداگانه سیستم عامل نصب کنیم که فضای سرور رو پر میکرد و وقت بر بود. راهکاری که به ذهنم رسید این بود که دایرکتوری درست کنم و سیستم عامل مهمان رو اونجا قرار بدم که همه کاربرایی که میخوان به سیستم عامل‌های مجازی دسترسی داشته باشن همون یدونه سیستم عامل رو اجرا کنن و نیازی به نصب مجدد نباشه.

اول از همه با دستور زیر چک کردم که اون گروهی که میخوام درست کنم، اسمس قبلا استفاده نشده باشه.

cut -d: -f1 /etc/group

حالا دایرکتوری که میخوام بین همه به اشتراک بزارم رو با دستور زیر درست میکنم:

sudo mkdir /vmware

حالا یه گروه درست میکنم که همه کاربرایی که میخوان از ماشین مجازی استفاده کنن رو توش قرار میدم:

sudo groupadd vmusers

توی مرحله بعد لازمه که افرادی که باید به اون دایرکتوری دسترسی داشته باشن رو به اون گروه اضافه کنم، مثلا کاربر با اسم test رو میخوام به گروه vmusers که درست کردم اضافه کنم:

sudo usermod -a -G vmusers test

توی این دستور، آرگومان‌ها و سوییچ‌های زیر رو داریم:

  • سوییچ a- که میگه کاربری که بهت میگم رو به گروهی که میگم اضافه کن.
  • سوییچ G- که بعدش باید اسم گروهی که میخوایم کاربر بهش اضافه بشه رو بنویسیم.
  • vmusers اسم گروهه
  • test اسم کاربریه که قراره به گروه اضافه بشه.

حالا با دستور زیر چک میکنم که کاربر test توی کدوم گروه‌ها عضوه:

groups test

حالا باید دایرکتوری که قراره به اشتراک گذاشته بشه رو گروه مالکش رو عوض بکنم به vmusers و دسترسی‌های مناسب رو بهش بدم:


sudo /bin/chgrp -R vmusers /vmware/

sudo chmod -R 2775 /vmware/

توی دستور chmod بالا توضیح کد ۲۷۷۵ به این شکله:

  • عدد ۲ پرچم setGID رو فعال میکنه که یعنی زیرفایل‌های جدید توی همون گروهی هستن که دایرکتوریشون قرار داره و زیردایرکتوری‌های جدید هم این setGID رو به ارث میبرن.
  • ۷ به مالک اجازه RWX میده.
  • ۷ به گروه اجازه RWX میده.
  • ۵ به سایرین اجازه RX میده.

 

منابع:

  • http://stackoverflow.com/questions/14059916/is-there-a-command-to-list-all-unix-group-names
  • http://www.tecmint.com/create-a-shared-directory-in-linux/
  • https://www.howtogeek.com/howto/ubuntu/see-which-groups-your-linux-user-belongs-to/

پاسخ دهید