问:如何使系统在停止操作一段时间后能自动退出?
答:当root账户离开计算机时,出于安全考虑,最好能让系统在隔一段时间后能自动退出。为了能做到这一点,必须为一个“TMOUT”的Linux变量设置指定时间(单位是秒)。编辑“/etc/profile”文件,在有“HISTFILESIZE=”字样的那一行的后面加上“TMOUT=300”,加入的这一行含义是5分钟。当把这行内容放入“/etc/profile”文件后,在系统连续5分钟不用时,系统会自动通知系统中的所有用户系统将退出。root用户也可以把该变量设置放在用户各自的“.bashrc”文件中,使得系统在指定的一段时间不用后能自动退出。该变量参数被设置在系统中后,必须先退出系统,然后再以root帐户重新登录后,该项设置才会生效。
问:如何在Red Hat 7.3上加Simsun.ttc字体?
答:Red Hat 7.3安装时选取简体中文安装,先复制一个simsun.ttc到/usr/X11R6/lib/X11/font/TrueType, 改名为simsun.ttf;然后进入/usr/X11R6/lib/X11/font/TrueType目录下,运行ttmkfdir > fonts.dir命令;接着用vi编辑fonts.dir文件,把有simsun.ttf行修改如下:
simsun.ttf -misc-SimSun-medium-r-normal--0-0-0-0-c-0-ascii-0
simsun.ttf -misc-SimSun-medium-r-normal--0-0-0-0-c-0-iso10646-1
simsun.ttf -misc-SimSun-medium-r-normal--0-0-0-0-p-0-iso8859-15
simsun.ttf -misc-SimSun-medium-r-normal--0-0-0-0-p-0-iso8859-1
simsun.ttf -misc-SimSun-medium-r-normal--0-0-0-0-c-0-gb2312.1980-0
simsun.ttf -misc-SimSun-medium-r-normal--0-0-0-0-p-0-gb2312.1980-0
simsun.ttf -misc-SimSun-medium-r-normal--0-0-0-0-m-0-gb2312.1980-0
simsun.ttf -misc-SimSun-medium-r-normal--0-0-0-0-p-0-gbk-0
接着运行cat fonts.dir > fonts.scale命令,修改/etc/X11/XF86config-4, 在Section“Files”加上下面这一行:
FontPath “/usr/X11R6/lib/X11/fonts/TrueType”
最后回到KDE桌面里, 在“开始”→“选项”→“观感”→“字体”,将所有字体改为Simsun。
问:Unicon和Zhcon有什么区别,各有什么作用?
答:Unicon是内核态的中文平台,基于修改Linux FrameBuffer和Virtual Console(fbcon)实现的。由于是在系统底层实现的,所以兼容性极好,可以直接支持gpm鼠标。但是相对比较危险,稍有漏洞就可能会危及系统安全。Zhcon是用户态的中文平台,有点像UCDOS那类。
问:请问该如何卸载tar格式的文件?
答:通常编译过程以后都会用make install这条命令将用户的程序安装到相应路径当中。最保险的方法是查看一下Makefile文件,主要是看install部分,从其中找出tar格式的文件被复制到了什么路径,然后进入相应的目录进行删除即可。
问:SOCKS5启动后,一段时间后就停止了。用命令ps auxw | grep socks5查看后,发现有很多SOCKS defunct进程。请问这是什么原因?
答:主要是打补丁的问题。如果socks5-tar.gz是没打过补丁的版本,必须下一个带补丁的v1.0-r11版本,重新安装、运行问题就可以解决了。
问:我在VMware WorkStation 4.0.5中安装Debian 3.0时,提示找不到硬盘,需要SCSI的驱动。但是我用的是IDE硬盘,请问该怎么办?
答:由于VMware将用户划分的硬盘空间虚拟成SCSI硬盘,而Debian安装盘中没有对应的驱动,而安装其它Linux版本时,有的在一开始会加载SCSI驱动,所以没有这个问题。用户可以修改VMware的配置,将其改为模拟IDE硬盘就可以了。
问:安装完Red Hat后,前面的提示符为root@localhost,可以修改吗?
答:当然可以。在bash中提示符是通过一个环境变量$PS1指定的。用export $PS1查看现在的值,比较直观常用的提示符可以设定为export PS1=“[\u@\h \W]\$”。其中\u代表用户名,\h代表主机名,\W代表当前工作目录的最后一层,如果是普通用户\$则显示$,root用户显示#。
问:在vi中搜索了一个单词,该单词以高亮显示,看起来很不舒服,怎么能将它去掉?
答:在vi的命令模式下输入:nohlsearch就可以了。另外可以在~/.vimrc中写上下面的语句就会有高亮显示:
set hlsearch
加上下面的语句就不会有高亮显示:
set nohlsearch
问:如何找出系统中所有的*.cpp、*.h文件呢?
答:用find命令就可以了。不过如果从根目录查找消耗资源较高,使用下面的命令就可以:
# :find / -name "*.cpp" -o -name "*.h"
问:安装Debian需要几张盘就够了?7张盘全部都要下载吗?
答:如果经常有网络环境的话,下载第一张就可以了。要是没有网络环境的话不推荐使用Debian,因为Debian主要依赖网络来更新软件。实在要安装的话,要下载全部7张盘,否则可能会出现需要的软件包找不到的问题。
问:Debian第一张光盘为什么有两个版本?debian-30r1-i386-binary-1.iso和debian-30r1-i386-binary-1_NONUS.iso该下载哪一个版本呢?它们有什么区别?
答:因为含有“non-US”(不属美国)的软件不能合法地存放在架设于美国境内的服务器中。 以前,其原因通常是因为软件含有严密的密码编码,而今天,则是因为程序使用了美国专利保护的演算法。每个人应该取用“non-US”来供私人用途所用;而没有这个标识的iso则只对架设在美国的镜像及供应商才有用处。其它二进制的光盘则不会含有任何“US-sensitive”(与美国相关的)软件,它们和其它种binary-1光盘一样运作得很好。因此,个人使用还是下载debian-30r1-i386-binary-1_NONUS.iso版本。
问:为何我使用umount /mnt/cdrom命令的时候出现device is busy这样的语句,不能umount?
答:在使用umount的时候一定要确保已退出/mnt/cdrom这个目录,退出这个目录就可以使用umount /mnt/cdrom了。
问:我使用的是笔记本电脑,怎么才能在控制台下显示现在还剩多少电量呢?
答:使用apm -m就可以看到还有多少分钟了,具体参数可以用man apm查看。
问:如何使用Red Hat自动更新软件包的功能?
答:Red Hat 6.1以后有个命令up2date,能自动检测决定哪些软件包需要更新,然后可以使用up2date-config进行配置。第一次使用up2date时,需要root用户执行rpm-import /usr/share/rhn/RPM-GPG-KEY,然后再运行up2date,它会通过SSL验证,如果用户在安装时提供了正确的注册信息,那么就可以自动升级软件包了。其中升级除kernel外的RPM用up2date -u,升级包括Kernel在内的RPM用up2date -u -f。
问:为什么我进入Linux的终端窗口时,man一条命令出来的都是乱码呢?
答:这是因为你的字符集设置有问题。临时解决办法可以使用export LANG=“en_US”。要想不必每次都修改的话,在/etc/sysconfig/i18n文件里面修改LANG=“en_US”就可以了。也可以针对某个用户来做,这样就可以改变个人的界面语言,而不影响别的用户。命令如下:
#cp /etc/sysconfig/i18n $HOME/.i18n
问:从网上的FTP下载Red Hat光盘的时候,右边有个MD5校验码,我怎么才能知道校验码正确呢?
答:通过命令md5sum 2004326211343.htm可以得出校验码,然后和给出的进行对比,查看是否相同就可以了。
问:我需要让Linux下面添加的用户在设置密码时必须大于4位数,怎么设置呢?
答:修改/etc/login.defs文件中的PASS_MIN_LEN(此项用于设置密码的位数)值就可以了。
问:怎么查看一个端口上正在运行什么程序呢?
答:可以使用lsof命令,比如要查看21端口正在运行什么程序时可以执行下面的命令:
# lsof -i:21
问:编译内核的时候出错,提示“Too many open files”,请问怎么处理?
答:这是因为file-max默认值(8096)太小。要解决这个问题,可以root身份执行下列命令(或将它们加入/etc/rcS.d/*下的init脚本):
# echo "65536" > /proc/sys/最后进入解压后的目录,运行安装命令。
# cd vmware-linux-tools
# ./install.pl
问:本来装有Linux与Windows XP,一次将Windows XP重装后,发现找不到Linux与Windows XP的启动选单,请问如何解决?
答:首先光盘启动,进入rescue模式,运行GRUB,进入grub提示符grub>,然后敲入下面的语句,重启就好了。
root (hd0,2),setup (hd0)
网络
问:请问用户的IP是动态的,如何在Squid中限定在同一时间内同一账户在线的数量?
答:例如限制单个用户只能打开12个HTTP连接,采用下面的方法:
acl all src 0.0.0.0/0.0.0.0
acl limit maxconn 12
acl localnet src 192.168.0.0/24
http_aclearcase/" target="_blank" >ccess deny localnet maxconn
http_access allow localnet
http_access deny all
问:如果我用Squid代理的代理服务器在192.168.1.0这个网段里,例如它的IP是192.168.1.1,我有一些客户端在192.168.2.0这个网段内,怎样设置才能通过这个代理服务器出去?
答:如果不用透明代理,直接在浏览器的代理选项里设置就可以了。否则首先是在代理服务器的网卡上再挂一个IP为192.168.2.1,添加相应的路由,再修改Squid的squid.conf文件里的监听地址和端口等,最后在192.168.2.0网段的客户端设置其网关为192.168.2.1,再直接在浏览器的代理选项里设置一下就可以了。
问:我在Windows中通过FTP传一个文本文件到Linux中,但是打开文本文件后每行最后都有^M的标志。由于很长,用编辑器去除太麻烦,有什么解决办法呢?
答:为了解决这个问题,Linux下专门有两个工具可以互换Windows格式和Linux格式,它们分别是dos2unix和unix2dos。比如用下面的命令就可以将文件名为“2004326211343.htm”文件从Windows格式转换为Linux文本格式。
# dos2unix 2004326211343.htm
问:安装了一台Linux服务器,想自己编译内核,一步一步做下来,GRUB也添加进去了,但出现“kernel Panic:VFS:Unable to mount root fs on 0:00”的错误,请问是怎么回事?
答:一般情况下initrd这个文件在台式机上不是必须的,但是在有SCSI设备的服务器上却是必须的。有可能因为编译内核的时候没有产生initrd那个文件,所以会有上面的错误提示。用户可以使用mkinitrd命令来生成一个initrd.img文件,然后加入GRUB,重启试一试。
问:如何设置用户登录后的欢迎信息?
答:修改/etc/motd文件,往里面写入文本,就能使用户通过Telnet正确登录后,执行Shell之前得到相应的提示信息。
motd就是“messages of the day”,也就是当日信息的意思。管理员可以往里面写一些需要注意的事项或通知等来提醒正式用户。
问:如何使用netrc文件进行自动FTP?
答:在自己的home目录下建立一个权限为600,后缀名为.netrc的文件,内容如下:
machine 172.168.15.1 login admin password admin
这样用户以后每次登录FTP服务器172.168.15.1的时候,系统都会帮用户以用户名admin、密码admin登录。用户利用这个特征可以实现自动FTP。例如用户想要每天6:00到172.168.15.1机器上面获得/admin目录下的文件admin.txt,可以按如下方法做。
建立一个文件ftp_cmd,内容如下:
cd admin
get amin.txt
bye
然后使用crontab -e设置定时任务:
0 6 * * * ftp 172.168.15.1 < ftp_cmd
问:怎样得到ipchains的日志?
答:用户设置规则的时候必须加入-l参数才会在/etc/messages里面做记录。不过建议还是不加的好,不然用户的/etc/messages会变得非常大。
安全
问:我下载了rcs5.7,用./configure && make && make install时报错如下:
./conf.sh: testing permissions ...
./conf.sh: This command should not be run with superuser permissions.
我是以root用户身份登录编译安装的,为什么会这样?
答:有些软件确实因为考虑到安全等其它原因不能用root用户编译。这时只要用其它用户编译,到make install这步时,如果该软件安装在不属于编译时的用户的主目录下时,需要使用su命令转换为root用户再执行make install。
问:我在安装USBView时失败,具体情况如下:
#rpm -ivh usbview-1.0-9.src.rpm
warning:usbview-1.0-9.src.rpm:V3 DSAsignature:NOKEY,key IDab42a60e
答:这行代码说明安装失败是因为你的系统上没有安装合适的钥匙来校验签名。要使该软件包通过校验,可以通过导入Red Hat的公匙来解决,具体的方式是在Shell下运行如下命令:
#rpm -import /usr/share/rhn/RPM-GPG-KEY
(注意大小写)
问:如何防止某个关键文件被修改?
答:在Linux下,有些配置文件是不允许任何人(包括root)修改的。为了防止被误删除或修改,可以设定该文件的“不可修改位(immutable) ”。命令如下:
# chattr +i /etc/fstab
如果需要修改文件则采用下面的命令:
# chattr -i /etc/fstab
问:怎样限制一个用户可以启动的进程数?
答:先确定一下/etc/pam.d/login文件中下面一行的存在:
session required /lib/security/pam_limits.so
然后编辑/etc/security/limits.conf,在里面可以设置限制用户的进程数、CPU占用率和内存使用率等,如hard nproc 20就是指限制20个进程,具体可以看man。
问:如何不显示其它用户的消息?
答:用户可以使用mesg n来禁止别人给自己发送信息,其实就是禁止别人往自己的终端上面的写的权限。当别人试图再使用write给自己发送信息时,发送者将会看见提示如下:
write: user has messages disabled on pts/n
问:如何限制Shell命令记录大小 ?
答:默认情况下,bash会在文件$HOME/.bash_history中存放多达500条命令记录。有时根据具体的系统不同,默认记录条数不同。系统中每个用户的主目录下都有一个这样的文件。为了系统的安全,在此强烈建议用户限制该文件的大小。用户可以编辑/etc/profile文件,修改其中的选项如下:
HISTFILESIZE=30 或 HISTSIZE=30
这样就将记录的命令条数减少到30条。
问:我想将开机时显示的信息保留下来,以检查电脑出了问题的地方,请问怎么办?
答:可输入下面的命令:
#dmesg >bootmessage
该命令将把开机时显示的信息重定向输出到一个文件bootmessage中。
问:我想在注销时删除命令记录,请问怎么做?
答:编辑/etc/skel/.bash_logout文件,增加如下行:
rm -f $HOME/.bash_history
这样,系统中的所有用户在注销时都会删除其命令记录。
如果只需要针对某个特定用户,如root用户进行设置,则可只在该用户的主目录下修改/$HOME/.bash_history文件,增加相同的一行即可。