Product SiteDocumentation Site

8.9. سایر پیکربندی‌ها: همگام‌سازی زمان، گزارش‌ها، دسترسی اشتراکی...

عناصر مختلفی که در این قسمت به آن‌ها اشاره می‌شود برای کسانی که می‌خواهند تمام جنبه‌های پیکربندی یک سیستم گنو/لینوکس را بدانند بسیار مفید هستند. اگرچه، تنها به بخش مختصری از آن‌ها می‌پردازیم و ارجاعاتی به مستندات رسمی باقی می‌گذاریم.

8.9.1. منطقه‌زمانی

منطقه‌زمانی، که در نصب اولیه پیکربندی شده، یک گزینه پیکربندی برای بسته tzdata است. برای تغییر آن، از دستور dpkg-reconfigure tzdata استفاده کنید، که به شما اجازه انتخاب یک منطقه‌زمانی را به صورت تعاملی می‌دهد. پیکربندی آن در فایل /etc/timezone ذخیره شده است. به علاوه، فایل متناظر آن در دایرکتوری /usr/share/zoneinfo در فایل /etc/localtime رونوشت گرفته می‌شود؛ این فایل شامل تاریخ مبتنی بر ساعت تابستانی است که بر بعضی کشورها استفاده می‌شود.
زمانی که نیاز دارید به صورت موقت منطقه‌زمانی را تغییر دهید، از متغیر محلی TZ استفاده کنید که نسب به پیش‌فرض اولیه سیستم اولویت پیدا می‌کند.
$ date
Thu Feb 19 11:25:18 CET 2015
$ TZ="Pacific/Honolulu" date
Thu Feb 19 00:25:21 HST 2015

8.9.2. همگام‌سازی زمان

همگام‌سازی زمان، که ممکن است عضو زائدی در رایانه به حساب آید، اهمیت بسزایی در یک شبکه دارد. از آنجا که کاربران مجوز کافی برای تغییر و تنظیم تاریخ و ساعت را ندارد، دقیق بودن این اطلاعات از اهمیت خاصی برخوردار است تا باعث سردرگمی نشود. علاوه بر این، همگام‌سازی زمان چند رایانه در شبکه باعث می‌شود که اطلاعات مربوط به گزارش‌های سیستمی به صورت بهتری استفاده گردند. بنابراین، اگر حمله‌ای صورت گیرد، راحت‌تر خواهد بود که ترتیب زمانی وقایع اتفاق افتاده در مجموعه‌ای از رایانه‌های نفوذ شده را تشخیص داد. داده‌هایی که از چندین رایانه مختلف برای تحلیل آماری گردآوری می‌شوند مادامی که همگام‌سازی زمانی نداشته باشند تاثیر خاصی ندارند.

8.9.2.1. برای رایانه‌های رومیزی

از آنجا که این رایانه‌ها به صورت مداوم روشن و خاموش می‌گردند (حتی برای صرفه‌جویی در انرژی)، همگام‌سازی زمان در لحظه راه‌اندازی توسط NTP کافی است. به این منظور، تنها کافی است بسته ntpdate را نصب کنید. با ویرایش فایل /etc/default/ntpdate نیز می‌توانید سرور NTP مورد نظر را تغییر دهید.

8.9.2.2. برای سرورها

سرورها به طور خیلی کم راه‌اندازی مجدد می‌گردند و صحیح بودن ساعت سیستم در آن‌ها اهمیت ویژه‌ای دارد. برای این منظور، می‌توانید یک سرور NTP محلی نصب کنید، سرویسی که توسط بسته ntp ارائه می‌شود. در پیکربندی پیش‌فرض آن، سرور با pool.ntp.org همگام‌سازی می‌شود و زمان خواسته شده را که توسط شبکه محلی مورد نیاز است فراهم می‌آورد. می‌توانید با ویریش فایل /etc/ntp.conf آن را پیکربندی کنید که مهم‌ترین تغییر در آن مربوط به سرور NTP مورد نیاز است. اگر شبکه دارای سرورهای مختلفی باشد، می‌توان یکی از آن‌ها را با توجه به سرورهای عمومی NTP همگام‌سازی کرد تا باقی سرورهای شبکه از روی آن همگام‌سازی زمانی گردند.

8.9.3. چرخش فایل‌های گزارش

فایل‌های گزارش می‌توانند به سرعت رشد کرده و حجم زیادی اشغال کنند که این امر بایگانی کردن آن‌ها را لازم می‌سازد. متداول‌ترین شیوه استفاده از یک بایگانی چرخشی است: فایل گزارش به صورت مداوم بایگانی می‌شود و تنها آخرین بایگانی X به صورت دست نخورده باقی می‌ماند. logrotate، برنامه‌ای که مسئول این کار است از دستورات موجود در فایل /etc/logrotate.conf و تمام فایل‌هایی که در دایرکتوری /etc/logrotate.d/ وجود دارند، استفاده می‌کند. مدیرسیستم شاید بخواهد این فایل‌ها را ویرایش کند، اگر قصد سازگاری با سیاست تعیین شده چرخش فایل در دبیان را داشته باشد. صفحه راهنمای logrotate(1) شامل تمام گزینه‌های موجود در این فایل‌های پیکربندی است. شاید بخواهید تعداد فایل‌هایی که در هر چرخش حفظ می‌گردند را افزایش دهید یا فایل‌های چرخانده شده را به یک دایرکتوری خاص که برای بایگانی استفاده می‌شود جابجا کنید بجای آنکه آن‌ها حذف شوند. همچنین می‌توانید آن‌ها را با استفاده از ایمیل جهت بایگانی در جای دیگری ارسال کنید.
برنامه logrotate به صورت روزانه توسط برنامه زمان‌بندی cron اجرا می‌شود (که در قسمت قسمت 9.7, “Scheduling Tasks with cron and atd توضیح داده شده است).

8.9.4. اشتراک‌گذاری دسترسی سطح بالا

به طور مداوم، چند مدیرسیستم روی یک شبکه کار می‌کنند. اشتراک‌گذاری گذرواژه حساب root کار معقولی نیست، که باعث بروز سواستفاده با توجه به ماهیت نامشخص بودن کاربر استفاده کننده از این حساب می‌گردد. راه حل این مساله برنامه sudo است که به برخی کاربران اجازه می‌دهد برخی برنامه‌ها را با مجوزهای سطح بالا اجرا کنند. در متداول‌ترین کاربرد، sudo به کاربر مجاز اجازه استفاده از هر دستوری با مجوز حساب root را می‌دهد. به این منظور، کاربر تنها با وارد کردن دستور sudo command و درج گذرواژه خود می‌تواند دسترسی بالاتری پیدا کند.
زمانی که نصب گردد، بسته sudo تمام مجوزهای کاربر root را به اعضای گروه یونیکس sudo اختصاص می‌دهد. برای افزودن سایر مجوزها، مدیرسیستم باید از دستور visudo استفاده کرده که به وی اجازه ویرایش فایل /etc/sudoers را می‌دهد (در اینجا نیز ویرایشگر vi انتخاب می‌شود، یا هر ویرایشگر دیگری که توسط متغیر محلی EDITOR مشخص شده باشد). افزودن خطی مانند username ALL=(ALL) ALL باعث می‌شود که کاربر مورد نظر تمام دستورات را با مجوزهای حساب root اجرا کند.
پیکربندی‌های پیچیده‌تر تنها اجازه دسترسی برخی دستورات را به کاربران می دهند. تمام جزئیات مربوط به این پیکربندی‌ها در صفحه راهنمای sudoers(5) آمده است.

8.9.5. فهرست نقاط اتصال

فایل /etc/fstab فهرستی از تمام اتصال‌های موجود در سیستم که به صورت خودکار یا دستی صورت گرفته‌اند را نمایش می‌دهد. هر نقطه اتصال توسط یک خط به همراه چندین عبارت که با فاصله جدا شده‌اند مشخص است:
  • دستگاهی که باید متصل شود: می‌تواند یک پارتیشن محلی (هارد درایو، سی‌دی) یا یک فایل‌سیستم راه‌دور (مانند NFS) باشد.
    این فیلد معمولا توسط شناسه منحصربفرد فایل‌سیستم جایگزین می‌شود (که می‌توانید با دستور blkid device مشخص کنید) که پیشوند UUID= دارد. این رویکرد درباره تغییرات احتمالی آینده در نام دستگاه یا ترتیبی که در رایانه قرار گرفته است، محافظت می‌کند.
  • نقطه اتصال: دایرکتوری در فایل‌سیستم محلی که دستگاه، سیستم راه‌دور یا پارتیشن در آن قرار می‌گیرد.
  • نوع: این فیلد نشان‌دهنده نوع فایل‌سیستم استفاده شده در روی دستگاه است. ext4، ext3، vfat، ntfs، btrfs و xfs برخی از گزینه‌ها هستند.
    فهرست کاملی از فایل‌سیستم‌های شناخته شده در صفحه راهنمای mount(8) وجود دارد. مقدار ویژه swap برای پارتیشن‌های swap استفاده می‌شود؛ مقدار ویژه auto به دستور mount می‌گوید که خود نوع فایل‌سیستم را تشخیص دهد (که معمولا برای کارت‌های حافظه و ذخیره‌سازهای USB بسیار مفید است، چرا که هر یک ممکن است فایل‌سیستم جداگانه‌ای داشته باشند)؛
  • گزینه‌ها: تعداد زیادی هستند که بر اساس نوع فایل‌سیستم متفاوت عمل می‌کنند، آن‌ها در صفحه راهنمای mount مستندسازی شده‌اند. متداول‌ترین آن‌ها عبارتند از
    • rw یا ro که به معنی دسترسی خواندنی/نوشتی یا فقط خواندنی هستند.
    • noauto اتصال خودکار هنگام راه‌اندازی اولیه را غیرفعال می‌کند.
    • nofail به فرآیند راه‌اندای اجازه می‌دهد که در صورت نبودن دستگاه نیز به کار خود ادامه دهد. اطمینان یابید که از این گزینه برای دستگاه‌های خارجی که ممکن است در زمان راه‌اندازی وصل نباشند استفاده می‌کنید، چرا که systemd اطمینان می‌یابد تمام دستگاه‌های مورد نیاز برای اتصال به فایل‌سیستم واقعا وصل شده باشند و اگر این اتفاق نیفتند اجازه پیشروی فرآیند راه‌اندازی سیستم را نمی‌دهد. نکته اینکه می‌توانید آن را با x-systemd.device-timeout=5s ترکیب کرده که به ... بگویید بیش از ۵ ثانیه برای ظاهرشدن دستگاه منتظر نماند (قسمت systemd.mount(5) را مشاهده کنید).
    • user به تمام کاربران اجازه اتصال به این فایل‌سیستم را می‌دهد (عملیاتی که معمولا محدود به کاربر root است.)
    • defaults به معنی گروهی از گزینه‌های پیش‌فرض است: rw، suid، dev، exec، auto، nouser و async، که هر کدام در ادامه می‌توانند غیرفعال شوند defaults با اضافه کردن nosuid، nodev و به همین شکل به منظور مسدودکردن suid، dev و سایر موارد. افزودن گزینه user آن‌ها را دوباره فعال می‌کند چرا که defaults شامل nouser می‌شود.
  • پشتیبان: این فیلد تقریبا همیشه برابر با 0. زمانی که شامل 1 باشد به این معنی است که ابزار dump باید از محتویات پارتیشن عملیات پشتیبان‌گیری را انجام دهد.
  • ترتیب بررسی: این فیلد انتهایی مشخص می‌کند آیا جامعیت فایل‌سیستم هنگام راه‌اندازی سیستم بررسی گردد یا خیر و به چه ترتیبی این بررسی باید صورت پذیرد. اگر 0 باشد هیچ بررسی صورت نمی‌گیرد. فایل‌سیستم ریشه باید مقدار 1 را داشته باشد در صورتی که سایر فایل‌سیستم‌های ثابت می‌توانند از 2 شروع شوند.

مثال 8.5. نمونه فایل /etc/fstab

# /etc/fstab: static file system information.
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
proc            /proc           proc    defaults        0       0
# / was on /dev/sda1 during installation
UUID=c964222e-6af1-4985-be04-19d7c764d0a7 / ext3 errors=remount-ro 0 1
# swap was on /dev/sda5 during installation
UUID=ee880013-0f63-4251-b5c6-b771f53bd90e none swap sw  0       0
/dev/scd0       /media/cdrom0   udf,iso9660 user,noauto 0       0
/dev/fd0        /media/floppy   auto    rw,user,noauto  0       0
arrakis:/shared /shared         nfs     defaults        0       0
آخرین خط این مثال شامل یک فایل‌سیستم NFS می‌باشد: دایرکتوری /shared/ از سرور arrakis به دایرکتوری /shared/ در سیستم محلی متصل شده است. قالب فایل /etc/fstab در صفحه راهنمای fstab(5) آورده شده است.

8.9.6. locate و updatedb

دستور locate زمانی که بخشی از نام فایل را بدانید می‌تواند برای یافتن محل آن به شما کمک کند. نتیجه این جستجو تقریبا بدون کوچکترین وقفه‌ای نمایش داده می‌شود چرا که از پایگاه‌داده‌ای استفاده می‌کند که شامل تمام فایل‌های موجود در سیستم است؛ این پایگاه‌داده به صورت روزانه توسط دستور updatedb بروزرسانی می‌گردد. پیاده‌سازی‌های گوناگونی از دستور locate وجود دارد و دبیان از mlocate برای سیستم استاندارد خود بهره می‌گیرد.
mlocate به اندازه‌ای هوشمند است که تنها فایل‌هایی را به کاربر نمایش دهد که وی مجاز به مشاهده آن‌ها باشد، با اینکه به تمام فایل‌های موجود روی سیستم دسترسی دارد (از آنجا که پیاده‌سازی updatedb آن با مجوزهای root انجام می‌شود). برای امنیت بیشتر، مدیرسیستم می‌تواند از متغیر PRUNEDPATHS در فایل /etc/updatedb.conf به منظور خارج‌سازی برخی دایرکتوری‌ها از فرآیند شاخص‌گذاری استفاده کند.