رفتن به محتوا
باش‌تاپ ورود

تسلط بر اوبونتو سرور

۱۶۵ مفهوم در ۹ بخش · ۱۵۲ تعریفِ آزاد

از اولین مفهوم شروع کنید

مفاهیمِ دوره

فصل ۱: استقرار اوبونتو سرور (Deploying Ubuntu Server)

  1. ۱.۰.۱ اوبونتو سرور چیست و این فصل چه می‌آموزد
  2. ۱.۰.۲ پیش‌نیازهای فنی نصب اوبونتو سرور
  3. ۱.۱.۱ نقش سرور (Server role) و محیط آزمایشی
  4. ۱.۱.۲ حیاتی‌بودن سرور و افزونگی (Redundancy)
  5. ۱.۱.۳ محرمانگی داده و رمزگذاری در حالت سکون (Encryption at rest)
  6. ۱.۲.۱ گزینه‌های دستگاه و سرور فیزیکی (Physical server)
  7. ۱.۲.۲ دسکتاپ فیزیکی (Physical desktop)
  8. ۱.۲.۳ لپ‌تاپ به‌عنوان سرور (Laptop)
  9. ۱.۲.۴ ماشین مجازی (Virtual Machine) و VirtualBox
  10. ۱.۲.۵ سرور مجازی خصوصی (Virtual Private Server – VPS)
  11. ۱.۲.۶ رزبری پای (Raspberry Pi) و انتخاب مسیر ادامهٔ فصل
  12. ۱.۳.۱ انتخاب رسانهٔ نصب: فلش USB یا DVD
  13. ۱.۳.۲ دانلود ایمیج ISO و نسخه‌های LTS در برابر نسخه‌های میانی
  14. ۱.۳.۳ استفاده از ISO در ماشین مجازی و رایت DVD بوت‌شدنی
  15. ۱.۴.۱ چرا Etcher برای ساخت فلش بوت‌شدنی
  16. ۱.۴.۲ مراحل ساخت فلش بوت‌شدنی با Etcher
  17. ۱.۵.۱ پارتیشن‌بندی و سوار کردن (Partitioning & Mounting)
  18. ۱.۵.۲ حفظ داده‌ها هنگام نصب دوباره با پارتیشن‌بندی سفارشی
  19. ۱.۵.۳ پارتیشن جدا به‌عنوان مرز: مهار فایل‌های لاگ
  20. ۱.۵.۴ نکات پایهٔ پارتیشن‌بندی: / ، /var ، /home و swap
  21. ۱.۶.۱ بوت از رسانهٔ نصب و صفحهٔ آغازین (Test memory)
  22. ۱.۶.۲ زبان، صفحه‌کلید و نوع نصب (Ubuntu Server یا minimized)
  23. ۱.۶.۳ شبکه (DHCP)، پروکسی و آینهٔ بسته‌ها (Mirror)
  24. ۱.۶.۴ پیکربندی ذخیره‌سازی و تأیید پاک شدن دیسک
  25. ۱.۶.۵ کاربر اولیه، OpenSSH، اسنپ‌های پیشنهادی و راه‌اندازی دوباره
  26. ۱.۷.۱ رزبری پای به‌عنوان سرور و دانلود ایمیج آن
  27. ۱.۷.۲ نوشتن کارت SD با Etcher و نخستین بوت رزبری پای
  28. ۱.۸.۱ جمع‌بندی فصل ۱ و منابع مرتبط

فصل ۲: مدیریت کاربران و مجوزها (Managing Users and Permissions)

  1. ۲.۰.۱ چرا مدیریت کاربران و مجوزها اهمیت دارد
  2. ۲.۱.۱ کاربران، گروه‌ها و کاربران سیستمی
  3. ۲.۲.۱ کاربر root: قدرت، خطر و قفل بودن آن در اوبونتو
  4. ۲.۲.۲ اجرای دستورهای ممتاز با sudo
  5. ۲.۳.۱ ساخت کاربر با useradd و تعیین رمز با passwd
  6. ۲.۳.۲ ساخت کاربر با adduser و تفاوت آن با useradd
  7. ۲.۳.۳ حذف کاربر با userdel و نگهداری فایل‌های او
  8. ۲.۴.۱ ساختار فایل /etc/passwd: نام کاربری، UID، GID، پوشهٔ خانگی و پوسته
  9. ۲.۴.۲ فایل /etc/shadow: هش رمز عبور و قفل کردن حساب
  10. ۲.۴.۳ فیلدهای سن رمز در /etc/shadow، دستور passwd -S و صفحه‌های man
  11. ۲.۵.۱ توزیع فایل‌های پیکربندی پیش‌فرض با /etc/skel
  12. ۲.۶.۱ تعویض کاربر با su و sudo su، و فعال کردن root
  13. ۲.۷.۱ مالکیت فایل‌ها، عضویت در گروه‌ها و فایل /etc/group
  14. ۲.۷.۲ ساخت گروه و تغییر عضویت: groupadd، usermod و gpasswd
  15. ۲.۸.۱ قفل کردن و باز کردن حساب‌ها با passwd
  16. ۲.۸.۲ تنظیم انقضای رمز با chage
  17. ۲.۸.۳ سیاست رمز عبور با PAM: تاریخچهٔ رمز، difok و obscure
  18. ۲.۹.۱ گروه sudo، دسترسی جزئی‌تر از root و ویرایش امن با visudo
  19. ۲.۹.۲ ساختار قوانین /etc/sudoers و محدود کردن دسترسی
  20. ۲.۱۰.۱ خواندن رشتهٔ مجوزها در خروجی ls -l
  21. ۲.۱۰.۲ معنای r، w و x برای فایل‌ها و پوشه‌ها
  22. ۲.۱۰.۳ تغییر مجوزها با chmod: نمادین، عددی و بازگشتی
  23. ۲.۱۰.۴ تغییر مالکیت با chown و chgrp
  24. ۲.۱۱.۱ جمع‌بندی فصل ۲

فصل ۶: افزایش کارایی در خط فرمان (Boosting Your Command-line Efficiency)

  1. ۶.۰.۱ چرا کارایی در پوسته مهم است
  2. ۶.۱.۱ پوستهٔ Bash، پوسته‌های دیگر و تعیین پوستهٔ کاربر در /etc/passwd
  3. ۶.۲.۱ تاریخچهٔ Bash: کلیدهای جهت، دستور history و فراخوانی با !شماره
  4. ۶.۲.۲ حذف از تاریخچه، رمز عبور در خط فرمان، فاصلهٔ ابتدایی و فایل .bash_history
  5. ۶.۳.۱ sudo !!، تکمیل با Tab، میان‌برهای صفحه‌کلید و جست‌وجوی تاریخچه با Ctrl + r
  6. ۶.۳.۲ ویرایش دستور در ویرایشگر، زنجیره کردن دستورها با && و ; و کد خروج ($?)
  7. ۶.۳.۳ نام مستعار (alias)، ماندگار کردن آن در .bashrc و cd -
  8. ۶.۴.۱ متغیرها در Bash: تعریف، فراخوانی با $، و متغیرهای سیستمی (env)
  9. ۶.۴.۲ گرفتن ورودی کاربر با read و ذخیره در متغیر
  10. ۶.۵.۱ نخستین اسکریپت Bash: شبنگ (#!)، chmod +x و اجرا
  11. ۶.۵.۲ ذهنیت خودکارسازی: اسکریپت نصب وب‌سرور و گزینهٔ -y
  12. ۶.۵.۳ شرط در اسکریپت: if، else، fi، آزمون فایل (-f، -d، !) و مقایسهٔ عددی (-eq، -lt…)
  13. ۶.۵.۴ حلقهٔ while، افزایش با ((var++)) و خطر حلقهٔ بی‌پایان
  14. ۶.۵.۵ حلقهٔ for: اجرای یک کار برای هر عضو یک فهرست
  15. ۶.۶.۱ دستور rsync و گزینه‌های -a، -v، -b، --delete و --backup-dir
  16. ۶.۶.۲ نوشتن اسکریپت پشتیبان rsync: تاریخ پویا با $(...)، بررسی نصب و جای اسکریپت
  17. ۶.۷.۱ جمع‌بندی فصل ۶

فصل ۷: کنترل و مدیریت پردازه‌ها (Controlling and Managing Processes)

  1. ۷.۰.۱ پردازه‌ها در سرور و نقشهٔ فصل ۷
  2. ۷.۱.۱ بردن کار به پس‌زمینه با Ctrl + z و بازگرداندن با fg و jobs
  3. ۷.۱.۲ اجرای مستقیم در پس‌زمینه با &، بسته شدن کارها هنگام خروج و tmux
  4. ۷.۲.۱ دستور ps، شناسهٔ پردازه (PID) و pidof
  5. ۷.۲.۲ ps a و ستون STAT: وضعیت‌های R، S، D، T و Z (پردازهٔ زامبی)
  6. ۷.۲.۳ ستون TTY (ترمینال واقعی در برابر pts) و ستون TIME (زمان مصرف CPU)
  7. ۷.۲.۴ ps au، ps aux، فیلتر با grep و -C، و مرتب‌سازی بر اساس CPU و حافظه
  8. ۷.۳.۱ اولویت پردازه و مقدار nice: ستون‌های PRI و NI و بازهٔ ‎-20 تا 19
  9. ۷.۳.۲ کار با renice و nice: مجوزها (چه زمانی sudo لازم است) و نحو یکنواخت با -n
  10. ۷.۴.۱ سیگنال‌های لینوکس و دستور kill: SIGHUP، SIGINT، SIGTERM (15) و SIGKILL (9)
  11. ۷.۴.۲ kill -9 به‌عنوان آخرین چاره، پردازه‌های زامبی و killall
  12. ۷.۵.۱ سرویس‌ها (daemon)، systemd به‌عنوان PID 1 و بررسی وضعیت با systemctl status
  13. ۷.۵.۲ start، stop، restart، reload، enable و disable در systemctl
  14. ۷.۶.۱ cron و crontab: دیدن (-l)، ویرایش (-e) و crontab کاربران دیگر (-u)
  15. ۷.۶.۲ قالب خط crontab (m h dom mon dow command)، علامت * و مسیر کامل دستور
  16. ۷.۷.۱ جمع‌بندی فصل ۷

فصل ۸: پایش منابع سیستم (Monitoring System Resources)

  1. ۸.۰.۱ چرا باید منابع سیستم را پایش کنیم
  2. ۸.۱.۱ دید کلی به فضای دیسک با df -h و نام دستگاه‌های ذخیره‌سازی
  3. ۸.۱.۲ تمام شدن inodeها: «دیسک پر است» با وجود فضای آزاد، و df -i
  4. ۸.۱.۳ یافتن پوشه‌های پرحجم با du -hsc *
  5. ۸.۱.۴ ابزار تعاملی ncdu و روند کامل بررسی کمبود فضا
  6. ۸.۲.۱ دستور free -m، ستون available و حافظهٔ نهان فایل‌سیستم
  7. ۸.۲.۲ معنای ستون‌های خروجی free: total، used، free، shared، buff/cache و available
  8. ۸.۳.۱ swap چیست: تور ایمنی هنگام پر شدن RAM، فایل در برابر پارتیشن، swapon و swapoff
  9. ۸.۳.۲ ساختن فایل swap: fallocate، chmod 0600، mkswap، /etc/fstab و swapon
  10. ۸.۳.۳ پایش مصرف swap و تنظیم swappiness با sysctl و /etc/sysctl.conf
  11. ۸.۴.۱ میانگین بار (load average): سه عدد ۱، ۵ و ۱۵ دقیقه و دیدن آن با uptime
  12. ۸.۴.۲ تفسیر میانگین بار نسبت به تعداد هسته‌ها، تشبیه صندوق فروشگاه و خط مبنا
  13. ۸.۵.۱ نمای کلی htop: نمایشگرهای CPU، حافظه و swap، مرتب‌سازی و سفارشی‌سازی با F2
  14. ۸.۵.۲ htop پیشرفته: فیلتر کاربر (u)، نمای درختی (F5)، فاصلهٔ به‌روزرسانی (-d)، کشتن با F9 و top
  15. ۸.۶.۱ جمع‌بندی فصل ۸

فصل ۹: مدیریت حجم‌های ذخیره‌سازی (Managing Storage Volumes)

  1. ۹.۰.۱ چرا فضای ذخیره‌سازی همیشه کم می‌آید و نقش برنامه‌ریزی
  2. ۹.۱.۱ چهار پرسش پیش از افزودن دیسک: اندازه، نام دستگاه، فایل‌سیستم و نقطهٔ اتصال
  3. ۹.۱.۲ یافتن نام دیسک جدید با fdisk -l، dmesg --follow و lsblk، و شماره‌گذاری پارتیشن‌ها
  4. ۹.۲.۱ جدول پارتیشن MBR (DOS) در برابر GPT
  5. ۹.۲.۲ ساختن پارتیشن با fdisk: g یا o، n، اندازه با +20G و ذخیره با w
  6. ۹.۲.۳ قالب‌بندی پارتیشن با mkfs.ext4 و mkfs.xfs
  7. ۹.۳.۱ سوار کردن حجم با mount: /mnt در برابر /media، گزینهٔ -t و بررسی با df -h
  8. ۹.۳.۲ پیاده کردن با umount، خطای device is busy و ماندگار نبودن mount دستی
  9. ۹.۴.۱ ساختار /etc/fstab: شش ستون، UUID به جای نام دستگاه و blkid
  10. ۹.۴.۲ افزودن ورودی به fstab، گزینهٔ defaults و جایگزین‌های امن‌تر ro و noexec
  11. ۹.۴.۳ auto و noauto، سوار کردن همه با mount -a، گزینهٔ users و دیدن mountها
  12. ۹.۵.۱ اعتماد نکردن به دیسک‌ها و چرا RAID پشتیبان نیست
  13. ۹.۵.۲ اصول طرح پشتیبان: خارج از سرور، چند لایه، آزمودن، رمزگذاری و سیاست نگهداری
  14. ۹.۶.۱ چرا LVM: بزرگ کردن فایل‌سیستم بدون ریبوت و توقف سرویس
  15. ۹.۶.۲ مفاهیم LVM: گروه حجم (VG)، حجم فیزیکی (PV) و حجم منطقی (LV)
  16. ۹.۶.۳ ساختن LVM: pvcreate، vgcreate، lvcreate، دستورهای display و قالب‌بندی LV
  17. ۹.۶.۴ بزرگ کردن آنلاین: lvextend، resize2fs، افزودن دیسک با vgextend و نگه داشتن ذخیره
  18. ۹.۶.۵ حذف حجم منطقی و گروه حجم با lvremove و vgremove
  19. ۹.۷.۱ snapshot در LVM چیست و چرا پشتیبان نیست
  20. ۹.۷.۲ ساختن snapshot با lvcreate -s، بازگشت با lvconvert --merge و نهایی کردن با lvremove
  21. ۹.۸.۱ جمع‌بندی فصل ۹