注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

My Unix World

不要迷恋Unix,Unix只是计算世界很小的一部分!

 
 
 

日志

 
 

[转]Linux几个重要的参数配置文件  

2009-02-24 21:36:15|  分类: linux-system |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
小说明:软件的用户配置

不同的用户有不同的需求,不同的偏好,所以软件需要保持一定的可定制性,让用户根据自己的需求进行设置。操作系统也是软件,当然遵循这个原则。
在Linux中,软件的配置,以文本文件的形式存在,几乎每个软件都有自己的配置文件。这些程序在启动的时候,读取配置文件,根据配置文件的设置,自动调整软件的特征,如界面的颜色,使用的字体,界面上显示给用户的语言,窗口的大小。。。对于操作系统而言,也有很多东西可以由用户配置,有些则必须由用户配置,如IP地址等。
Windows中,所有的配置都在注册表中。控制面板,IE的设置界面,只是展示给用户的界面,最终的信息仍然存储在注册表中。Windows的注册表与Linux/Unix配置文件,是对等的地位,履行差不多的职责。不同之处,Linux中每个软件有自己的配置文件,而Windows,系统和各个软件的配置都保存在同一个注册表中。
在运行窗口,输入regedit,可以打开注册表。regedit是一个注册表编辑器,它的用途专用于打开和编辑注册表。修改注册表中的信息,就会影响Windows以及相应软件的行为和外观,有的设置立刻生效,有的设置需要重启后才生效。
手工更改注册表是很没意思并且是危险的,除非非常清楚自己的更改会带来什么影响。所以一些常用的配置,微软提供了一种友好的界面方式,如各个软件的配置菜单,控制面板,桌面右键的属性设置,“程序”中的“管理工具”菜单。一般情况下,在这些地方更改会更容易并且安全一些。但其实,在这些地方更改与在注册表中更改其实是一回事,只是不同的表现方式而已。
有些恶意网站会篡改注册表,把主页指向他们的垃圾网站,这时候就需要在注册表中改回来。一般病毒流行的时候,很快就有人在网上提出解决方案来,搜下,一般能找到解决的办法。
Windows中也有的软件把配置信息存放在自己的配置文件中,而不是放在注册表中,但一般情况下,这些软件也提供了图形界面可以使用,如Firefox。Firefox既可以通过配置文件配置,也可以在配置界面中简单设置,“工具”-》“设置”。

下面是转载的一篇文章,主要介绍了Linux中几个重要一些的配置文件。其实没什么,只是接触的少导致神秘而已。一般情况下,忽略就好。

=======================================================


1..bash_profile、.bashrc、.bash_history和.bash_logout
1.
上面这三个文件是 bashshell的用户环境配置文件,位于用户的主目录下。其中.bash_profile是最重要的一个配置文件,它在用户每次登录系统时被读取,里 面的所有命令都会被bash执行。.profile(由BourneShell和KornShell使用)和.login(由CShell使用)两个文件 是.bash_profile的同义词,目的是为了兼容其它Shell。在Debian中使用.profile文件代替.bash_profile文件。
2.
.bashrc 文件会在bashshell调用另一个bashshell时读取,也就是在shell中再键入bash命令启动一个新shell时就会去读该文件。这样可 有效分离登录和子shell所需的环境。但一般来说都会在.bash_profile里调用.bashrc脚本,以便统一配置用户环境。
3.
.bash_history是bashshell的历史记录文件,里面记录了你在bashshell中输入的所有命令。可通过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-ltest
最小: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系统中,使用shadowconfigon/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。下面内容是该文件的节选:
...
#
#Passwordagingcontrols:
#
#PASS_MAX_DAYSMaximumnumberofdaysapasswordmaybeused.
#PASS_MIN_DAYSMinimumnumberofdaysallowedbetweenpasswordchange.
#PASS_WARN_AGENumberofdayswarninggivenbeforeapasswordexpires.
#
PASS_MAX_DAYS99999
PASS_MIN_DAYS0
PASS_WARN_AGE7
...
#
#Numberofsignificantcharactersinthepasswordforcrypt().
#Defaultis8,don''tchangeunlessyourcrypt()isbetter.
#IfusingMD5inyourPAMconfiguration,setthishigher.
#
PASS_MAX_LEN8
...
4./etc/securetty
该文件可控制根用户登录的设备,该文件里记录的是可以作为根用户登录的设备名,如tty1、tty2等。用户是不能从不存在于该文件里的设备登录为根用户的。这种情况用户只能以普通用户登录进来,再用su命令转为根用户。/etc/securetty文件的格式如下:
#/etc/securetty:listofterminalsonwhichrootisallowedtologin.
#Seesecuretty(5)andlogin(1).
console
#forpeoplewithserialportconsoles
ttyS0
#fordevfs
tts/0
#Standardconsoles
tty1
tty2
tty3
...
如 果/etc/securetty是一个空文件,则根用户就不能从任务的设备登录系统。只能以普通用户登录,再用su命令转成根用户。如果 /etc/securetty文件不存在,那么根用户可以从任何地方登录。这样会引发安全问题,所以/etc/securetty文件在系统中是一定要存 在的。
5.~/.gnomerc
作用:GNOME桌面系统的用户级启动文件,该文件里的脚本在GNOME桌面系统启动时会自动执行,如果 在用户主目录中没有该文件,用户可自行创建。该脚本是由GNOME系统级启动文件/etc/X11/Xsession.d/55gnome- session_gnomerc所触发的。在我的的系统中,该配置文件的内容如下:
#配置GTK 程序的打开文件窗口字体编码为GBK
exportG_FILENAME_ENCODING=GBK
#下面设置fcitx输入法的环境变量
exportXIM_PROGRAM=fcitx
exportXIM=fcitx
exportXMODIFIERS="@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="BitstreamVeraSans10,SimSun10"
}
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里设置了字体是SimSun10号字,则你不能用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或空格分隔,分别表示“服务名称”、“使用端口”、“协议名称”以及“别名”。下面是这个文件的节选内容。
tcpmux1/tcp#TCPportservicemultiplexer
echo7/tcp
echo7/udp
discard9/tcpsinknull
discard9/udpsinknull
systat11/tcpusers
daytime13/tcp
daytime13/udp
netstat15/tcp
qotd17/tcpquote
msp18/tcp#messagesendprotocol
msp18/udp
chargen19/tcpttytstsource
chargen19/udpttytstsource
ftp-data20/tcp
ftp21/tcp
fsp21/udpfspd
ssh22/tcp#SSHRemoteLoginProtocol
ssh22/udp
telnet23/tcp
smtp25/tcpmail
time37/tcptimserver
一般情况下,不要修改该文件的内容,因为这些设置都是Internet标准的设置。一旦修改,可能会造成系统冲突,使用户无法正常访问资源。
Linux系统的端口号的范围为0--65535,不同范围有不同的意义。
0不使用
1--1023系统保留,只能由root用户使用
1024---4999由客户端程序自由分配
5000---65535由服务器端程序自由分配
12./etc/protocols
该文件是网络协议定义文件,里面记录了TCP/IP协议族的所有协议类型。文件中的每一行对应一个协议类型,它有3个字段,中间用TAB或空格分隔,分别表示“协议名称”、“协议号”和“协议别名”。下面是该文件的节选内容。
#Internet(IP)protocols
#
#Updatedfromhttp://www.iana.org/assignments/protocol-numbersandother
#sources.
#Newprotocolswillbeaddedonrequestiftheyhavebeenofficially
#assignedbyIANAandarenothistorical.
#Ifyouneedahugelistofusednumberspleaseinstallthenmappackage.
ip0IP#internetprotocol,pseudoprotocolnumber
#hopopt0HOPOPT#IPv6Hop-by-HopOption[RFC1883]
icmp1ICMP#internetcontrolmessageprotocol
igmp2IGMP#InternetGroupManagement
ggp3GGP#gateway-gatewayprotocol
ipencap4IP-ENCAP#IPencapsulatedinIP(officially``IP'''')
st5ST#STdatagrammode
tcp6TCP#transmissioncontrolprotocol
egp8EGP#exteriorgatewayprotocol
igp9IGP#anyprivateinteriorgateway(Cisco)
pup12PUP#PARCuniversalpacketprotocol
不要对该文件进行任何修改。
13./etc/network/interfaces
网络接口参数配置文件,下面是一个配置示例,它在一个网络接口中配置了两个静态IP地址:
#/etc/network/interfaces--configurationfileforifup(8),ifdown(8)
#Theloopbackinterface
autolo
ifaceloinetloopback
#Thefirstnetworkcard-thisentrywascreatedduringtheDebianinstallation
#(network,broadcastandgatewayareoptional)
autoeth0
ifaceeth0inetstatic
address192.168.1.1
netmask255.255.255.0
network192.168.1.0
broadcast192.168.1.255
#gateway192.168.1.1
#name以太网局域网网卡
autoeth0:0
ifaceeth0:0inetstatic
address192.168.1.2
netmask255.255.255.0
network192.168.1.0
broadcast192.168.1.255
gateway192.168.1.1
下面是一个从DHCP服务器自动获得IP地址的示例:
#/etc/network/interfaces--configurationfileforifup(8),ifdown(8)
#Theloopbackinterface
autolo
ifaceloinetloopback
#Thefirstnetworkcard-thisentrywascreatedduringtheDebianinstallation
#(network,broadcastandgatewayareoptional)
autoeth0
ifaceeth0inetdhcp
14./etc/resolv.conf
该文件是DNS域名解析的配置文件,它的格式很简单,每行以一个关键字开头,后接配置参数。resolv.conf的关键字主要有四个,分别是:
nameserver#定义DNS服务器的IP地址
domain#定义本地域名
search#定义域名的搜索列表
sortlist#对返回的域名进行排序
/etc/resolv.conf的一个示例:
domainringkee.com
searchwww.ringkee.comringkee.com
nameserver202.96.128.86
nameserver202.96.128.166
最主要是nameserver关键字,如果没指定nameserver就找不到DNS服务器,其它关键字是可选的。
15./etc/host.conf
当系统中同时存在DNS域名解析和/etc/hosts主机表机制时,由该/etc/host.conf确定主机名解释顺序。示例:
orderhosts,bind#名称解释顺序
multion#允许主机拥有多个IP地址
nospoofon#禁止IP地址欺骗
order是关键字,定义先用本机hosts主机表进行名称解释,如果不能解释,再搜索bind名称服务器(DNS)。
16./etc/hosts
设置IP地址与主机名对应表,可用该文件来进行主机名称解释。如:
#格式:IP地址主机名别名
127.0.0.1localhostlocalhost.localdomain
192.168.1.1debiandebian
192.168.0.2t02t02.tiger
192.168.0.4t04t04.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里列出了所有的配置参数说明,并有几个典型的示例。我们只要修改一下示例就可以用了。如:
...
#Samplesfollow:
#Firstthreearegoodfordevfssystems,fourthoneforsystemsthatdo
#notusedevfs.Thefifthexampleusesstraighthdparmcommandline
#syntax.Anyoftheblocksthatusecommandlinesyntaxmustbeginwith
#thekeyword''command_line'',andnoattemptismadetovalidatesyntax.
#Itisprovidedforthosemorecomfortablewithhdparmsyntax.
#/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
#}
重启电脑就可使配置生效。
  评论这张
 
阅读(268)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017