Product SiteDocumentation Site

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

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

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

The timezone, configured during initial installation, is a configuration item for the tzdata package. To modify it, use the dpkg-reconfigure tzdata command, which allows you to choose the timezone to be used in an interactive manner. Its configuration is stored in the /etc/timezone file. Additionally, /etc/localtime becomes a symbolic link to the corresponding file in the /usr/share/zoneinfo; the file that contains the rules governing the dates where daylight saving time (DST) is active, for countries that use it.
زمانی که نیاز دارید به صورت موقت منطقه‌زمانی را تغییر دهید، از متغیر محلی TZ استفاده کنید که نسب به پیش‌فرض اولیه سیستم اولویت پیدا می‌کند.
$ date
Mon Jul 29 07:53:36 PM EDT 2024
$ TZ="Pacific/Honolulu" date
Mon Jul 29 01:54:00 PM HST 2024

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

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

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

Since work stations are regularly rebooted (even if only to save energy), synchronizing them by NTP at boot is enough. To do so, simply install either the ntpdate or the systemd-timesyncd package. You can then change the NTP server used if needed by modifying the /etc/default/ntpdate or the /etc/systemd/timesyncd.conf file.

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, “زمان‌بندی وظیفه‌ها با cron و atd توضیح داده شده است).

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

به طور مداوم، چند مدیرسیستم روی یک شبکه کار می‌کنند. اشتراک‌گذاری گذرواژه حساب root کار معقولی نیست، که باعث بروز سواستفاده با توجه به ماهیت نامشخص بودن کاربر استفاده کننده از این حساب می‌گردد. راه حل این مساله برنامه sudo است که به برخی کاربران اجازه می‌دهد برخی برنامه‌ها را با مجوزهای سطح بالا اجرا کنند. در متداول‌ترین کاربرد، sudo به کاربر مجاز اجازه استفاده از هر دستوری با مجوز حساب root را می‌دهد. به این منظور، کاربر تنها با وارد کردن دستور sudo command و درج گذرواژه خود می‌تواند دسترسی بالاتری پیدا کند.
When installed, the sudo package gives full root rights to members of the sudo Unix group. To delegate other rights, the administrator can use the visudo command, which allows them to modify the /etc/sudoers configuration file (here again, this will invoke the vi editor, or any other editor indicated in the EDITOR environment variable). Alternatively, they might put rules in small files in /etc/sudoers.d/ with the file permissions 0440 as long as this directory is included by /etc/sudoers via @includedir /etc/sudoers.d, which is the default for Debian. Adding a line with username ALL=(ALL) ALL allows the user in question to execute any command as root. The permissions and syntax of all files can be verified with the visudo -c command.
More sophisticated configurations allow authorization of only specific commands to specific users. All the details of the various possibilities are given in the sudoers(5) manual page.

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

The /etc/fstab file gives a list of all possible mounts that happen either automatically on boot or manually for removable storage devices. Each mount point is described by a line with several space-separated fields:
  • file system: this indicates where the filesystem to be mounted can be found, it can be a local device (hard drive partition, CD-ROM) or a remote filesystem (such as NFS or even SSHFS).
    This field is frequently replaced with the unique ID of the filesystem (which you can determine with blkid device) prefixed with UUID=. This guards against a change in the name of the device in the event of addition or removal of disks, or if disks are detected in a different order. قسمت 8.8.1, “شناسایی دیسک‌ها” covers this topic in more detail.
  • نقطه اتصال: دایرکتوری در فایل‌سیستم محلی که دستگاه، سیستم راه‌دور یا پارتیشن در آن قرار می‌گیرد.
  • نوع: این فیلد نشان‌دهنده نوع فایل‌سیستم استفاده شده در روی دستگاه است. ext4، ext3، vfat، ntfs، btrfs و xfs برخی از گزینه‌ها هستند.
    A complete list of known filesystems is available in the mount(8) manual page. The swap special value is for swap partitions; the auto special value tells the mount program to automatically detect the filesystem (which is especially useful for disk readers and USB keys, since each one might have a different filesystem);
  • گزینه‌ها: تعداد زیادی هستند که بر اساس نوع فایل‌سیستم متفاوت عمل می‌کنند، آن‌ها در صفحه راهنمای 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 می‌شود.
  • dump: this field is almost always set to 0 and kind of a relic. When it is greater then zero, it tells the dump tool that the partition contains data that is to be backed up frequently. The tool supports Ext2/3/4 filesystems only and will use the value here when run via dump -W or dump -w to determine which partitions need to be backed up. Consider the examples in /usr/share/doc/dump/examples/ if you want to use this feature. But there are better alternatives to backup a filesystem, like fsarchiver.
  • pass: this last field indicates whether the integrity of the filesystem should be checked on boot, and in which order this check should be executed. If it is 0, no check is conducted. The root filesystem should have the value 1, while other permanent filesystems get the value 2.

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

# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# systemd generates mount units based on this file, see systemd.mount(5).
# Please run 'systemctl daemon-reload' after making changes here.
#
# <file system>                           <mount point>   <type>      <options>         <dump>  <pass>
# / was on /dev/sda1 during installation
UUID=7a250fb8-c16d-4a4e-9808-ec08ae92b6c6 /               ext4        errors=remount-ro 0       1
# swap was on /dev/sda5 during installation
UUID=13f367ae-dbaf-40ed-85c0-4072a2ebe426 none            swap        sw                0       0
/dev/sr0                                  /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
The last entry in the example corresponds to a network filesystem (NFS): the /shared/ directory on the arrakis server is mounted at /shared/ on the local machine.
The format of the /etc/fstab file is documented in the fstab(5) manual page.

8.9.6. locate و updatedb

The locate command can find the location of a file when you only know part of the name. It sends a result almost instantaneously, since it consults a database that stores the location of all the files on the system; this database is updated daily by the updatedb command. There are multiple implementations of the locate command and Debian picked mlocate for its standard system. If you want to consider an alternative, you can try plocate which provides the same command line options and can be considered a drop-in replacement.
locate is smart enough to only return files which are accessible to the user running the command even though it uses a database that knows about all files on the system (since its updatedb implementation runs with root rights). For extra safety, the administrator can use PRUNEDPATHS in /etc/updatedb.conf to exclude some directories from being indexed.