رفتن به محتوا
LoopX

آزمون بخش ۴: کاربرها و دسترسی‌ها

این آزمون چهار درس بخش «کاربرها و دسترسی‌ها» را می‌سنجد. جواب هر سؤال همان لحظه با توضیح نشان داده می‌شود و نتیجه‌ات در همین مرورگر ذخیره می‌شود (پیشرفت من).

؟ آزمون بخش ۴
  1. UID کاربرهای عادی در Ubuntu از چه عددی شروع می‌شود؟

  2. در سطر ali:x:1001:1001:Ali:/home/ali:/bin/bash از /etc/passwd حرف x یعنی…

  3. برای اضافه کردن dev1 به گروه docker بدون برداشتن بقیه‌ی گروه‌هایش؟

  4. چرا بعد از usermod -aG همان کاربر در همان ترمینال هنوز دسترسی گروه جدید را ندارد؟

  5. useradd بدون -m چه می‌کند؟

  6. دسترسی rwxr-x--- چه عددی است؟

  7. برای cd به پوشه‌ی /a/b و خواندن فایل داخلش کدام حق روی همه‌ی پوشه‌های مسیر لازم است؟

  8. با umask 077 فایل و پوشه‌ی تازه چه دسترسی‌ای می‌گیرند؟

  9. فایلی با دسترسی ----rwxrwx مالک ali است. ali با cat چه می‌بیند؟

  10. sudo chown :team report.txt چه می‌کند؟

  11. sudo دستور کدام رمز را می‌خواهد؟

  12. روی Ubuntu به کدام کاربران به‌طور پیش‌فرض اجازه‌ی sudo داده می‌شود؟

  13. چرا /etc/sudoers را با visudo ویرایش می‌کنیم؟

  14. کدام قاعده به «کمترین دسترسی» نزدیک‌تر است؟

  15. در ls -l حرف s جای x مالک یعنی…

  16. پوشه‌ی مشترک تیمی را چطور می‌سازی که فایل‌های جدید گروه تیم را بگیرند و غیرعضوها نبینند؟

  17. در پوشه‌ای با 1777 چرا کاربر نمی‌تواند فایل دیگری را پاک کند؟

🏁 چالش: دسترسی‌های یک تیمسخت

یک تیم دو نفره (anna و omid) روی پوشه‌ی /srv/app کار می‌کند و guest بیرونی است. با ابزارهای همین بخش این وضعیت را بساز و با آزمایش (با sudo -u کاربر) ثابت کن:

۱. گروه devs؛ کاربرهای anna و omid (عضو devs) و guest (غیرعضو). ۲. پوشه‌ی /srv/app با گروه devs و دسترسی 2770؛ فایل‌های جدید گروه devs بگیرند. ۳. زیرپوشه‌ی /srv/app/uploads که اعضا فایل بگذارند ولی هیچ‌کس فایل دیگری را پاک نکند. ۴. به omid اجازه بده فقط du -sh /srv/app را با sudo و بدون رمز اجرا کند؛ قاعده را قبل از نصب با visudo -cf بررسی کن و با دسترسی 440 در /etc/sudoers.d/omid بگذار. ۵. ثابت کن: فایل anna گروه devs می‌گیرد و omid می‌تواند به آن اضافه کند؛ guest نمی‌تواند وارد پوشه شود؛ omid نمی‌تواند فایل anna را از uploads پاک کند؛ omid دستور مجاز را با sudo اجرا می‌کند ولی sudo cat /etc/shadow برایش کار نمی‌کند. ۶. همه‌چیز را پاک کن.

راهنمایی

setgid یعنی ۲ و sticky یعنی ۱، پس uploads را با 3770 بساز. برای sudo: یک فایل موقت بنویس، با sudo visudo -cf بررسی کن و با sudo install -m 440 -o root -g root نصب کن. برای آزمایش از sudo -u omid sudo -n دستور استفاده کن (-n یعنی اگر رمز لازم شد نپرس).

راه‌حل
Terminal window
sudo groupadd devs
for u in anna omid guest; do sudo useradd -m -s /bin/bash $u; done
sudo usermod -aG devs anna
sudo usermod -aG devs omid
sudo mkdir -p /srv/app/uploads
sudo chgrp -R devs /srv/app
sudo chmod 2770 /srv/app
sudo chmod 3770 /srv/app/uploads
sudo stat -c '%a %A %U:%G %n' /srv/app /srv/app/uploads
echo 'omid ALL=(root) NOPASSWD: /usr/bin/du -sh /srv/app' > /tmp/omid.sudoers
sudo visudo -cf /tmp/omid.sudoers
sudo install -m 440 -o root -g root /tmp/omid.sudoers /etc/sudoers.d/omid
echo "== فایل anna و اضافه‌کردن omid"
sudo -u anna sh -c 'umask 002; echo "طرح از anna" > /srv/app/plan.txt'
sudo -u omid sh -c 'echo "نظر omid" >> /srv/app/plan.txt'
sudo ls -l /srv/app/plan.txt
sudo -u omid cat /srv/app/plan.txt
echo "== guest"
sudo -u guest ls /srv/app
echo "== uploads (anna فایل می‌گذارد، omid می‌خواهد پاک کند)"
sudo -u anna sh -c 'echo x > /srv/app/uploads/anna.txt'
sudo -u omid rm /srv/app/uploads/anna.txt
echo "== sudo محدود برای omid"
sudo -u omid sudo -n du -sh /srv/app
sudo -u omid sudo -n cat /etc/shadow
echo "== پاک‌سازی"
sudo rm -rf /srv/app /etc/sudoers.d/omid /tmp/omid.sudoers
for u in anna omid guest; do sudo userdel -r $u 2>/dev/null; done
sudo groupdel devs
خروجی
2770 drwxrws--- root:devs /srv/app
3770 drwxrws--T root:devs /srv/app/uploads
/tmp/omid.sudoers: parsed OK
== فایل anna و اضافه‌کردن omid
-rw-rw-r-- 1 anna devs 29 Oct 3 20:53 /srv/app/plan.txt
طرح از anna
نظر omid
== guest
ls: cannot open directory '/srv/app': Permission denied
== uploads (anna فایل می‌گذارد، omid می‌خواهد پاک کند)
rm: cannot remove '/srv/app/uploads/anna.txt': Operation not permitted
== sudo محدود برای omid
16K /srv/app
sudo: a password is required
== پاک‌سازی