歡迎您光臨本站 註冊首頁

Linux幾個重要的參數配置文件

←手機掃碼閱讀     火星人 @ 2014-03-23 , reply:0

1. .bash_profile、.bashrc、.bash_history和.bash_logout
1.
上面這三個文件是bash shell的用戶環境配置文件,位於用戶的主目錄下。其中.bash_profile是最重要的一個配置文件,它在用戶每次登錄系統時被讀取,裡面的所有命令都會被bash執行。.profile(由Bourne Shell和Korn Shell使用)和.login(由C Shell使用)兩個文件是.bash_profile的同義詞,目的是為了兼容其它Shell。在Debian中使用.profile文件代替. bash_profile文件。
2.
.bashrc文件會在bash shell調用另一個bash shell時讀取,也就是在shell中再鍵入bash命令啟動一個新shell時就會去讀該文件。這樣可有效分離登錄和子shell所需的環境。但一般來說都會在.bash_profile里調用.bashrc腳本,以便統一配置用戶環境。
3.
.bash_history是bash shell的歷史記錄文件,裡面記錄了你在bash shell中輸入的所有命令。可通過HISTSIZE環境變數設置在歷史記錄文件里保存記錄的條數。
4.
.bash_logout在退出shell時被讀取。所以我們可把一些清理工作的命令放到這文件中。
在/etc目錄的bash.bashrc和profile是系統的配置文件,當在用戶主目錄下找不到.bash_profile和.bashrc時,就會讀取這兩個文件。
2. /etc/passwd、/etc/shadow和/etc/group
這三個配置文件用於系統帳號管理,都是文本文件,可用vi等文本編輯器打開。/etc/passwd用於存放用戶帳號信息,/etc/shadow用於存放每個用戶加密的密碼,/etc/group用於存放用戶的組信息。
*
/etc/passwd文件的內容如下:
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
bin:x:2:2:bin:/bin:/bin/sh
sys:x:3:3:sys:/dev:/bin/sh
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/bin/sh
...
每一行是由分號分隔的字串組成,它的格式如下:
username:password:uid:gid:gecos:homedir:shell
如果啟用shadow口令功能,password的內容為「x」,加密的密碼轉而存放到/etc/shadow文件中。如果password的內容為「*」,則該帳號被停用。使用passwd這個程序可修改用戶的密碼。
*
/etc/shadow存放加密的口令,該文件只能由root讀取和修改。下面是shadow文件的內容:
root:$1$43ZR5j08$kuduq1uH36ihQuiqUGi/E9:12973:0:99999:7:::
daemon:*:12973:0:99999:7:::
bin:*:12973:0:99999:7:::
sys:*:12973:0:99999:7:::
sync:*:12973:0:99999:7:::
...
我們可用chage命令顯示test用戶的帳號信息:
debian:~# chage -l test
最小: 0
最大: 99999
警告日: 7
失效日: -1
最後修改: 7月 09, 2005
密碼過期: 從不
密碼失效: 從不
帳戶過期: 從不
/etc/shadow文件的格式如下:
username:password:last_change:min_change:max_change:warm:failed_expire:expiration:reserved
各欄位的簡要說明:
last_change:表示自從Linux使用以來,口令被修改的天數。可用chage -d命令修改。
min_change:表示口令的最小修改間隔。可用chage -m命令修改。
max_change:表示口令更改周期。可用chage -M命令修改。
warm:表示口令失效的天數。可用chage -W命令修改。
failed_expire:表示口令失效后帳號的鎖定天數。可用chage -I命令修改。
expiration:表示帳號到期日時間。可用chage -E命令修改。
reserved:沒有使用,留待以後使用。
在debian系統中,使用shadowconfig on/off命令可控制啟用和禁用shadow口令功能。
*
/etc/group是帳號分組文件,控制用戶如何分組。下面是組文件的內容:
root:x:0:
daemon:x:1:
bin:x:2:
sys:x:3:
adm:x:4:
...
它的格式如下:
groupname:password:gid:members
這裡的password代表組口令,很少用到。它可使原先不在這個群組中的用戶可以通過newgrp命令暫時繼承該組的許可權,使用newgrp命令時會新開一個shell。口令的加密方式和passwd文件中的口令一樣,所以如果需設置組口令,要用passwd程序虛設一個用戶,再把該用戶 password節中的加密口令拷貝到/etc/group文件中。members列代表組成員,我們可把需加入該組的用戶以逗號分隔添加到這裡即可。同一組的成員可繼承該組所擁有的許可權。
3. /etc/login.defs
login.defs是設置用戶帳號限制的文件,在這裡我們可配置密碼的最大過期天數,密碼的最大長度約束等內容。該文件里的配置對root用戶無效。如果/etc/shadow文件里有相同的選項,則以/etc/shadow里的設置為準,也就是說/etc/shadow的配置優先順序高於 /etc/login.defs。下面內容是該文件的節選:
...
#
# Password aging controls:
#
# PASS_MAX_DAYS Maximum number of days a password may be used.
# PASS_MIN_DAYS Minimum number of days allowed between password change.
# PASS_WARN_AGE Number of days warning given before a password expires.
#
PASS_MAX_DAYS 99999
PASS_MIN_DAYS 0
PASS_WARN_AGE 7
...
#
# Number of significant characters in the password for crypt().
# Default is 8, don't change unless your crypt() is better.
# If using MD5 in your PAM configuration, set this higher.
#
PASS_MAX_LEN 8
...
4. /etc/securetty
該文件可控制根用戶登錄的設備,該文件里記錄的是可以作為根用戶登錄的設備名,如tty1、tty2等。用戶是不能從不存在於該文件里的設備登錄為根用戶的。這種情況用戶只能以普通用戶登錄進來,再用su命令轉為根用戶。/etc/securetty文件的格式如下:
# /etc/securetty: list of terminals on which root is allowed to login.
# See securetty(5) and login(1).
console
# for people with serial port consoles
ttyS0
# for devfs
tts/0
# Standard consoles
tty1
tty2
tty3
...
如果/etc/securetty是一個空文件,則根用戶就不能從任務的設備登錄系統。只能以普通用戶登錄,再用su命令轉成根用戶。如果 /etc/securetty文件不存在,那麼根用戶可以從任何地方登錄。這樣會引發安全問題,所以/etc/securetty文件在系統中是一定要存在的。
5. ~/.gnomerc
作用:GNOME桌面系統的用戶級啟動文件,該文件里的腳本在GNOME桌面系統啟動時會自動執行,如果在用戶主目錄中沒有該文件,用戶可自行創建。該腳本是由GNOME系統級啟動文件/etc/X11/Xsession.d/55gnome-session_gnomerc所觸發的。在我的的系統中,該配置文件的內容如下:
# 配置GTK+程序的打開文件窗口字體編碼為GBK
export G_FILENAME_ENCODING=GBK
#下面設置fcitx輸入法的環境變數
export XIM_PROGRAM=fcitx
export XIM=fcitx
export XMODIFIERS="@im=fcitx"
#啟動fcitx中文輸入法
fcitx&
G_FILENAME_ENCODING參數的官方解析可參考網址:http://developer.gnome.org/doc/API/2.0/glib/glib-running.html
6. ~/.gtkrc.zh_CN
作用:設置GTK+ 1.x程序的配置文件,默認已有字體配置選項,與上面的~/.gnomerc配置文件中的配置GTK+程序打開文件窗口的編碼選項配合使用,可使GTK+ 1.x程序能在打開文件窗口顯示中文的文件名。配置文件內容如下 :
style "gtk-default-zh-cn" {
fontset = "-adobe-helvetica-medium-r-normal--12-*-*-*-*-*-iso8859-*,\
-*-*-medium-r-normal--14-*-*-*-*-*-gb2312.1980-0"
}
class "GtkWidget" style "gtk-default-zh-cn"
該文件的全局配置文件是/etc/gtk/gtkrc。如果需統一設置所有用戶的gtk中文設置,可在該文件中配置。文件的內容和上面的一樣。
7. ~/.gtkrc-2.0
作用:gtk2.0程序的設置文件,如果不存在,可手工創建。配置GTK2.0程序字體的配置如下:
style "gtk-default-zh-cn" {
font_name = "Bitstream Vera Sans 10,SimSun 10"
}
class "GtkWidget" style "gtk-default-zh-cn"
該文件也有一個全局配置文件/etc/gtk-2.0/gtkrc,注意是gtkrc,而不是gtkrc-2.0,默認該文件也是沒有的,需手工創建。一旦存在~/.gtkrc-2.0或/etc/gtk-2.0/gtkrc文件,則該文件的配置優先順序是最高的,即使用gnome-font- properties字體配置程序也不能改變。例如你在~/.gtkrc-2.0里設置了字體是SimSun 10號字,則你不能用gnome-font-properties字體配置程序更改該設置。
8. /etc/modules
內核模塊文件,裡面列出的模塊會在系統啟動時自動載入。可用modconf工具配置,也可用文本編輯器配置。
9. /etc/gdm.conf
GDM配置文件
10. /etc/kde3/kdm/kdmrc
kdm的配置文件,默認kdm是不允許root用戶登錄的,如果我們需以root用戶登錄,我們需修改kdmrc文件,把
AllowRootLogin=false
改為
AllowRootLogin=true
kdmrc的大多數參數也可在KDE的"控制中心--系統管理--登錄管理器"上進行配置。
11. /etc/services
Internet網路服務文件,記錄網路服務名和它們對應使用的埠號及協議。文件中的每一行對應一種服務,它由4個欄位組成,中間用TAB或空格分隔,分別表示「服務名稱」、「使用埠」、「協議名稱」以及「別名」。下面是這個文件的節選內容。
tcpmux 1/tcp # TCP port service multiplexer
echo 7/tcp
echo 7/udp
discard 9/tcp sink null
discard 9/udp sink null
systat 11/tcp users
daytime 13/tcp
daytime 13/udp
netstat 15/tcp
qotd 17/tcp quote
msp 18/tcp # message send protocol
msp 18/udp
chargen 19/tcp ttytst source
chargen 19/udp ttytst source
ftp-data 20/tcp
ftp 21/tcp
fsp 21/udp fspd
ssh 22/tcp # SSH Remote Login Protocol
ssh 22/udp
telnet 23/tcp
smtp 25/tcp mail
time 37/tcp timserver
一般情況下,不要修改該文件的內容,因為這些設置都是Internet標準的設置。一旦修改,可能會造成系統衝突,使用戶無法正常訪問資源。
Linux系統的埠號的範圍為0--65535,不同範圍有不同的意義。
0 不使用
1--1023 系統保留,只能由root用戶使用
1024---4999 由客戶端程序自由分配
5000---65535 由伺服器端程序自由分配
12. /etc/protocols
該文件是網路協議定義文件,裡面記錄了TCP/IP協議族的所有協議類型。文件中的每一行對應一個協議類型,它有3個欄位,中間用TAB或空格分隔,分別表示「協議名稱」、「協議號」和「協議別名」。下面是該文件的節選內容。
# Internet (IP) protocols
#
# Updated from http://www.iana.org/assignments/protocol-numbers and other
# sources.
# New protocols will be added on request if they have been officially
# assigned by IANA and are not historical.
# If you need a huge list of used numbers please install the nmap package.
ip 0 IP # internet protocol, pseudo protocol number
#hopopt 0 HOPOPT # IPv6 Hop-by-Hop Option [RFC1883]
icmp 1 ICMP # internet control message protocol
igmp 2 IGMP # Internet Group Management
ggp 3 GGP # gateway-gateway protocol
ipencap 4 IP-ENCAP # IP encapsulated in IP (officially ``IP'')
st 5 ST # ST datagram mode
tcp 6 TCP # transmission control protocol
egp 8 EGP # exterior gateway protocol
igp 9 IGP # any private interior gateway (Cisco)
pup 12 PUP # PARC universal packet protocol
不要對該文件進行任何修改。
13. /etc/network/interfaces
網路介面參數配置文件,下面是一個配置示例,它在一個網路介面中配置了兩個靜態IP地址:
# /etc/network/interfaces -- configuration file for ifup(8), ifdown(8)
# The loopback interface
auto lo
iface lo inet loopback
# The first network card - this entry was created during the Debian installation
# (network, broadcast and gateway are optional)
auto eth0
iface eth0 inet static
address 192.168.1.1
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
# gateway 192.168.1.1
# name 乙太網區域網網卡
auto eth0:0
iface eth0:0 inet static
address 192.168.1.2
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.1
下面是一個從DHCP伺服器自動獲得IP地址的示例:
# /etc/network/interfaces -- configuration file for ifup(8), ifdown(8)
# The loopback interface
auto lo
iface lo inet loopback
# The first network card - this entry was created during the Debian installation
# (network, broadcast and gateway are optional)
auto eth0
iface eth0 inet dhcp
14. /etc/resolv.conf
該文件是DNS域名解析的配置文件,它的格式很簡單,每行以一個關鍵字開頭,後接配置參數。resolv.conf的關鍵字主要有四個,分別是:
nameserver #定義DNS伺服器的IP地址
domain #定義本地域名
search #定義域名的搜索列表
sortlist #對返回的域名進行排序
/etc/resolv.conf的一個示例:
domain ringkee.com
search www.ringkee.com ringkee.com
nameserver 202.96.128.86
nameserver 202.96.128.166
最主要是nameserver關鍵字,如果沒指定nameserver就找不到DNS伺服器,其它關鍵字是可選的。
15. /etc/host.conf
當系統中同時存在DNS域名解析和/etc/hosts主機表機制時,由該/etc/host.conf確定主機名解釋順序。示例:
order hosts,bind #名稱解釋順序
multi on #允許主機擁有多個IP地址
nospoof on #禁止IP地址欺騙
order是關鍵字,定義先用本機hosts主機表進行名稱解釋,如果不能解釋,再搜索bind名稱伺服器(DNS)。
16. /etc/hosts
設置IP地址與主機名對應表,可用該文件來進行主機名稱解釋。如:
#格式:IP地址 主機名 別名
127.0.0.1 localhost localhost.localdomain
192.168.1.1 debian debian
192.168.0.2 t02 t02.tiger
192.168.0.4 t04 t04.tiger
17. /etc/hostname
該文件只有一行,記錄著本機的主機名。如:
debian
18. /etc/hosts.allow和/etc/hosts.deny
這兩個文件是tcpd伺服器的配置文件,tcpd伺服器可以控制外部IP對本機服務的訪問。這兩個配置文件的格式如下:
#服務進程名:主機列表:當規則匹配時可選的命令操作
server_name:hosts-list[:command]
/etc/hosts.allow控制可以訪問本機的IP地址,/etc/hosts.deny控制禁止訪問本機的IP。如果兩個文件的配置有衝突,以/etc/hosts.deny為準。下面是一個/etc/hosts.allow的示例:
ALL:127.0.0.1 #允許本機訪問本機所有服務進程
smbd:192.168.0.0/255.255.255.0 #允許192.168.0.網段的IP訪問smbd服務
ALL關鍵字匹配所有情況,EXCEPT匹配除了某些項之外的情況,PARANOID匹配你想控制的IP地址和它的域名不匹配時(域名偽裝)的情況。
19. /etc/hdparm.conf
hdparm命令是很有用的,它可以設置驅動器的運行參數,以提高系統性能,如硬碟的DMA開關就是通過該命令設置的。所以在Debian系統中已設置了開機自啟動hdparm命令的Script,該Script位於/etc/rcS.d/目錄下。當Debian系統啟動時會自動運行該 Script,並從/etc/hdparm.conf配置文件中讀出配置參數來運行hdparm命令,從而達到自動設置驅動器運行參數的目的。 /etc/hdparm.conf里列出了所有的配置參數說明,並有幾個典型的示例。我們只要修改一下示例就可以用了。如:
...
#Samples follow:
#First three are good for devfs systems, fourth one for systems that do
#not use devfs. The fifth example uses straight hdparm command line
#syntax. Any of the blocks that use command line syntax must begin with
#the keyword 'command_line', and no attempt is made to validate syntax.
#It is provided for those more comfortable with hdparm syntax.
#/dev/discs/disc0/disc {
# mult_sect_io = 16
# write_cache = off
# spindown_time = 240
#}
#/dev/discs/disc1/disc {
# mult_sect_io = 32
# spindown_time = 36
# write_cache = off
#}
#/dev/cdroms/cdrom0 {
# dma = on
# interrupt_unmask = on
# io32_support = 0
#}
/dev/hda {
mult_sect_io = 16
write_cache = off
dma = on
}
#command_line {
# hdparm -q -m16 -q -W0 -q -d1 /dev/hda
#}
重啟電腦就可使配置生效。

[火星人 ] Linux幾個重要的參數配置文件已經有716次圍觀

http://coctec.com/docs/linux/show-post-127029.html