Linux常用命令和服务器配置
root
|
1#
root 发表于 2005-08-27 00:03
Linux常用命令和服务器配置
转
一、 添加用户useradd命令 例子: #useradd –m –g users –G wheel,sales –s /bin/tcsh –c “a user” myname #useradd -c "ftp Administrator" -d /var/ftp/ -G ftpAdmin -s /sbin/nologin -r ftpAdmin -m 自动创建用户的主目录,并把框架目录(/etc/skel)文件复制到用户目录上。 -g 设置基本组,用户将在该组中。 -G 把用户加到所有逗号间隔的分组中。 -s 制定使用的shell。 -c 描述信息。 -d 为账号设置主目录。 -r 系统帐号,无需再/home下创建主目录。 最后的是用户名 二、 指定口令(密码)passwd 例子: #passwd 用户名 回车就会提示输入密码了。 三、 删除用户userdel 例子: #userdel 用户名 #userdel –r 用户名 -r 删除其主目录(/home/…..) 四、 文件系统命令 4.1 fdisk命令 (1)fdisk –l :显示硬盘上的所有分区。既分区类型(FAT32、Ext3)。 (2)df –h :显示文件系统是如何挂载的。 (3)fdisk /dev/hdb1 :格式化第二个IDE磁盘 4.2 mount命令挂载文件系统 (1)mount (不使用参数)查看系统挂载情况。 (2)mount /mnt/cdrom :挂载光驱,可用cd /mnt/cdrom 后ls查看光盘上的内容。 (3)mount /mnt/floppy :挂载软盘,可用cd /mnt/floppy 后ls查看软盘上的内容。 2、3中可以使用/dev/cdrom和/dev/fd0代替挂载点,得到同样的效果! (4)mount –t msdos /dev/fd0 /mnt/floppy :挂载DOS软盘到/mnt/floppy下。 (5)挂载Windows分区 #fdisk -l :列出硬盘分区。 #mkdir /mnt/win :创建一个目录,用于挂载。 #mount -t vfat /dev/hda1 /mnt/win :假设Windows在第一个IDE硬盘的第一个分区上。 注:可以使用–t auto 参数令系统自动监测文件类型! -r 以只读方式挂载。 -w 读写方式挂载。 4.3 umount命令卸载文件系统 (1) umount /mnt/floppy 将设备(如/dev/fd0)从挂载点/mnt/floppy卸载。也可以使用下列方式完成这一工作: umount /dev/fd0 为了使该分区对于Linux永久可用,需在/etc/fstab文件中添加如下一行: /dev/hda1 /mnt/win vfat defaults 0 0 五、 文件相关命令 5.1 文件权限chmod 例子: chmod 777 files -〉rwxrwxrwx chmod 755 files -〉rwx r-x r-x chmod 644 files -〉rw- -r- -r- chmod 000 files -〉- - - - - - - - - chmod u+x g+w o+r file(给file以拥有者可执行、同组可写、其他人可读取的权利) $ chmod –R 777 /tmp/test :更改目录中所有文件和目录的权限(所有权限)。 $ chmod –R 664 /tmp/test :关闭执行权限。 5.2 文件所有权 chown user1 file(把file分配给user1) 5.3 移动文件mv 例子: mv abc def 本文件abc移动更名为def。 六、 iptables命令面面观 外网:eth0 123.45.67.89 内网:eth1 10.0.0.1 LAN上的计算机IP地址都在10.0.0.2~~10.0.0.254之间。 (1)一个rc.local的例子,在rc.local中加入如下命令 echo 1 > /proc/sys/net/ipv4/ip_forward #启动IP转发 echo 1 > /proc/sys/net/ipv4/ip_dynaddr #启动动态IP地址 #Policies(Default)设置默认策略为拒绝 iptables -P INPUT DROP iptables -P OUTPUT DROP iptables -P FORWARD DROP #User-defined chain for ACCEPTed TCP packets用户自定义链,链名为“okay” iptables -N okay iptables -A okay –p TCP - - syn –j ACCEPT iptables -A okay –p TCP -m state - -state ESTABLISHED,RELATED –j ACCEPT iptables -A okay –p TCP –j DROP #INPUT chain rules # Rules for incoming packets from LAN iptables -A INPUT -p ALL -i eth1 -s 10.0.0.0/8 -j ACCEPT #LAN中的地址可接受 iptables -A INPUT -p ALL -i lo -s 127.0.0.1 -j ACCEPT #允许接受本身的数据包 iptables -A INPUT -p ALL -i lo -s 10.0.0.1 -j ACCEPT #允许接受本身的数据包 iptables -A INPUT -p ALL -i lo -s 123.45.67.89 -j ACCEPT #允许接受本身的数据包 iptables -A INPUT -p ALL -i eth1 –d 10.0.0.255 -j ACCEPT #允许接受LAN内的广播包 # Rules for incoming packets from the Internet # packets for established connections iptables -A INPUT -p ALL -d 123.45.67.89 -m state –state ESTABLISHED,RELATED –j ACCEPT # TCP rules 由okay链处理 iptables -A INPUT -p TCP -i eth0 -s 0/0 --destination-port 21 –j okay iptables -A INPUT -p TCP -i eth0 -s 0/0 --destination-port 22 –j okay iptables -A INPUT -p TCP -i eth0 -s 0/0 --destination-port 80 –j okay iptables -A INPUT -p TCP -i eth0 -s 0/0 --destination-port 113 –j okay # UDP rules 定义开放的UDP端口 iptables -A INPUT -p UDP -i eth0 -s 0/0 --destination-port 53 –j ACCEPT iptables -A INPUT -p UDP -i eth0 -s 0/0 --destination-port 2074 –j ACCEPT iptables -A INPUT -p UDP -i eth0 -s 0/0 --destination-port 4000 –j ACCEPT # ICMP rules iptables -A INPUT -p ICMP -i eth0 -s 0/0 --destination-port 8 –j ACCEPT iptables -A INPUT -p ICMP -i eth0 -s 0/0 --destination-port 11 –j ACCEPT # FORWARD chain rules #Accept the packets we want to forward iptables -A FORWARD -i eth1 -j ACCEPT iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT # OUTPUT chain rules # Only output packets with local addresses (no spoofing) iptables -A OUTPUT -p ALL -s 127.0.0.1 -j ACCEPT iptables -A OUTPUT -p ALL -s 10.0.0.1 -j ACCEPT iptables -A OUTPUT -p ALL -s 123.45.67.89 -j ACCEPT # POSTROUTING chain rules 网关的IP伪装 iptables -t nat –A POSTROUTING –o eth0 –j SNAT –to-source 123.45.67.89 (2)网关的IP伪装:静态地址 使用SNAT,动态地址(拨号) 使用MASQUERADE 例子: MASQUERADE必须提供接口名(eth0,ppp0等)来指明路径,好像静态地址也可以使用MASQUERADE: iptables -t nat -A POSTROUTING –o eth0 –j MASQUERADE SNAT也必须指明实际的IP如下所示: iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to-source 12.12.12.12 (3)端口转发 例子:将对防火墙计算机(-d 15.15.15.15)的所有Web服务重定向到LAN上的某台计算机(10.0.0.25) iptables -t nat -A PREROUTING -p tcp -d 15.15.15.15 –dprot 80 –j DNAT –to-destination 10.0.0.25 七、 IP地址类型(第一部分数字的范围) A类地址:0~127;可容纳计算机数量为 256*256*256。子网掩码255.0.0.0。 B类地址:128~191;可容纳计算机数量为 256*256。子网掩码255.255.0.0。 C类地址:192~233;可容纳计算机数量为 250个。0和255不能被指定为主机地址。子网掩码255.255.255.0。 C类私有IP地址 192.168.0.0~192.168.255.255 八、 ifconfig ifconfig :判断网络连接情况。 ifconfig eth0 up :启动eth0接口。 九、 配置网卡 配置文件 /etc/sysconfig/network-scripts/ifcfg-eth0用vi编辑即可。例子如下 DEVICE=eth0 #设备名,与文件同名。 ONBOOT=yes #在系统启动时,启动本设备。 BOOTPROTO=static IPADDR=202.118.75.91 #此网卡的IP地址 NETMASK=255.255.255.0 #子网掩码 GATEWAY=202.118.75.1 #网关IP MACADDR=00:02:2D:2E:8C:A8 #mac地址 十、 FTP服务 10.1 使用setup命令开启vsftpd服务进程。 10.2然后修改文件/etc/xinetd.d/vsftpd。(但vsftpd是依附于xinetd.d运行时2、3有效) (1)把disable=yes改为=no。 (2)配置每个客户机的最大连接数: 在配置文件/etc/xinetd.d/vsftpd 的{}中添加如下的配置语句: per_source = 数值。例如:per_source = 5 表示每个客户机的最大连接数为5。 (3) 配置服务器总的并发连接数: 在配置文件/etc/xinetd.d/vsftpd 的{}中添加如下的配置语句: instances = 数值。例如:instances = 200 表示FTP 服务器总共支持的最高连接数为200。 (4)当vsftpd单独运行时:要配置独立运行的vsftpd很简单,只需要在前面的主配置文件的基础上添加如下的配置即可。 设置listen=YES :指明vsftpd 以独立运行方式启动。 设置max_clients=200 :指明服务器总的并发连接数 设置max_per_ip=4 :指明每个客户机的最大连接数。 10.3 配置/etc/vsftpd.conf(redhat9 是/etc/vsftpd/vsftpd.conf)文件。 # 允许真实用户(在系统中有账号的用户)访问 local_enable=YES # 给真实用户写权限 write_enable=YES # 真实用户上传文件的掩码设为022。这样真实用户上传后的文件权限为755(rwxr-xr-x),即文件所有者可读写执行、同组成员可读可执行、 # 系统中的其它用户可读可执行。 local_umask=022 # 允许匿名用户访问。匿名用户在系统中的账号是ftp anonymous_enable=YES # 匿名用户上传文件的掩码设为000。这样文件上传后的权限为777(rwxrwxrwx),即所有人都可以读写执行。 anon_umask=000 # 匿名用户可上传、可创建目录。一下3行只有设置了write_enable=YES才有效。 anon_upload_enable=YES anon_mkdir_write_enable=YES anon_world_readable_only=NO # 如果想要让匿名用户有删除的权限可以加上如下代码 # anon_other_write_enable=YES # 进入每个目录都显示特定提示。这些提示放在各个目录下.message文件中。 dirmessage_enable=YES # 当用户登陆ftp服务器时,不管是否登陆成功都显示如下信息。 ftpd_banner=Welcome to NiHao FTP service. # 使用日志记录上传和下载。 xferlog_enable=YES # 日志文件的位置 #xferlog_file=/var/log/vsftpd.log # 日志使用标准fpd格式 xferlog_std_format=YES # ftp服务的端口是20 connect_from_port_20=YES # 用户使用ftp访问服务器时,把他们的登陆目录作为它们在ftp中看到的目录,这称为chroot。 # 这样用户就无法访问他们登陆目录以外的内容,大大增强了安全性。匿名用户的登陆目录是/var/ftp/ chroot_list_enable=YES # 文件/etc/vsftpd.chroot_list中的用户不chroot。 chroot_list_file=/etc/vsftpd.chroot_list # 同时最多允许5个用户登陆。 max_clients=5 #有些不支持此选项,注释掉即可。 # ftp服务的密码验证模块。 pam_service_name=vsftpd # listen=YES #如果是独立运行的则加此项(redhat9)。 #tcp_wrappers=YES #如果是独立运行的则加此项(redhat9)。 10.4重新启动xinetd服务,你就可以匿名访问你的ftp服务器了。 下面我们来建立一个ftp管理员账号 在Linux ftp服务中,用户的权限受到双重限制。一是Linux文件系统本身的权限限制。每个文件的访问权限用rwxrwxrwx形势表示。每个用户只能做文件全县允许的操作。二是ftp配置的限制。系统允许的操作,如果在ftp的配置文件中没有被允许,用户还是不能作这个操作。如:某个文件的权限为rwxrwxrwx,即系统认为任何人都有读写执行的权利。如果vsftpd.conf中不允许匿名用户写,匿名用户还是不能修改这个问安。 对于目录文件的读权限,意味着可以读出这个目录中的文件信息。目录文件的写权限,意味着可以在这个目录下建立、删除、重命名文件。 用命令groupadd -r ftpAdmin添加一个ftp管理员组。其中-r表示这是一个系统组。 用命令useradd -c "ftp Administrator" -d /var/ftp/ -G ftpAdmin -s /sbin/nologin -r ftpAdmin添加一个管理员用户ftpAdmin。其中 -c "ftp Administrator" 是对这个用户的描述 -d /var/ftp/ 是这个用户的登陆目录 -g ftpAdmin 是这个用户所在的组 -s /sbin/nologin 是这个用户登陆时所用的shell。这个shell命令的功能极其弱,以至于不能用telnet登陆。也就是说这个管理员只能当当垃圾清扫员。(呵呵。好没面子的管理员) -r 表示这是个系统账号,不用为它建立登陆目录。 建好管理员以后把incoming目录的管理权给他。 chown ftpAdmin /var/ftp/incoming :把此目录所有者设为ftpAdmin。 chmod 755 /var/ftp/incoming :把目录的权限设为所有者可读写执行,同组用户可读、可执行,所有人可读、可执行。 这样,我们的管理员就可以开始管理了。 10.5 配置vsftpd 允许匿名用户上传 //修改vsftpd 的主配置文件/etc/vsftpd.conf # vi /etc/vsftpd.conf //将如下两行前的#删除 //① #anon_upload_enable=YES 允许匿名用户上传 //② #anon_mkdir_write_enable=YES 开启匿名用户的写和创建目录的权限 //若要以上两项设置生效,同时还要求: //(1) write_enable=YES //(2) 匿名用户对文件系统的上传目录具有写权限 //添加如下的配置语句 // anon_world_readable_only=NO //上面的配置语句用于放开匿名用户的浏览权限 //修改后存盘退出vi // //创建匿名上传目录 # mkdir /var/ftp/incoming # 修改上传目录的权限 # chmod o+w /var/ftp/incoming/ # //重新启动xinetd # service xinetd restart 十一、 Web服务(httpd) 同样在setup中选中httpd服务。www服务不需要xinetd作为它的代理进程。httpd这个进程一直在系统中运行。www服务的默认目录是/var/www/html。只要把主页放到这个目录下就可以访问了。 我们可以用建立ftp管理员的办法建立一个www管理员wwwAdmin。只要把它的登陆目录设为/var/www/html即可。 /etc/init.d/httpd start #启动服务 /etc/init.d/httpd restart #重新启动 其配置文件为/etc/httpd/conf/httpd.conf |