这些设置都是在Shell下完成,至于X-Window,没有尝试过。
1、 运行级别
修改运行级别一般情况下的作用是使我们启动系统的时候默认的模式,一般都是Shell或者X-Window这两个模式。具体修改方式如下:
$ vi /etc/inittab
然后将下面的蓝色部分中的红色数字修改成上面注释的数字即可。
# Default runlevel. The runlevels used by RHS are:
# 0 - halt (Do NOT set initdefault to this)
# 1 - Single user mode(单用户模式,这个时候进入系统不需要密码)
# 2 - Multiuser, without NFS (The same as 3, if you do not have networking)
#2这种模式下和3差不多,但是没有NFS(Network file system)服务
# 3 - Full multiuser mode(多用户模式,启动后进入Shell)
# 4 - unused
# 5 - X11 (X-Window模式,也就是图形界面模式)
# 6 - reboot (Do NOT set initdefault to this)
#
id:5:initdefault:
2、 共享
Linux下共享是一个比较费劲的事情,但是当有这个需求的时候,我们还是需要去面对,下面我这边介绍一个简单的共享方式,为什么简单呢,因为很多安全因素没有考虑到,如果需要的话,上网查找相关的资料就可以了。这个共享方式在两个Redhat9上实现通过。
NFS(Network file system)是sun实现的一个文件系统,感觉在solaris上应该有相同的东西。
首先,服务器端设置:
服务器端的设定都是在/etc/exports这个文件中进行设定的,设定格式如下:
欲分享出去的目录 主机名称1或者IP1(参数1,参数2) 主机名称2或者IP2(参数3,参数4)
比如:
/home/public 192.168.0.*(rw) *(ro)
/home/test 192.168.0.100(rw)
/backup 192.168.36.5 #这个方式下只允许192.168.36.5 这个用户已只读(默认)的方式挂载。这个是主机(192.168.36.91)允许192.168.36.5 以只读的方式挂载/backup目录。后边可以看到。
参数介绍:这些参数其实精通的时候才会用到,这里介绍的简单方式不会用到。
rw:可读写的权限;
ro:只读的权限;
no_root_squash:登入到NFS主机的用户如果是ROOT用户,他就拥有ROOT的权限,此参数很不安全,建议不要使用。
root_squash:如果以root身份登陆NFS的/root目录时,这个时候将会变成 nobody 身份
all_squash:不管登陆NFS主机的用户是什么都会被重新设定为nobody。
anonuid:将登入NFS主机的用户都设定成指定的user id,此ID必须存在于/etc/passwd中
anongid:同 anonuid
sync:数据同步写入存储器中。
async:数据会先暂时存放在内存中,不会直接写入硬盘。
insecure 允许从这台机器过来的非授权访问。
服务器端设置好之后执行#service nfs start(restart),重启下NFS服务。其实NFS启动之前还有一个portmap服务需要启动,但是Redhat默认是启动的,我们就不用启动了,但是如果需要启动的话,使用这个命令:#service portmap start 这样,服务器端的设置就差不多了,好痛苦啊!
客户端的设置:
客户端的portmap服务应该起来,但是Redhat默认是启动的,所以我们不用管。
然后使用:#showmount -e 192.168.36.91 看看能不能看到刚刚我们设置的可以主机192.168.36.91的共享目录,如果看到就使用这个命令:mount -t nfs hostname(orIP):/directory /mount/point 比如:
#mount -t nfs 192.168.36.91:/backup /mnt/share 这样就OK了,但是如果这样不成功的话,麻烦就大了。不过如果保证服务都是启动的,就应该没有问题。
如果出现问题,下面的方法应该有所帮助:
a. 编辑/etc/hosts.deny 全部注释掉
b. 编辑/etc/hosts.allow 全部注释掉
c. 关闭防火墙,注意两个机器都要关闭 #service iptables stop
d. 重启protmap #service portmap restart
e. 重启nfs #service nfs restart
但是先声名,这样做不是一般的危险,那是相当的危险了,使用时小心,不然你的机器就成了别人很容易攻击的那种了。但是这样做肯定好用,nsf肯定成功,如果不成功,考虑下最近是不是。。。。。J
下面简单介绍下安全性,来自网络,但是其实很好理解:
NFS的不安全性主要体现于以下4个方面:
a、新手对NFS的访问控制机制难于做到得心应手,控制目标的精确性难以实现
b、NFS没有真正的用户验证机制,而只有对RPC/Mount请求的过程验证机制
c、较早的NFS可以使未授权用户获得有效的文件句柄
d、在RPC远程调用中,一个SUID的程序就具有超级用户权限
加强NFS安全的方法:
a、 合理的设定/etc/exports中共享出去的目录,最好能使用anonuid,anongid以使MOUNT到NFS SERVER的CLIENT仅仅有最小的权限,最好不要使用root_squash。
b、 使用IPTABLE防火墙限制能够连接到NFS SERVER的机器范围
iptables -A INPUT -i eth0 -p TCP -s 192.168.0.0/24 --dport 111 -j ACCEPT
iptables -A INPUT -i eth0 -p UDP -s 192.168.0.0/24 --dport 111 -j ACCEPT
iptables -A INPUT -i eth0 -p TCP -s 140.0.0.0/8 --dport 111 -j ACCEPT
iptables -A INPUT -i eth0 -p UDP -s 140.0.0.0/8 --dport 111 -j ACCEPT
c、 为了防止可能的Dos攻击,需要合理设定NFSD 的COPY数目。
d、 修改/etc/hosts.allow和/etc/hosts.deny达到限制CLIENT的目的
/etc/hosts.allow
portmap: 192.168.0.0/255.255.255.0 : allow
portmap: 140.116.44.125 : allow
/etc/hosts.deny
portmap: ALL : deny
e、 改变默认的NFS 端口
NFS默认使用的是111端口,但同时你也可以使用port参数来改变这个端口,这样就可以在一定程度上增强安全性。
f、 使用Kerberos V5作为登陆验证系统
3、 修改Swap
A:修改Swap相当麻烦了。不如讲个笑话吧!
B:好啊!
A: 从前有个太监。
B: 下面呢?
A:没了!
4、设定系统环境变量(JDK安装)
JDK的安装对于Java开发人员来讲,是总是会碰到的问题,这边简单描述一下如何安装。在Linux系统中,每个用户都会有自己的profile,就是自己的工作目录下,比如oracle用户的:
$ls -la /home/oracle/ 就可以看到.bash_profile文件,这个就是当前用户的配置文件,理论上讲,用户的所有的环境变量都可以设置在这里,但是唯独JDK的环境变量设置在这里会有些麻烦,其实还有一个系统全局的profile,这个就是/etc目录下。这里我们把JDK的环境变量都设置到这里,然后所有的用户登录系统后都可以使用Java了。但是是不是安全呢?哪位达人能不吝赐教?其实作为开发人员,没有必要全部了解。
安装步骤:
a、 很显然,下载一个安装程序。关于安装程序的版本很多,安装起来的方式也稍有不同。但是无所谓,下面会有提到常见的格式的安装。
b、 切换到root用户,改变安装文件的属性,使得其可以执行。
$chmod 777 j2sdk-1_4_2_01-linux-i586-rpm.bin
然后./j2sdk-1_4_2_01-linux-i586-rpm.bin 到这里一般的安装都是相同的,接下来如果安装文件的不同,安装的方式就不一样了。有的安装文件在执行上面的步骤后就什么都不用做了,会自动安装完成。但是有的会生成一个rpm包,这样我们还需要:给j2sdk-1_4_2_01-linux-i586.rpm赋执行权限:$chmod 700 j2sdk-1_4_2_01-linux-i586.rpm 然后安装j2sdk-1_4_2_01-linux-i586.rpm:
$rpm -ivh j2sdk-1_4_2_01-linux-i586-rpm
出现授权协议,按Enter键接受
(5)使用默认的安装位置,在/usr/java/下,即/usr/java/j2sdk1.4.2_01
c、 然后配置环境变量
首先:$vi /etc/profile
然后在末尾添加:
#set java environment
#JAVA_HOME这一项按照自己的安装目录来设置,根据不同的JDK版本来
export JAVA_HOME=/usr/java/j2sdk1.4.2_01
export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
保存退出
接着 $source profile 或者 $./profile
然后 $java -version
如果正确执行,那么Congratulations,install successfull.
如果没有正确执行,重启一下系统,再执行一下$java -version。
如果仍然没有正确执行,检查一下profile中的环境变量是否设置正确。
其实各位应该可以明白,环境变量的设置是为了让系统可以找到java的执行环境,所以我们上别的系统上拷贝过来一个JDK(当然是Linux版本),然后正确的配置环境变量,也是可以正常使用的。
4、 系统备份(打包、压缩以及解压缩)
系统备份是系统管理员的日常工作,对于我们开发人员来讲,不是特别重要,但是我们很多时候也需要备份我们的文件,然后这些备份常用的命令不过是打包、压缩以及解压缩。
a、 tar命令(打包命令)
tar命令是我们用来打包我们需要备份的文件或者目录的命令。常用的使用方法如下:
将/home/oracle/目录下的所有文件打包到a.tar
$tar cvf a.tar /home/oracle/
解开包,解压缩到当前目录
$tar xvf a.tar
查看包的内容
$tar tf a.tar
如果需要压缩或者解压缩的话,在上面命令的前两个使用方法中添加参数”z”,然后打包的时候会自动压缩,解包的时候会自动地解压缩。这个那是相当的方便了。
比如: $tar czvf a.tar.gz /home/oracle/ 这个时候打包的时候就会自动地压缩。
解压缩:$tar xzvf a.tar.gz 这个时候就会自动地解压缩。
b、 压缩解压缩工具
压缩解压缩工具一般和上面的tar命令一起使用。其实了解上面的tar命令就可以实现我们常用的备份了,但是一些常见的工具我们还是有必要了解一下的。这些命令我都没有对目录成功使用过,所以每次都需要配合tar命令使用。
首先:gzip和gunzip
这个是很高效的自由软件,随便用不花钱的,呵呵!有一个很重要的特点是如果不加任何参数,压缩的时候会删除源文件。
$gzip file 这样将生成file.gz,删除源文件file;
$gzip -c file > file.gz 这样会保留源文件file
解压缩: $gzip -d file.gz 或者 $gunzip file.gz
接着:compress和uncompress
这个工具是很古老的东东,所以我猜测,在有的UNIX上也可以使用,呵呵!也有一个重要的特点:不加参数,压缩结束后会删除源文件。使用方法和上面的工具有惊人的相似。J
$compress file 这样将生成file.Z,删除源文件file;(如果文件是空,什么都不做,呵呵!)
$compress-c file > file.Z 这样会保留源文件file
解压缩: $compress -d file.Z 或者$uncompress file.Z
然后:zip和unzip
这个我们就很熟悉了,很多平台上我们都可以见到,至少Windows,Unix,Linux上多见到过。还是有一个重要的特点:不加参数压缩后不会删除源文件。
压缩一个文件: $zip zipfile sourcefile
压缩一个文件并且删除源文件:$zip -m zipfile sourcefile
解压缩:$unzip zipfile
其实解压缩应该还有另外一种用法,但是我从来没有用过,呵呵!
5、 常见的标志(权限:r w x s t 标志:l b c d)
标志位是显示一个文件属性的标识。常见的有以下几个:
r: read
w: write
x: execute
s: 表示该用户如果有权限执行该文件,那么执行的时候将变成文件所有者。
t: 表示有些权限,但是不可以删除
后两个不常用。
属性的第一个位置:
l: 表示link文件
b: 块设备文件 block device
c: 字符设备文件 character device
d: directory


akfvip 于 2007-06-15 23:51:08发表:
有学一点知识!:0L