این آزمون چهار درس بخش «کاربرها و دسترسیها» را میسنجد. جواب هر سؤال همان لحظه با توضیح نشان داده میشود و نتیجهات در همین مرورگر ذخیره میشود (پیشرفت من).
UID کاربرهای عادی در Ubuntu از چه عددی شروع میشود؟
0 مال root است، ۱ تا ۹۹۹ حسابهای سیستمی، و کاربرهای عادی از ۱۰۰۰.
در سطر ali:x:1001:1001:Ali:/home/ali:/bin/bash از /etc/passwd حرف x یعنی…
فایل passwd برای همه خواندنی است، پس رمزها در shadow (فقط root و گروه shadow) نگه داشته میشوند.
برای اضافه کردن dev1 به گروه docker بدون برداشتن بقیهی گروههایش؟
بدون -a گروههای اضافی قبلی پاک میشوند.
چرا بعد از usermod -aG همان کاربر در همان ترمینال هنوز دسترسی گروه جدید را ندارد؟
session فعلی هنوز فهرست گروههای قدیمی را دارد.
useradd بدون -m چه میکند؟
-m پوشهی خانه را میسازد و فایلهای پایهی /etc/skel را در آن میریزد.
دسترسی rwxr-x--- چه عددی است؟
مالک rwx=7، گروه r-x=5، بقیه ---=0.
برای cd به پوشهی /a/b و خواندن فایل داخلش کدام حق روی همهی پوشههای مسیر لازم است؟
x روی پوشه یعنی اجازهی عبور و دسترسی به آیتمها با نام؛ با namei -l ببین کدام جزء مسیر مانع است.
با umask 077 فایل و پوشهی تازه چه دسترسیای میگیرند؟
۶۶۶ منهای ۰۷۷ = ۶۰۰ برای فایل و ۷۷۷ منهای ۰۷۷ = ۷۰۰ برای پوشه.
فایلی با دسترسی ----rwxrwx مالک ali است. ali با cat چه میبیند؟
دسترسی به ترتیب مالک ← گروه ← بقیه بررسی میشود و اولین دستهی منطبق تعیینکننده است.
sudo chown :team report.txt چه میکند؟
قبل از دو نقطه خالی یعنی مالک عوض نمیشود.
sudo دستور کدام رمز را میخواهد؟
sudo تأیید میکند خودِ تو پشت کیبورد هستی؛ su - رمز کاربر مقصد را میخواهد.
روی Ubuntu به کدام کاربران بهطور پیشفرض اجازهی sudo داده میشود؟
قاعدهی %sudo ALL=(ALL:ALL) ALL در /etc/sudoers.
چرا /etc/sudoers را با visudo ویرایش میکنیم؟
غلط تایپی در sudoers، قاعدهی آن خط را از کار میاندازد و ممکن است دسترسی مدیریتی از دست برود.
کدام قاعده به «کمترین دسترسی» نزدیکتر است؟
فقط یک دستور مشخص با مسیر کامل؛ ALL و * و ویرایشگر هر کدام راه گرفتن دسترسی کاملاند.
در ls -l حرف s جای x مالک یعنی…
مثل /usr/bin/passwd: -rwsr-xr-x و مالک root.
پوشهی مشترک تیمی را چطور میسازی که فایلهای جدید گروه تیم را بگیرند و غیرعضوها نبینند؟
رقم ۲ همان setgid است؛ فایلها و زیرپوشههای جدید گروه پوشه را میگیرند. (عطف به ماسبق نمیشود.)
در پوشهای با 1777 چرا کاربر نمیتواند فایل دیگری را پاک کند؟
بدون sticky، حق w روی پوشه یعنی حذف هر آیتم داخلش.
یک تیم دو نفره (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 یعنی اگر رمز لازم شد نپرس).
راهحل
sudo groupadd devsfor u in anna omid guest; do sudo useradd -m -s /bin/bash $u; donesudo usermod -aG devs annasudo usermod -aG devs omidsudo mkdir -p /srv/app/uploadssudo chgrp -R devs /srv/appsudo chmod 2770 /srv/appsudo chmod 3770 /srv/app/uploadssudo stat -c '%a %A %U:%G %n' /srv/app /srv/app/uploadsecho 'omid ALL=(root) NOPASSWD: /usr/bin/du -sh /srv/app' > /tmp/omid.sudoerssudo visudo -cf /tmp/omid.sudoerssudo install -m 440 -o root -g root /tmp/omid.sudoers /etc/sudoers.d/omidecho "== فایل 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.txtsudo -u omid cat /srv/app/plan.txtecho "== guest"sudo -u guest ls /srv/appecho "== uploads (anna فایل میگذارد، omid میخواهد پاک کند)"sudo -u anna sh -c 'echo x > /srv/app/uploads/anna.txt'sudo -u omid rm /srv/app/uploads/anna.txtecho "== sudo محدود برای omid"sudo -u omid sudo -n du -sh /srv/appsudo -u omid sudo -n cat /etc/shadowecho "== پاکسازی"sudo rm -rf /srv/app /etc/sudoers.d/omid /tmp/omid.sudoersfor u in anna omid guest; do sudo userdel -r $u 2>/dev/null; donesudo groupdel devs2770 drwxrws--- root:devs /srv/app3770 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== guestls: cannot open directory '/srv/app': Permission denied== uploads (anna فایل میگذارد، omid میخواهد پاک کند)rm: cannot remove '/srv/app/uploads/anna.txt': Operation not permitted== sudo محدود برای omid16K /srv/appsudo: a password is required== پاکسازی