歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux綜合 >> Linux資訊 >> 更多Linux >> 系統管理步步高理解 Linux 配置文件

系統管理步步高理解 Linux 配置文件

日期:2017/2/27 14:24:48   编辑:更多Linux
  介紹  每個 Linux 程序都是一個可執行文件,它含有操作碼列表,CPU 將執行這些操作碼來完成特定的操作。例如,ls 命令是由 /bin/ls 文件提供的,該文件含有機器指令的列表,在屏幕上顯示當前目錄中文件的列表時需要使用這些機器指令。幾乎每個程序的行為都可以通過修改其配置文件來按照您的偏好或需要去定制。    Linux 中有沒有一個標准的配置文件格式?  一句話,沒有。不熟悉 Linux 的用戶(一定)會感到沮喪,因為每個配置文件看起來都象是一個要迎接的新挑戰。在 Linux 中,每個程序員都可以自由選擇他或她喜歡的配置文件格式。可以選擇的格式很多,從 /etc/shells 文件(它包含被一個換行符分開的 shell 的列表),到 Apache 的復雜的 /etc/httpd.conf 文件。    什麼是系統配置文件?  內核本身也可以看成是一個“程序”。為什麼內核需要配置文件?內核需要了解系統中用戶和組的列表,進而管理文件權限(即根據權限判定特定用戶(UNIX_USERS)是否可以打開某個文件)。注意,這些文件不是明確地由程序讀取的,而是由系統庫所提供的一個函數讀取,並被內核使用。例如,程序需要某個用戶的(加密過的)密碼時不應該打開 /etc/passwd 文件。相反,程序應該調用系統庫的 getpw() 函數。這種函數也被稱為系統調用。打開 /etc/passwd 文件和之後查找那個被請求的用戶的密碼都是由內核(通過系統庫)決定的。    除非另行指定,Red Hat Linux 系統中大多數配置文件都在 /etc 目錄中。配置文件可以大致分為下面幾類:    訪問文件     引導和登錄/注銷       文件系統  內核提供了一個接口,用來顯示一些它的數據結構,這些數據結構對於決定諸如使用的中斷、初始化的設備和內存統計信息之類的系統參數可能很有用。這個接口是作為一個獨立但虛擬的文件系統提供的,稱為 /proc 文件系統。很多系統實用程序都使用這個文件系統中存在的值來顯示系統統計信息。例如,/proc/modules 文件列舉系統中當前加載的模塊。lsmod 命令讀取此信息,然後將其以人們可以看懂的格式顯示出來。下面表格中指定的 mtab 文件以同樣的方式讀取包含當前安裝的文件系統的 /proc/mount 文件。       系統管理     聯網     系統命令  系統命令要獨占地控制系統,並讓一切正常工作。所有如 login(完成控制台用戶身份驗證階段)或 bash(提供用戶和計算機之間交互)之類的程序都是系統命令。因此,和它們有關的文件也特別重要。這一類別中有下列令用戶和管理員感興趣的文件。       守護進程  守護進程是一種運行在非交互模式下的程序。一般來說,守護進程任務是和聯網區域有關的:它們等待連接,以便通過連接提供服務。Linux 可以使用從 Web 服務器到 FTP 服務器的很多守護進程。       用戶程序  在 Linux(和一般的 UNIX)中,有無數的“用戶”程序。最常見的一種用戶程序配置文件是 /etc/lynx.cfg。這是著名的文本浏覽器 lynx 的配置文件。通過這個文件,您可以定義代理服務器、要使用的字符集等等。下面的代碼樣本展示了 lynx.cfg 文件的一部分,修改這部分代碼可以改變 Linux 系統的代理服務器設置。缺省情況下,這些設置適用於在各自的 shell 中運行 lynx 的所有用戶,除非某個用戶通過指定 --cfg = "mylynx.cfg" 重設了缺省的配置文件。    /etc/lynx.cfg 中的代理服務器設置    .h1 proxy  .h2 HTTP_PROXY  .h2 HTTPS_PROXY  .h2 FTP_PROXY  .h2 GOPHER_PROXY  .h2 NEWS_PROXY  .h2 NNTP_PROXY  # Lynx version 2.2 and beyond supports the use of proxy servers that can act as  # firewall gateways and caching servers. They are preferable to the older  # gateway servers. Each protocol used by Lynx can be mapped separately using  # PROTOCOL_proxy environment variables (see Lynx Users Guide). If you have   # not set them externally, you can set them at run time via this configuration file.  # They will not override external settings. The no_proxy variable can be used  # to inhibit proxying to selected regions of the Web (see below). Note that on  # VMS these proxy variables are set as process logicals rather than symbols, to  # preserve lowercasing, and will outlive the Lynx image.  #  .ex 15  http_proxy:http://proxy3.in.ibm.com:80/  ftp_proxy:http://proxy3.in.ibm.com:80/  #http_proxy:http://penguin.in.ibm.com:8080  #ftp_proxy:http://penguin.in.ibm.com:8080/    .h2 NO_PROXY  # The no_proxy variable can be a comma-separated list of strings defining  # no-proxy zones in the DNS domain name space. If a tail substring of the  # domain-path for a host matches one of these strings, transactions with that  # node will not be proxied.  .ex  no_proxy:demiurge.in.ibm.com, demiurge    更改配置文件  在更改配置文件時,如果程序不是由系統管理員或內核控制的,就要確保重新啟動過使用該配置的程序。普通用戶通常沒有啟動或停止系統程序和/或守護進程的權限。    內核  更改內核中的配置文件會立即影響到系統。例如,更改 passwd 文件以增加用戶將立即使該用戶變為可用。而且任何 Linux 系統的 /proc/sys 目錄中都有一些內核可調參數。只有超級用戶可以得到對所有這些文件的寫訪問權力;其它用戶只有只讀訪問權力。此目錄中文件的分類的方式和 Linux 內核源代碼的分類方式一樣。此目錄中的每個文件都代表一個內核數據結構,這些數據結構可以被動態地修改,從而改變系統性能。    注意:在更改其中任何文件的任何值之前,您應該確保自己全面了解該文件,以避免對系統造成不可修復的損害。  /proc/sys/kernel/ 目錄中的文件       守護進程和系統程序  守護進程是永遠運行在後台的程序,它默默地執行自己的任務。常見的守護進程有 in.ftpd(ftp 服務器守護進程)、in.telnetd(telnet 服務器守護進程)和 syslogd(系統日志記錄守護進程)。有些守護進程在運行時會嚴密監視配置文件,在配置文件改變時就會自動重新加載它。但是大多數守護進程並不會自動重新加載配置文件。我們需要以某種方式“告訴”這些守護進程配置文件已經被發生了改變並應該重新加載。可以通過使用服務命令重新啟動服務來達到這個目的(在 Red Hat Linux 系統上)。    例如,如果我們更改了網絡配置,就需要發出:  service network restart。    注意:這些服務最常見的是 /etc/rc.d/init.d/* 目錄中存在的腳本,在系統被引導時由 init 啟動。所以,您也可以執行如下操作來重新啟動服務:  /etc/rc.d/init.d/ start stop status  start、stop 和 status 是這些腳本接受的輸入值,用來執行操作。    用戶程序  用戶或系統程序在每次啟動時都會讀取其配置文件。盡管如此,請記住,有些系統程序在計算機打開時情況不一樣,它們的行為依賴於在 /etc/ 中的配置文件中讀到的內容。所以,用戶程序第一次啟動時將從 /etc/ 目錄中存在的文件讀取缺省配置。然後,用戶可以通過使用 rc 和 .(點)文件來定制程序,正如下面一節所示。    用戶配置文件:.(點)文件和 rc 文件  我們已經看到怎樣容易地配置程序。但是如果有的人不喜歡在 /etc/ 中配置程序的方式該怎麼辦呢?“普通”用戶不能簡單地進入 /etc 然後更改配置文件;從文件系統的角度來看,配置文件的所有者是 root 用戶!這就是大多數用戶程序都定義兩個配置文件的原因:第一個是“系統”級別的,位於 /etc/;另一個屬於用戶“專用”,可以在他或她的主目錄中找到。    例如,我在我的系統中安裝了非常有用的 wget 實用程序。/etc/ 中有一個 /etc/wgetrc 文件。在我的主目錄中,有一個名為 .wgetrc 的文件,它描述了我定制的配置(只有在我,也就是用戶運行 wget 命令時,才會加載這個配置文件)。其它用戶在他們自己的主目錄(/home/other)中也可以有 .wgetrc 文件;當然,只有這些用戶運行 wget 命令時,才會讀取這個文件。換句話說,/etc/wgetrc 文件為 wget 提供了“缺省”值,而 /home/xxx/.wgetrc 文件列舉了某個用戶的“定制項”。重要的是這只是“一般規則”,並非所有情況都如此。例如,一個象 pine 一樣的程序,在 /etc/ 中並沒有任何文件,它只在用戶主目錄中有一個定制配置文件,名為 .pinerc。其它程序可能只有 /etc/ 中的缺省配置文件,而且可能不允許用戶“定制”這些配置文件(/etc 目錄中只有少數 conf




Copyright © Linux教程網 All Rights Reserved