L01 — Linux temeli: process, izin, kullanıcı#
Modül:
A1· Süre: ~1 saat · Kırık lab: yok
Bu lab'da bir process'i bulup incelersin, bir dizin ağacının izinlerini düzene çekersin ve bir servis kullanıcısı yaratırsın. Üçü de bir sunucuda her gün yaptığın işlerdir.
Gerekenler#
- Linux (veya WSL2 / Linux VM). macOS'ta
chmod/statsözdizimi farklı — Linux kullan. bash,pgrep,stat,chmod,chown. Kullanıcı yaratmak içinsudo.
Görev#
- Playground'u kur.
starter/setup-playground.sh'i çalıştır. Bu script./playground/altında yanlış izinli bir dizin ağacı yaratır ve arka plandal01-daemonadlı bir process başlatır. - Process'i bul ve incele.
l01-daemonprocess'inin PID'ini, çalışma dizinini ve açık dosyalarını bul. Çıktıyıreport.txt'e yaz. - İzinleri düzelt.
playground/altındaki tüm dizinleri750, tüm dosyaları640yap.playground/gizli.txtşu an herkese açık (0666) — bu bir güvenlik açığıdır, kapat. - Servis kullanıcısı yarat. Login yapamayan (
--shell /usr/sbin/nologin), home'u olmayan birl01svcsistem kullanıcısı yarat. Niçin login'siz olduğunureport.txt'e bir cümleyle yaz. - Kanıtı yaz.
report.txtşunları içermeli: process PID satırı,df -hvsdf -ifarkının bir cümlelik açıklaması, kullanıcı≠grup≠sudo sınırı.
Kabul kriterleri#
-
bash verify.shsıfır hatayla geçiyor. -
playground/içindeki her dizin750, her dosya640. -
report.txtprocess PID'ini vedf -h/df -ifarkını içeriyor. -
l01svckullanıcısı var ve login shell'inologin.
İpucu (çözüm değil)#
- Process bulma: bir isimle PID →
pgrep. PID'in ayrıntısı →/proc/<PID>/altındakicwdvefd/sembolik linkleri, veyalsof -p <PID>. - Toplu izin: dizinlere ve dosyalara ayrı
find ... -type d/-type f -exec chmodile farklı mod ver. Dizine640verirsen içinecdedemezsin — dizinxbitine ihtiyaç duyar. - Sistem kullanıcısı:
useradd --system --no-create-home --shell <nologin-path>.
Takılırsan solution/'a bak — ama önce kendin dene.