Linux系统笔记
==========================================================================================================================
Linux分区:
硬盘分为两个区域:硬盘信息放置区(主引导分区『MBR』,MBR记录引导程序和磁盘分区表)和文件数据放置区。
MBR仅446字节,只有4个分区记录,即一个硬盘最多可以有4个(主+扩展)分区,且扩展分区最多只能有一个。
扩展分区又可以分为多个逻辑分区。
# modprobe usb-storage 驱动usb
挂载分区:
# mount /dev/cdrom /mnt/cdrom 挂载光驱
# umount /dev/cdrom 或 umount /mnt/cdrom 卸载光驱的2种办法
# mount /dev/fd0 /mnt/floppy 挂载软驱
# mount -t vfat /dev/hda2 /mnt/d 挂载windows系统FAT32格式介质
# mount -t ntfs /dev/hda3 /mnt/d 挂载windows系统NTFS格式介质
# mount -t iso9660 /dev/cdrom /mnt/cdrom 光盘默认格式为iso9660
# mount -o UTF8 /dev/hda2 /mnt/d 挂载使用字符编码为UTF8
# e2label /dev/sdb2 cmd 为该分区添加卷标为“cmd”
# vi /etc/fdtab 编辑文件使挂载分区永久生效
LABEL=cmd /mnt/d ext3 defaults 0 0
# mount /mnt/sd1 -o remount,ro 以只读形式挂载
# mount 192.168.1.127:/var/ftp/pub /mnt/share 将远程主机的一个文件共享过来
自动挂载工具Automounter(包含在autofs软件包中):
主配置文件:/etc/auto.master 格式: 挂载主目录 映射目录 参数
映射文件 :/etc/auto.misc 格式: 关键字 挂载选项 :设备(本机设备前必须加冒号)
# service autofs restart
# ls /misc/cd 访问设备方法:挂载目录(misc)+关键字(cd)
# ln -s /misc/cdrom /cdrom 创建符号链接,便于在根目录下查看光驱
# df -Th 查看硬盘信息
# fdisk -l /dev/sdb 查看这块硬盘信息
# fdisk /dev/sdb 进入该硬盘,之后才能进行操作
# mkfs.ext2 /dev/sdb1 将sdb1分区以ext2格式化
# mkfs.ext3 -b 4096 -i 8192 -m 2 /dev/sdb1 分块格式化
# tune2fs 调整ext2/ext3文件系统特性的工具
# tune2fs -c -1 -i 0 /dev/sdb1 不允许分区自检
# tune2fs -m 2 /dev/sdb1 分区保留空间强制为2%,默认为5%
# tune2fs -j /dev/sdb1 强制将原本ext2格式的分区转变为ext3格式,不可逆
# tune2fs -l /dev/sdb1 查看分区信息
Linux安装完成后无法启动:
grub> 1、可能BIOS太旧检测不到硬盘,下载最新BIOS文件刷新BIOS。
2、硬盘容量太大主板不支持,记下硬盘的柱面、磁头、扇区,进入bios内手动设置。
3、重新安装linux,分区时建100M左右的分区,将它载入到/boot载入点,并且载入点要在整个硬盘最前。
日历与日期:
cal、date:date +%Y/%m/%d、date +%H:%M、cal 2005、cal 7 2005
计算器:
bc:+加、-减、*乘、/除、^指数、%余数 默认bc仅输出整数,如要小数则在执行bc后输入scale=5,即5位小数。
常见数字含义:
1 用户可以操作的命令或则可执行文件
2 系统核心可调用的函数与工具等
3 一些常用的函数(function)与函数库(library)
4 设备文件的说明
5 设置文件或则是某些文件的格式
6 游戏(games)
7 惯例与协议等,例如linux标准文件系统、网络协议、ASCII码等说明内容
8 系统管理员可用的惯例命令
9 与内核有关的文件
正确关机:
shutdown、init、halt、reboot、poweroff 在执行关机前,最好手动使用 sync 这个命令,将内存数据存入硬盘。
磁盘修复:
fsck /dev/hdb7
启动网卡:
ifconfig eth0 up
解决虚拟机每次开机service network restart:
# vi /etc/sysconfig/network-scripts/ifcfg-eth0
ONBOOT=yes
# vi /etc/rc.d/rc.local
ifconfig eth0
ifconfig eth0 up
ifup eth0
Linux文件系统:
Linux中任何一个文件都具有“用户、用户组、其他人”3种权限。
-rwxrwx---:
这里格式一共有10个属性,其中第一个属性表示这个是个“目录、文件、或则链接文件等”。[d]目录、[-]文件、[l]连接文件、[b]设备文件中可供存储的接口设备、[c]设备文件中串行端口设备。剩下9个属性,每三个为一组,分别代表“拥有者的权限”“同用户组的权限”“其他非本用户组的权限”。r 只读4 w 可写2 x 可执行1 。且对目录权限需要有x其他权限才能生效,而文件则不需要。
服务开关:
chkconfig 重启后生效 开启防火墙: chkconfig iptables on 关闭防火墙: chkconfig iptables off
service 即时生效,重启后失效 开启: service iptables start 关闭: service iptables stop
防火墙开启端口:
iptables -I INPUT -p tcp --dport 22 -j ACCEPT
网络IP配置:
ifconfig
用户管理:
# useradd username 增加系统用户,未指定工作组则默认在同名工作组
# passwd username 修改系统用户密码
# userdel username 删除系统用户
# useradd -g groupname -s /bin/false username 新建用户并加入指定工作组,且不给shell权限
# for user in user1 user2 user3 user4 批量增加samba帐号
> do
> useradd -g groupname -s /bin/false $user
> smbpasswd -a $user
> done
# chmod u+x,g=r,o-w 1.txt 给1.txt拥有者增加x,用户组只给r,其他成员减w权限。
# chmod 755 1.txt 给1.txt指定权限
# usermod -c<备注> -d<登入目录> -e<账号有效期> -f<密码过期多久关闭账号> -g<群组> -G<附加组> -l<账户名>
-L锁定用户密码 -s<修改登入后使用的shell> -u<修改用户id> -U解除密码锁定
/etc/group
/etc/passwd、/etc/shadow 设置属性为 -rw------ 如不想让某个用户登录,到/etc/shadow里面在该用户前加上*或!
Linux日期以1970年1月1日作为1,1971年1月1日就为366,日期累加。
root密码忘记后,则需清空/etc/shadow里面root:那一行后面的内容,重启后空密码登录。
newgrp [用户组] 如果当前用户属于3个组的成员,则可以用来切换当前用户的用户组为有效组。
linux修改启动级别:
# 0 - 停机(千万不要把initdefault设置为0)
# 1 - 单用户模式(类似安全模式)
# 2 - 多用户,但是没有NFS支持
# 3 - 完全多用户模式 ,标准运行级别,也是命令行
# 4 - 没有用到,特殊情况下例如在笔记本电脑的电池用尽时,可以切换到这个模式来做一些设置。
# 5 - 启动到X-windows系统
# 6 - 重新启动(千万不要把initdefault设置为6 )
修改级别: vi /etc/inittab 把id:3:initdefault:中的3改为5就是默认进入图形界面了。
==========================================================================================================================
Redhat linux下ftp服务器的搭建:
修改主机ip地址:
# vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=static
IPADDR=172.16.16.111
NETMASK=255.255.0.0
GATEWAY=172.16.16.1
ONBOOT=yes
TYPE=Ethernet
重启配置文件使之生效
# /etc/init.d/network restart
关掉iptables系统防火墙:
# service iptables stop
把安全级别调低:
# vi /etc/selinux/config
SELINUXTYPE=targeted 改为 SELINUXTYPE=disabled
如在安装linux时没有默认安装,则需要使用rpm命令安装。首先需要挂载光盘:
# mount /dev/cdrom /mnt/cdrom
# cd /mnt/cdrom/RedHat/RPMS (安装文件包的默认位置)
# ls -l vsftpd* (查看如见全名,这里是:vsftpd-2.0.1-5.i386.rpm)
-rw-r--r-- 25 root root 122195 Jan 6 2005 vsftpd-2.0.1-5.i386.rpm
# rpm -ivh vsftpd-2.0.1-5.i386.rpm (开始安装)
看一下vsftpd.conf的配置文件:
# grep -v '#' /etc/vsftpd/vsftpd.conf (去除注释行后的配置文件)
anonymous_enable=YES (为yes时,允许匿名登录,用户名为ftp或anonymous,空口令)
local_enable=YES (为yes时,允许本地linux系统中的用户账号登录)
write_enable=YES (为yes时,ftp服务器开放对本地用户的写权限)
local_umask=022 (为022时,设置本地用户的文件生成掩码为022)
dirmessage_enable=YES(为yes时,当切换到ftp中某个目录,将显示该目录下的".message"隐含文件的内容)
xferlog_enable=YES (xferlog_enable设置为yes时,ftp服务器将启用上传和下载日志)
connect_from_port_20=YES(为yes时,ftp服务器将启用ftp数据端口的连接请求)
xferlog_std_format=YES (为yes时,ftp服务器将使用标准的ftpd xferlog日志格式)
pam_service_name=vsftpd (设置PAM认证服务的配置文件名称,该文件保存在"/etc/pam.d/"目录下)
userlist_enable=YES (为yes时,将检查userlist_file中指定用户是否可以访问vsftpd)
userlist_file (配置项的默认值是"/etc/vsftpd.usr_list"文件)
listen=YES (为yes时,ftp服务器将处于独立启动模式)
tcp_wrappers=YES (为yes时,将使用tcp_wrappes访问控制方式。tcp_wrappers能实现linux网络服务基于主
机地址的访问控制,在"/etc"目录中的hosts.allow和host.deny两个文件分别用于设置
tcp_wrappers的允许访问记录和拒绝访问记录)
启动vsftpd服务器:
# service vsftpd start
查看服务运行状态:
# service vsftpd status
开机自启动vsftpd:
在/etc/rc.d/rc.local中加入:/usr/local/sbin/vsftpd &
上传文件到ftp服务器中:
ftp> put 22.txt
FTP下载文件到客户机中:
ftp> get 22.txt
匿名用户登录:(ftp/anonymous)将以ftp服务器系统中的"/var/ftp"目录作为匿名用户的ftp根目录。
本地用户登录:将以本用户目录为根目录,如用admin登录,则根目录为/home/admin。首先它是系统账号,一旦ftp服
务器出现安全漏洞,会对linux主机造成威胁;另外本地用户账号可以离开用户宿主目录,转换到系统
中的其他目录中,这对系统的安全有着一定的威胁。所以要设置ftp本地用户禁锢在宿主目录中,这样
可以防止它切换到其他的目录中)
vsftpd允许root直接登陆:
默认不允许root登录,若要使用root登录,则在/etc/vsftpd.ftpusers和/etc/vsftpd/user_list中删除root即可。
把本地用户禁锢在用户宿主目录:
chroot_local_user=YES (在配置文件vsftpd.conf中手动添加配置项,配置完重启服务)
配置ftp虚拟目录:
vsftpd支持匿名用户、本地用户和虚拟用户3类用户账号,本地ftp用户账号通常和web服务器一起提供虚拟主机服务,
作为网页虚拟主机更新网页的途径。虚拟用户ftp登录后将把指定的目录作为ftp根目录,虚拟用户与本地用户具有类似的功能。
虚拟用户账号的设置过程:
1、建立虚拟用户口令库文件.
虚拟用户的口令库文件logins.txt,文件中奇数行设置虚拟用户的用户名,偶数行设置用户的口令。
# vi logins.txt
ee
123
rr
456
2、生成vsftpd的认证文件.
首先我们需要安装一下db4-utils-4.2.52-7.1.i386.rpm.
# cd /mnt/cdrom/RedHat/RPMS/
# rpm -ivh db4-utils-4.2.52-7.1.i386.rpm
使用db_load命令生成认证文件,"-f"命令选项设置的值时虚拟用户的口令库文件,即:logins.txt.命令的参数设置为需
要生成的认证文件名vsftpd_login.db,该文件放置在目录"/etc/vsftpd"中.
# db_load -T -t hash -f logins.txt /etc/vsftpd/vsftpd_login.db
设置vsftpd_login.db文件的权限只对root用户可读可写.即600.
# chmod 600 /etc/vsftpd/vsftpd_login.db
3、建立虚拟用户所需的PAM配置文件.
在"/etc/pam.d"目录中建立vsftpd虚拟用户身份认证所需的PAM配置文件,名称为vsftpd.vu.
# vi /etc/pam.d/vsftpd.vu
auth required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
account required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
4、建立虚拟用户及所要访问的目录并设置相应权限.
建立vsftpd虚拟用户所需的系统用户账号,账号为zhen,指定用户的宿主目是"/home/ftpsite/",设置宿主目录的权限是700(vsftpd服务器中的所有虚拟用户账号登录后都将在"/home/ftpsite"目录中)
# useradd -d /home/ftpsite zhen
# chmod 700 /home/ftpsite
5、设置vsftpd.conf配置文件
在对vsftpd.conf配置文件修改前,先将它原来的文件备份,以便出现配置错误时可进行恢复.
# cd /etc/vsftpd
# cp vsftpd.conf vsftpd.conf.bak
在vsftpd.conf配置文件添加虚拟用户的配置项:
guest_enable=yes
guest_username=zhen
pam_service_name=vsftpd.vu
所有配置完成后,重新启动vsftpd服务程序
可以对不同的用户设置不同的权限.
vsftpd服务器中的虚拟用户可以灵活的针对不同的用户账号设置不同的用户权限:
1、设置主配置文件
在vsftpd配置文件中添加user_config_dir配置项,并设置用户配置文件的保存路径
user_config_dir=/etc/vsftpd_user_conf(设置在"/etc/vsftpd_user_conf"目录中保存虚拟用户的配置文件.)
2、建立用户配置文件目录
# mkdir /etc/vsftpd_user_conf
3、为虚拟目录建立单独的配置文件
为用户建立独立的配置文件,配置文件名称和用户名相同,并给他相应的权限.
# vi /etc/vsftpd_user_conf/rr
anon_world_readable_only=no //表示用户可以浏览ftp目录和下载文件.
==========================================================================================================================
Samba:
# cd /mnt/cdrom/RwdHat/RPMS
# ls |grep rpmdb
# rpm -hiv rpmdb-fedora-1-0.i386.rpm 安装rpmdb软件包
# rpm -hiv --aid samba*.rpm
# rpm -qa |grep samba
# rpm -ql samba
# smbtree -b 查看工作组计算机
# smbtree -b -D 查看工作组
# smbtree -b -U kong%123 找出能以kong帐号,密码123的主机
# nmlookup kong 解析kong的IP
# nmlookup \\\\\\\\* 解析局域网活动主机
# smbclient -L IP 匿名查看该主机共享
# smbclient -L IP -U guest% 以guest用户空密码查看共享
# smbclient //IP/share -U guest% share为共享名
help
get 1.txt
put /root/1.log 2.log 后面的2.log不能省略
# smbmount //IP/share /mnt -o username=guest% 将windows下share目录挂载到本机
# smbtar -s IP -u user -p pass -x share -t backup.tar 将远程主机目录share备份到本机backup.tar
# which smbtar 查看smbtar文件位置
# file /usr/bin/smbtar 查看smbtar文件信息
# vi /usr/bin/smbtar
最后面去除-N,否则默认以匿名登录,备份不成功
# tar tvf backup.tar 查看backup.tar文件内容
# vi /etc/samba/smb.conf 修改samba主配置文件
workgroup = 工作组名 或 域名
username map = /etc/samba/smbusers 用户帐号映射,保护系统帐号安全
security = 安全级别(share最低,user需要用户验证)
[docs]
path = /usr/share/doc (共享路径)
comment = it's a share (注释)
public = yes (是否允许匿名访问)
valid users = <@root> 允许root组用户、root访问
# chkconfig smb on
# service smb restart
samba用户帐号:
# adduser user 增加系统帐号,samba帐号必须是系统帐号
# smbpasswd -a user 指定samba帐号密码,与系统密码不冲突
# more /etc/samba/smbpasswd
# smbpasswd -d user 禁止该user
# smbpasswd -x user 删除该user
# vi /etc/samba/smb.conf
username map = /etc/samba/smbusers 用户帐号映射,保护系统帐号安全
# vi /etc/samba/smbusers
root = admin administrator 将root映射为admin和administrator
nobody = guest smbguest 将nobody映射为guest或smbguest
# service smb restart
特殊目录:
[homes]
comment = Home Directories 共享目录为用户的主目录
browseable = no 允许浏览
writable = yes 允许写入,同时还要修改用户主目录可写才行
valid users = %S 允许有效用户为该系统用户
write list = <@groupname> 指定哪些用户可写
create mode = 0660 指定创建文件权限
directory mode = 0770 指定创建文件夹权限
# testparm 测试配置工具
# testparm /etc/samba/smb.conf host 192.168.1.102 测试客户机拥有的查看权限
==========================================================================================================================
SendMail:
Sendmail本身无安全认证机制,所以必须安装以下三个:cyrus-sasl,cyrus-sasl-plain,cyrus-sasl-devel,可选安装另外两个:cyrus-sasl-md5,cyrus-sasl-gssapi
# rpm -e --nodeps sendmail 删除系统sendmail,开启服务重启之,否则卸载失败
# rpm -e --nodeps postfix
# rpm -qa |grep sasl 查看sasl软件包是否安装