FHS، کاربران، مجوزها و Package Manager
فایلها کجا هستند؟
Filesystem Hierarchy Standard (FHS) قراردادی برای محل قرارگیری فایلها در Linux است. همهٔ توزیعها دقیقاً یکسان نیستند، اما دانستن مسیرهای اصلی کمک میکند پیکربندی، لاگ و فایل اجرایی را در جای درست پیدا کنید.
/etc— پیکربندی سراسری سامانه و سرویسها؛ مانند/etc/ssh/sshd_config/var— دادهای که در طول کار سامانه تغییر میکند؛ مانند لاگها در/var/log/home— دایرکتوری خانگی کاربران عادی/tmp— فایلهای موقت؛ برای نگهداری دادهٔ مهم مناسب نیست/usr— برنامهها، کتابخانهها و دادهٔ مشترک نصبشده توسط توزیع/usr/local— برنامهها و اسکریپتهایی که مدیر سامانه بهصورت محلی اضافه میکند/opt— نرمافزارهای جانبی و مستقل ازpackage managerتوزیع/proc— نمای مجازی از اطلاعات هسته و فرایندها، نه فایلهای معمولی روی دیسک
برای اینکه بدانید یک برنامه از کجا اجرا میشود، از command -v استفاده کنید. برای مشاهدهٔ فضای فایلسیستم و mount point ها نیز df و mount مفیدند:
کاربران و گروهها
هر فرایند با هویت یک کاربر اجرا میشود. این هویت تعیین میکند فرایند به کدام فایلها و عملیات دسترسی دارد. گروهها راهی برای اشتراکگذاری دسترسی بین چند کاربر هستند.
فایلهای محلی اطلاعات کاربر و گروه معمولاً در /etc/passwd و /etc/group دیده میشوند، اما برای خواندن آنها بهتر است از getent استفاده کنید؛ ممکن است سامانه هویتها را از LDAP یا سرویس دیگری دریافت کند.
نمونهٔ ایجاد یک کاربر سرویس در محیط آزمایشی:
گزینهٔ -aG کاربر را به گروههای جدید اضافه میکند. حذف -a میتواند گروههای فعلی کاربر را جایگزین کند و دسترسی او را ناخواسته تغییر دهد.
مالکیت و مجوزها
هر فایل یک مالک، یک گروه و سه مجموعه مجوز دارد: برای مالک (u)، گروه (g) و دیگران (o). خروجی ls -l این اطلاعات را نشان میدهد:
ده نویسهٔ ابتدایی بهترتیب نوع فایل و مجوزهای مالک، گروه و دیگران را نشان میدهند. r برای خواندن، w برای نوشتن و x برای اجرا یا عبور از دایرکتوری است.
با نمادها یا بهصورت عددی مجوزها را تغییر دهید:
در حالت عددی، r برابر 4، w برابر 2 و x برابر 1 است. بنابراین 640 یعنی مالک خواندن و نوشتن (6)، گروه فقط خواندن (4) و دیگران هیچ دسترسیای (0) ندارند.
هشدار: استفاده از sudo
sudo دستور را با دسترسی کاربر دیگر، معمولاً root، اجرا میکند. از آن فقط برای یک دستور مشخص استفاده کنید، نه برای اجرای shell دائمی. پیش از اجرای دستورهای دارای sudo، مسیر و اثر آن را بررسی کنید.
Package Manager
package manager، نرمافزار را همراه وابستگیها و بهروزرسانیهای امنیتی مدیریت میکند. بستهها را از مخزنهای رسمی یا مورد اعتماد نصب کنید؛ اسکریپتهای نصب ناشناس را مستقیم با دسترسی root اجرا نکنید.
در Debian و Ubuntu از apt استفاده میشود:
در Fedora و RHEL از dnf استفاده میشود:
ابتدا فهرست یا فرادادهٔ بسته را بهروز کنید، سپس بسته را نصب کنید. تفاوتهای نسخهٔ توزیعها را در مستندات همان توزیع بررسی کنید و به جای حدسزدن، نام دقیق بسته را با search پیدا کنید.
منابع یادگیری
مستندات و مقالات
- User management - Ubuntu Server Documentation — مدیریت کاربر و گروه در Ubuntu
- Permissions - Ubuntu Community Help Wiki — شرح مفصل مجوز و مالکیت
- ۱۰۴.۵ - مدیریت مجوز و مالکیت فایلها - کتاب LPIC1 جادی — مقالهٔ مرتبط با مجوزها، مالکیت و دسترسی فایلها
- ۱۰۴.۶ - ساخت و تغییر hard link و symbolic link - کتاب LPIC1 جادی — مقالهٔ مرتبط با linkها و تفاوت hard و soft link
- ۱۰۴.۷ - پیدا کردن فایلهای سیستم و قرار دادن فایلها در محل درست - کتاب LPIC1 جادی — مقالهٔ مرتبط با FHS و محل فایلها در لینوکس
- ۱۰۲.۴ - استفاده از مدیریت بستهٔ Debian - کتاب LPIC1 جادی — مقالهٔ مرتبط با
aptو مدیریت بسته در توزیعهای Debian
ویدیو
- Linux File Permissions - freeCodeCamp — مرور عملی مالکیت و
chmod - الپیک ۱ - ۰۴۶ - ۱۰۴.۵ - یوزر و گروه و دسترسیها در دنیای لینوکس (۲ قسمت) - جادی — آموزش userها، groupها و permissionها در Linux
- الپیک ۱ - ۰۴۸ - ۱۰۴.۶ - هارد و سافت لینکها در لینوکس؛ مفهوم، استفاده و کاربرد — آموزش کار با soft link و hard link و تفاوت آنها
- الپیک ۱ - ۰۴۹ - ۱۰۴.۷ - ساختار سلسلهمراتبی فایلسیستم یونیکس و لینوکس و پیدا کردن جای فایلها - جادی — مرور ساختار فایلسیستم و پیدا کردن فایلها با ابزارهای لینوکسی
- الپیک ۱ - ۰۱۷ - کار با package managerهای دبیانی - درک مفهوم منابع نرمافزاری و repository (۲ قسمت) - جادی — آشنایی با مدیریت منابع نرمافزاری در توزیعهای مبتنی بر Debian