您的位置:首页 > 运维架构 > Linux

Linux系统管理实践(6):系统登录配置

2016-07-29 00:00 459 查看
1、/etc/modules.conf文件: 在Debian/Ubuntu派系中名为/etc/modules,在有些Linux系统中也用名/etc/conf.modules。该配置文件定义了各种需要在启动时加载的模块的参数信息。这里主要着重讨论关于网卡的配置。在使用Linux做网关的情况下,Linux服务器至少需要配置两块网卡。为了减少启动时可能出现的问题,Linux内核不会自动检测多个网卡。对于没有将网卡的驱动编译到内核而是作为模块动态载入的系统若需要安装多块网卡,应该在“modules.conf”文件中进行相应的配置。 Ubuntu中的/etc/moudles内容如下:

# /etc/modules: 在启动时装载的内核模块
#
# 本文件包含了在系统启动时应该被装载的内核模块名,每个模块名占一行。以"#"开始的行被忽略
fuse
lp
sbp2


在RedHat派系中这个文件的格式不一样。若设备驱动被编译为模块(内核的模块),对于PCI设备,模块将自动检测到所有已经安装到系统上的设备;对于ISA卡,则需要向模块提供IO地址,以使模块知道在何处寻找该卡,这些信息在“/etc/modules.conf”中提供。例如,我们有两块ISA总线的3c509卡,一个IO地址是0x300,另一个是0x320。编辑“modules.conf”文件如下:

alias eth0 3c509
alias eth1 3c509
options 3c509 io=0x300,0x320


这是说明3c509的驱动程序应当分别以eth0或eth1的名称被加载(alias eth0,eth1),并且它们应该以参数io=0x300,0x320被装载,以通知驱动程序到哪里去寻找网卡,其中0x是不可缺少的。对于PCI卡,仅仅需要alias命令来使ethN和适当的驱动模块名关联,PCI卡的IO地址将会被自动的检测到。对于PCI卡,编辑“modules.conf”文件如下:

alias eth0 3c905
alias eth1 3c905


  若设备驱动不是被编译为模块,而是已经被编译进了内核,系统启动时的PCI检测程序将会自动找到所有相关的网卡。ISA卡一般也能够被自动检测到,但是在某些情况下,ISA卡仍然需要做配置工作,例如通过LILO引导系统时,需要在“/etc/lilo.conf”中增加配置信息,其方法是通过LILO程序将启动参数信息传递给内核。对于ISA卡,编辑“lilo.conf”文件,增加如下内容:
  append=" ether="0,0,eth0 ether="0,0,eth1"
  注意先不要在“lilo.conf”中加入启动参数,测试一下你的ISA卡,若失败再使用启动参数。如果用传递启动参数的方法,eth0和eth1将按照启动时被发现的顺序来设置。
2、/etc/securetty文件: 允许你规定“root”用户可以从那个TTY设备登录。登录程序(通常是“/bin/login”)需要读取“/etc/securetty”文件。它的格式是:列出来的tty设备都是允许登录的,注释掉或是在这个文件中不存在的都是不允许root登录的。 因此如果不想让root登录某个终端,只要注释掉相应行即可。在我的Ubuntu系统上该文件的内容为:

# /etc/securetty: root用户可以登录的终端列表,参看securetty(5)和login(1)
console
# 对有串行端口的用户
ttyS0
# 对devfs
tts/0
# 标准控制台
tty1
tty2
tty3
tty4
tty5
tty6
tty7
# ......
tty63
# 与上面的相同,但这些仅在devfs设备中使用
vc/1
vc/2
vc/3
vc/4
vc/5
vc/6
vc/7
# ......
vc/63
# 对Xen控制台
xvc0
hvc0


   3、使Ctrl+Alt+Delete关机键无效: 把“/etc/inittab”文件中的一行注释掉可以禁止用Ctrl+Alt+Delete关闭计算机。如果服务器不是放在一个安全的地方,这非常重要。只要编辑inittab文件(vi /etc/inittab),注释掉这一行即可:ca::ctrlaltdel:/sbin/shutdown -t3 -r now。
  注意在Debian/Ubuntu派系中没有使用/etc/inittab作为登入状态文档来使用。ubuntu从6.10开始用upstart替代init,主要脚本都在/etc/event.d下面,每个运行级别都有一个单独的脚本描述,默认运行级别的描述在rc-default中。默认情况下/etc下没有inittab文件,但是你可以自己建一个inittab文件。从rc-default文件中的代码可以看出,系统会首先搜寻inittab文件,如果不存在,那么将运行在2级别上。所以你可以自己建个inittab文件,或者把相应的telinit 2改为telinit X(你想要运行的级别)。这可以看出虽然ubuntu用upstart替代了init,但还是和init保持兼容的。关于upstart,其文档在/usr/share/doc/upstart/下,可参看README.Debian(被打包了,需要解压)。
在Debian/Ubuntu中默认运行级别是2。运行级别0为关机,1为单用户模式,2到5是一样的,为各种多用户模式,6为重启。这与其他的linux发行版有些不太一致,通常runlevel 3是Multi user mode,即直接登录到字符界面;而runlevel 5是Multi user mode with GUI,即登录到图形界面。如果我们要在Ubuntu中登录字符界面(即不启动kdm,Ubuntu中为gdm),可建立/etc/inittab,写入id:3:initdefault:,这时如果保存后重新启动,则仍然会启动到桌面,不像其他如ReadHat会启动到字符界面,因为Ubuntu中级别2到5都启动了gdm。要启动到字符界面,只要在此基础上将/etc/rc3.d中的S30gdm移动到其他目录备份起来,重新启动系统,如愿以偿进入字符界面。
   4、改变/etc/rc.d/init.d目录下的脚本文件的访问许可: 在Debian/Ubuntu派系中为/etc/init.d目录。/etc/rc.d/init.d/下的脚本主要包含了启动服务的脚本程序。一般用户没有什么必要知道脚本文件的内容。所以应该改变这些脚本文件的权限。用命令chmod -R 700 /etc/rc.d/init.d/*,这样只有root可以读、写和执行这个目录下的脚本。
   5、/etc/rc.d/rc.local文件: 在Debian/Ubuntu中为/etc/rc.local。这个脚本在登录到多用户级别的最后时刻运行,在Debian/Ubuntu中它的内容默认为空,什么也不做,比较安全。有一些系统中,rc.local会在默认情况下向/etc/issue和/etc/issue.net中写入Linux发行版的名字、版本号、内核版本和服务器名称。rc.local中会有以下内容:

# 这将在每次启动时覆写/etc/issue的内容。因此,可以根据你的需要修改下面的内容
echo "" > /etc/issue
echo "$R" >> /etc/issue
echo "Kernel $(uname -r) on $a $(uname -m)" >> /etc/issue
#
cp -f /etc/issue /etc/issue.net
echo >> /etc/issue


  由于从本地登录系统时会在"login:"的上面显示/etc/issue中内容(从网络远程登录系统时则显示/etc/issue.net中的内容),这导致泄露了太多的系统信息。最好只显示一个“Login:”的提示信息,你可以删除这两个文件并把上面的写入操作注释掉即可,这样在每次启动时就不会再创建这两个文件了。Ubuntu中的rc.local不做任何事,但在/etc/issue和/etc/issue.net有一行比较基本的信息"Ubuntu 8.04.3 LTS",如果你不想让用户登录时看到它,可以删除或注释掉它。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: