linux系统入门命令集+四大服务(DHCP、SAMBA、FTP、DNS)

Linux 命令总结

 

 

第一章Linux安装及服务控制

1.  uname -r              //查看linux版本号

2.cat  /proc/cpuinfo      //查看CPU信息

3.cat  /proc/meminfo     //查看内存信息 memtotal总容量

memfree空闲容量

swaptotal交换分区总容量

swapfree交换分区空闲容量

4. hostname 计算机名     //修改计算机名

5.  bash                  //刷新用户配置文件

6. ifconfig                //查看ip地址、网卡配置信息

7.Shutdown  -h now     //关机

Poweroff

halt

init 0

8.shutdow  -r now       //重新启动

reboot

init 6

9.任何命令 --help        //显示命令的帮助信息

10.  man 命令            //man手册,提供在线帮助 Q退出

11.|                    //管道符,连续多个命令,前一个命令执行的结果是后面命令的操作对象

12.>                    //文本重定向,将前一个命令执行后显示的结果,保存到指定的文件中

13.   >>                   //文本双重重定向,追加数据

14.  man mkdir | col -b  |  >  /tmp/abc.txt    //除去乱码的mkdir的man手册保存在/tmp/abc.txt

15.  cd                   //显示当前路径

目录名            //切换到制定目录

      ..                 //返回上一级目录

      /                 //返回根目录

      ~                 //返回家目录

回车              //返回家目录

      -                 //返回上一次工作过的工具

16.  ls                    //查看文件名

     -l                  //查看文件详细信息

     -a                 //查看所有文件,包括隐藏文件

目录名             //查看制定目录中的文件名

文件名             //查看指定文件

     -h                 //查看存储单位容量

     -lh                 //查看存储文件下的详细信息

     -ldh                //查看目录本身详细信息

     -lah                //查看存储文件下所有文件的详细信息

17.alias                  //设置简化命令

alias 简化名=”命令语句”

 

18.   du  -sh 目录名        //查看目录的空间占用量

19. ?                    //代替任意一个字母,不能连续出现

20.   *                     //代替任意一组字符

21.  mkdir                  //创建文件

目录名

如:mkdir   lpc

目录1 目录2 目录3 ……

如: mkdir  1.txt  2.txt  3.txt

        -p 目录1/目录2   //同时创建父子目录

如: mkdir   -p  /lpc/1.txt

        a{1..100}         //连续创建指定数量的文件或目录

如: mkdir  a{1..100}

22.  touch    文件名              //创建空文件

如: touch  3.txt

 

23.  ln                     //创建连接文件(快捷方式)

     -s  源文件的绝对路径/源文件名目标路径/目标文件名     //软连接

如: ln  -s  /benet/xueyuan/xueyuan.txt   /root

     ln  源文件的绝对路径/源文件名目标路径/目标文件名     //硬连接

 

24.  pwd                   //查看当前位置

25.cp                     //复制文件或者目录

  cp  源文件的路径/源文件名目标路径/目标文件名

      -f                  //覆盖文件时不给提示

      -r                  //复制目录

      -p                  //复制时保持原有属性和权限

      -i                  //覆盖文件时提醒用户确认

 

26.  rm                     //删除文件

      -r                  //删除目录

      -i                  //删除文件时提醒用户确认

      -f                  //不给提示,直接删除

 

27.mv                     //移动文件,文件改名

   mv 源文件的路径/源文件名目标路径/目标文件名

28.  which                   //查找外部命令的程序文件所在位置

   which 外部命令如:which   ping

29.  find                     //查找文件或目录的所在位置

   find 目标目录查找方式文件名

       -name             //按名称查找,可使用通配符*和?

       -type              //按文件类型查找

       -size              //按文件大小查找

       -user              //按所属用户查找

       -a           //代表“与”并且的意思,多个条件必须全部满足,语句才成立

如:find  /  -name  “  .  *”–a  -type  d 

       -o         //代表“或”或者的意思,多个条件中满足任意条件,语句就成立

如:find  /  -name  smb.conf  -o   –name  ifcfg-eth0

 

 

30关闭当前防火墙

service  服务名   start开/stop关/restart重启/reload重载/status查状态

如: service  iptables   stop

/etc/init.d/服务名start开/stop关/restart重启/reload重载/status查状态

实际上service后面跟的服务名在/etc/init.d/是以一个文件形式存在,文件名就是服务名

如:/etc/init.d/iptables   stop

 

31关闭防火墙启动项

chkconfig --list——查看所有服务的启动项列表

chkconfig --list 服务名称——查询某个服务的启动信息

如:chkconfig --list  iptables

iptables    0:关闭 1:关闭 2:启用 3:启用 4:启用 5:启用 6:关闭

iptalbes这个服务在运行级别0,1,6不自动启动,在运行级别2,3,4,5,中自动启动

32更改服务器启动项的方法

chkconfig --level 级别服务名称  on启动/off关闭

如:chkconfig --level  35  iptables  off

修改运行级别3和5,iptables这个服务部自动启动

chkconfig iptables off——常用级别全部关闭

 

 

33关闭selinux

使用图形化编辑/etc/sysconfig/selinux文件,修改

SELINUX=enforcing为SELINUX=disabled保存退出即可

或者: vim   /etc/sysconfig/selinux

 

 

 

第二章目录和文件管理

 

1.cat             //显示文件内容,可以同时显示多个文件内容

如: cat  /proc/cpuinfo    /proc/meminfo

2.    more          //分页查看文件内容  N查看上一个  n查看下一个

如: more  /etc/httpd/conf/httpd.conf   

或 ls  -lh  /etc/ * . conf   |  more

3.   less           //分页查看文件内容  N查看上一个  n查看下一个

与more 用法相同,是more的升级版

4.    head          //查看文件开头的部分内容

        -n(具体数字) //指定查看文件开头的多少行内容(默认为十行)

如: head  -5  /etc/passwd

5.    tail           //查看文件末尾的部分内容

        -n(具体数字)     //指定查看文件开头的多少行内容(默认为十行)

如: tail   -6   /etc/passwd

6.    wc               //统计文件中的单词数量(Word Count)、行数等命令

      -c             //统计文件中内容的字节数

      -l             //统计文件中内容的行数

      -w            //统计文件中内容的单词个数(以空格或制表位作为分隔)

如: ps  aux   |  wc  -l  或  wc  -l  /etc/passwd

7.    grep              //检索、过滤文件内容

       ^a            //以a开头

如:grep  ^a   /etc/httpd/conf/httpd.conf 

       A$            //以a结尾

如:df  -hT  |  grep  A$

       ^$             //表示空行

如:df  -ht  |  grep  ^$

 

       -i             //查找内容时忽略大小写

       -v            //反向查找,即输出与查找条件不相符的行

如:grep  -v  ^#  /etc/httpd/conf/httpd.conf  |  grep  -v  ^$

或: cat  /etc/httpd/conf/httpd.conf  | grep  -v  ^#  |  grep  -v  ^$

8.    gzip     文件名   //压缩,以.gz为扩展名的文件

如; gzip  -9   lpc

9.    gunzip   文件名.tar.gz        //解压缩以.gz为扩展名的文件

如: gunzip  lpc.gz

  gzip   -d         //解压缩以.gz为扩展名的文件

如:gzip   -d  lpc.gz

 

10. bzip2           //压缩,以.bz2为扩展名的文件

如: bzip2  -9   lpc

11. Bunzip2         //解压缩以.bz2为扩展名的文件

如: bunzip2   lpc.bz2

     Bzip2  -d          //解压缩以.bz2为扩展名的文件

如: bzip2  -d  lpc.bz2

 

12. tar             //对目录和文件进行归档

     -c(小写) //创建.tar格式的包文件

     -C(大写)  //解压时指定释放的目标文件夹

     -f(小写)  //表示使用归档文件

     -j(小写)              //调用bzip2程序进行压缩或解压

     -p(小写)              //打包时保留文件及目录的权限

     -P(大写)              //打包时保留文件及目录的绝对路径

     -t(小写)              //列表查看包内的文件

     -v(小写)              //输出详细信息

     -x(小写)              //解开.tar格式的包文件

     -z(小写)              //调用gzip程序进行压缩或解压

 

(1)  制作压缩包

tar cfz 压缩包的存放位置压缩对象1 压缩对象2 压缩对象3

tar cfj 压缩包的存放位置压缩对象1 压缩对象2 压缩对象3

例句:将/etc/ /bin/ /sbin/以gzip形式打包保存到/root/中起名为s2t115.tar.gz

tar cfz /root/s2t115.tar.gz /etc/ /bin/ /sbin/

 

(2)  解开压缩包

tar xfz 压缩包的存放位置 -C 解压缩的位置

tar xfj 压缩包的存放位置 -C 解压缩的位置

例句:将/root/s2t115.tar.gz解压缩到/benet/目录中

tar xfz /root/s2t115.tar.gz -C /benet/

 

(3) 查看压缩包内容

tar tfz 压缩包的存放位置

tar tfj 压缩包的存放位置

例句:查看/root/s2t115.tar.gz中包含哪些内容

tar tfz /root/s2t115.tar.gz

 

13.  vi编辑器

 

vi 文件名字(如果文件已存在则开始编辑修改,如果文件不存在则新建文件)

ps:初学者推荐使用vim编辑器,是vi编辑器的升级版,具有语法检测功能(命令敲对了会有提示例如变色)

 

vi编辑器使用方法

 

在vi编辑器中分为三种模式

命令模式:所有按键均为快捷键

a:光标后一个插入,i:光标处插入,o:另一行插入

按 a  I  o  进入输入模式

按:进入末行模式

输入模式:所有按键均为输入信息    ESC退回到命令模式

末行模式:输入一些高级命令,例如另存,置入,保存退出,查找替换等

按ESC 退回到命令模式

 

 

(1) vi编辑器“命令模式”常见操作

★  光标的移动

gg:光标移动到第一行

G:光标移动到最后一行

数字gg或者数字G:跳转到数字行

显示行号

(末行模式:set nu显示行号)

 

★  删除操作

x或者del:删除光标所在位置的单个字符

dd:删除光标所在行

数字dd:删除光标所在行向下数字行,例如15dd:删除光标所在行往下15行

 

★  复制操作

yy:复制光标所在行

数字yy:复制光标所在行向下数字行,例如15yy:复制光标所在行往下15行

p:光标处往下黏贴,单次黏贴使用,跟windows的ctrl+v一样

P:光标处往上黏贴,适用于多次黏贴!

 

★  其他操作

ZZ:保存退出

u:全文撤销一次

U:光标所在行撤销一次

 

★  文章中查找关键字

/关键字:往下文查找关键字

?关键字:往上文查找关键字

n:跳转到下一处关键字的位置

N:跳转到上一处关键字的位置

 

(2) 末行模式常见命令

:w——保存

:w 文件名——另存为一个文件名

:wq——保存退出

:q——退出

:q!——强制退出

:e 文件名——用当前编辑器编辑另外一个文件

:r 文件名——将另外一个文件的内容置入到当前文件光标所在行往下。

:sp 文件名——分屏编辑多个文件,切换多个文件的方法按住ctrl再按一下w,左手松开键盘,键盘的↑和↓箭头切换文档。所有命令可以跨文档执行,例如将文档B的信息复制黏贴到文档A内。

★查找替换

:100,500 s/Server/fuwuqi/g——将100行到500行之间所有的Server替换为fuwuqi,小写g的意思替换整行内容,没有小写g,一行中有4处可替换内容,只替换第一处,就换到下一行了。

:%   s/Server/fuwuqi/g——替换全文

:%   s/Server/fuwuqi/gc——交互式替换全文

 

 

第三章安装及管理程序

(1) 查询已安装的 RPM 软件信息

格式:rpm  -q[子选项]  [软件名]

rpm

-q:  查看软件包是否安装

        rpm–q  httpd

-qa:查看系统中已安装的所有RPM软件包列表

    rpm  -qa 

    rpm  -qa  |  wc  -l

    rpm  -qa  |  grep  httpd

 -qi:查看指定软件的详细信息

     rpm  -qi  httpd

      -ql:查询指定软件包所安装的目录、文件列表

          rpm  -ql  httpd

      -qc:仅显示指定软件包安装的配置文件

          rpm  -qc  httpd

      -qd:仅显示指定软件包安装的文档文件

          rpm  -qd  httpd

 

(2) 查询文件或目录属于哪个 RPM 软件

格式:   rpm  - qf  文件或目录名

Which   vim   /usr/bin/vim

rpm -qf /usr/bin/vim

 

(3) 查询未安装的 RPM 包文件

格式:  rpm  - qp[子选项]  rpm包文件

rpm

-qpi:通过.rpm包文件查看该软件的详细信息

    rpm  -qpi   tar-1.23-11.el6.x86_64.rpm

-qpl:查看.rpm安装包内所包含的目录、文件列表

    rpm  -qpl  tar-1.23-11.el6.x86_64.rpm

      -qpc:查看.rpm安装包内包含的配置文件列表

          rpm  -qpc   tar-1.23-11.el6.x86_64.rpm

-qpd:查看.rpm安装包内包含的文档文件列表

    rpm  -qpd   tar-1.23-11.el6.x86_64.rpm

 

(4) 安装或升级RPM软件

格式:  rpm  [选项]  rpm包文件 ...

选项

-i:安装一个新的 rpm 软件包

      -U:升级某个 rpm 软件,若原本未装,则进行安装

-F:更新某个 rpm 软件,若原本未装,则放弃安装

 

辅助选项

--force:强制安装所指定的rpm软件包

--nodeps:安装、升级或卸载软件时,忽略依赖关系

-h:以“#”号显示安装的进度

-v:显示安装过程中的详细信息

 

rpm常以组合的方式实现

rpm  -ivh   tar-1.23-11.el6.x86_64.rpm

rpm  -Uvh   tar-1.23-11.el6.x86_64.rpm

 

(5)卸载指定的RPM软件

格式:  rpm  -e  软件名

rpm  -e  tar   或   rpm  -e  net-tools

 

(6)建RPM数据库

     rpm --rebuilddb

rpm  --initdb

 

导入验证公钥

rpm  --import /media/cdrom/RPM-GPG-KEY-redhat-release

(7)完整性校验

md5sum校验工具 (计算MD5校验和,并与官方提供的值相比较,判断是否一致)

如:

md5sum tar-1.23-11.el6.x86_64.rpm

 

(8)查看源代码编译工具的版本信息

   gcc    --version

 make--version

 

(9)源代码软件包的编译安装

编译安装实验1

 

编译安装apache软件

service httpd start ------启动web服务

使用firefox打开127.0.0.1的页面看到了红色的欢迎页面

(这是rpm版的apache的欢迎页面)

卸载掉rpm版的apache软件

rpm  -e  httpd  --nodeps

然后准备用编译安装apache软件

1.把httpd.tar.gz源代码包拷贝到linux中

 

2.使用tar软件将包解压缩到规范目录——解包

tar zxf /root/httpd-2.2.15.tar.gz -C /usr/src/

 

3.使用configure定制编译安装的制定路径——配置

cd    /usr/src/httpd-2.2.15/——切换到源代码所在目录

./configure --prefix=/usr/local/httpd/——配置安装路径

 

4.将配置好的软件文件编译为二进制——编译

make

 

5.将编译好的二进制文件安装到系统指定路径

make install

 

6.验证安装成功

ls   /usr/local/httpd/有内容就是安装成功了

 

7.手动开启编译安装的httpd服务进程

/usr/local/httpd/bin/apachectl start

 

8.在firefox中再次访问127.0.0.1,看到It works就是成cd功了。

 

 

 

编译安装2

有打补丁过程的编译安装

把zhcon软件和补丁拽到linux的root目录,然后init 3,切换到纯命令行

1.解包

将安装文件解包到/usr/src目录

rar zxf /root/zhcon-0.2.5.tar.gz -C /usr/src

gunzip /root/zhcon-0.2.5-to-0.2.6.diff.gz

cp zhcon-0.2.5-to-0.2.6.diff /usr/src/

2.打补丁

cd   /usr/src/zhcon-0.2.5/——切换到安装包所在目录

patch -p1(p壹)  <  /usr/src/zhcon-0.2.5-to-0.2.6.diff——将升级补丁打进去

 

3.配置

./configure --prefix=/usr/local/zhcon

 

4.编译&&5.编译安装

make && make install

 

第四章账户管理和权限

1.useradd命令

格式:  useradd  [选项]...  用户名

useradd

-d:指定家目录,当不希望家目录在/home/xxx时候,修改家目录需要注意,管理员需要提前将用户家目录的上一级目录创建完成,家目录本身不要用mkdir创建,由useradd命令自动创建

例如希望创建lpc用户,家目录放到/benet/lpc中

(1)错误操作

mkdir /benet/lpc

useradd -d /benet/lpc   lpc

(2)正确操作

mkdir /benet/

useradd –d /benet/lpc   lpc

 

如:修改账户zhangsan家目录为/benet/s2t115源目录/home/zhangsan

usermod -d /benet/s2t115  zhangsan 告诉居委会我要搬家

mv  /home/zhangsan  /benet/s2t115  物理移动

grep zhangsan /etc/passwd查看是否搬家成功

 

-e:指定账户过期时间格式     -e   2017-11-11

如:useradd  -e 2020-11-11 lisi

 

-g:指定基本组名字或GID

如:useradd  –g  root  zhangsan

 

-G:指定附加组名字或GID(组需要提前创建好)

如:useradd -G root zhangsan

 

-M:创建用户时不初始化家目录(创建程序用户需要用)

如:useradd  -M  mysql

 

-s:指定用户登录系统时附加什么环境脚本常用的/bin/bash和/sbin/nologin(拒绝本地登录)

如:useradd -s /sbin/nologin  mysql

 

如:创建lisi,指定uid号555,家目录位于/benet/lisi,账户在2020-11-11过期

mkdir /benet先创建目录

useradd -u 555 -d /benet/lisi -e 2020-11-11 lisi

ls -a /benet/lisi

 

如:指定mike的基本组为mike,并加入到ftpuser组,指定主目录为/ftphome/mike

不允许mike通过本地登录服务器

注:对应的基本组、附加组必须存在

useradd -d /ftphome/mike -g mike -G ftpuser -s /sbin/nologin mike

 

2.  passwd命令

    (设置用户账户的密码,允许空密码登录,禁用,启用)

格式 :  passwd  [选项]...  用户名

Passwd

 

- d:允许空密码登录(默认shadow文件中密码位置为!!,密码位置有!!开头,!开头,*开头均为该账户是禁用的)

- l:禁用账户

- u:启用账户

- S:查看账户状态是禁用还是启用

 

设定密码的方式

Passwd zhangsan

输入密码 123.com

确认输入密码 123.com

修改成功

 

 

 3.usermod命令

(修改用户属性(useradd只能用户新建用户,后期修改用户属性需要用到这个命令)

 

格式:  usermod  [选项]...  用户名

usermod :

-l:更改用户帐号的登录名称

-L:锁定用户账户

-U:解锁用户账户

-d  -e  -g  -G-s跟useradd效果一样,用于修改用户属性

如:   修改zhangsan的UID为1983

usermod -u 1983 zhangsan

 

 

4.userdel命令

格式:   userdel  [-r]  用户名

(添加 -r 选项时,表示连用户的宿主目录一并删除)

userdel

-r 杀人+抄家

如:userdel  -r  zhangsan

ls -ld /home/zhangsan

ls: /homezhangsan: 没有那个文件或目录

 

 

 

5. groupadd命令

格式 : groupadd  [-g GID]  组账号名

用户组的相关内容

查看组中有哪些用户,查看/etc/group文件

新建组

groupadd -g GID  组名

如:  groupadd -g 1500 s2t115

 

用户加入组的方式

(1)首次用户加入组

gpasswd -M 用户1,用户2,用户3 组名

 

(2)后期用户加入组

gpasswd -a用户名组名

 

注意 :-M不能代替-a

-a:用户“加入”组!不会影响组内以后成员

-M:更新组成员列表,写谁谁在组里,没写的反而会被踢出组

 

(3)用户加入的组的各种方法:

 

先有用户再有组:

useradd  zhangsan  lisi  wangwu

groupadd -g 1500 s2t115

 

方法1

gpasswd  -M zhangsan ,lisi,wangwu

方法2

gpasswd  -a zhangsan

gpasswd  -a lisi

gpasswd  -a wangwu

方法3

usermod  -G  s2t115  zhangsan

usermod  -G  s2t115  lisi

usermod  -G  s2t115  wangwu

 

先有组再有用户:

groupadd -g  1500 s2t115

useradd  -G  1500  zhangsan

useradd  -G  1500  lisi

useradd  -G  1500  wangwu

 

6. gpasswd命令

(设置组帐号密码(极少用)、添加/删除组成员)

格式:  gpasswd  [选项]...  组帐号名

 

如:删除组成员zhangsan

gpasswd -d  zhangsan   root

 

 

 

7. groupdel命令

格式:groupdel  组帐号名

 

如:groupdel   lpc

 

8.查询账号信息

id命令

用途:查询用户身份标识

id  [用户名]

 

groups命令

用途:查询用户所属的组

groups  [用户名]

 

users、w 、who命令

用途:查询已登录到主机的用户信息

 

 

9.修改权限的方法

方法1

chmod ugoa+-=rwx 目标对象

u:修改属主权限

g:修改属组权限

o:修改其他权限

a:修改所有对象权限

+:增加权限

-:去掉权限

=:刷新权限列表

r,w,x代表3个权限

 

例如原始文件属性如下

-   rw-   r--   r--. 1    root    root     69K 7月   7 2015 install.log

例句

chmod u+x /root/install.log

结果

-   rwx   r--   r--. 1    root    root     69K 7月   7 2015 install.log

例句

chmod g+wx /root/install.log

结果

-   rwx   rwx   r--. 1    root    root     69K 7月   7 2015 install.log

例句

chmod o-r /root/install.log

结果

-   rwx   rwx   ---. 1    root    root     69K 7月   7 2015 install.log

例句

chmod a=r /root/install.log

结果

-   r--   r--   r--. 1    root    root     69K 7月   7 2015 install.log

 

方法2

用8进制数来表示3个权限

r:4

w:2

x:1

chmod nnn 对象目标

第一个n:属主权限

第二个n:属组权限

第三个n:其他权限

 

例如原始文件属性如下

-   rw-   r--   r--. 1    root    root     69K 7月   7 2015 install.log

例句

chmod 750 /root/install.log

结果

-   rwx   r-x   ---. 1    root    root     69K 7月   7 2015 install.log

例句

chmod 764 /root/install.log

结果

-   rwx   rw-   r--. 1    root    root     69K 7月   7 2015 install.log

例句

chmod 777 /root/install.log

结果

-   rwx   rwx   rwx. 1    root    root     69K 7月   7 2015 install.log

 

 

 

10.修改对象的属主和属组

chown 主:组对象

chown 主对象

chown :组对象

 

-R递归修改指定目录下所有文件、子目录的归属

chmod和chown都可以使用这个选项,代表同时修改子对象权限(类似windows的强制继承)

 

-   rwx   rwx   rwx. 1    root    root     69K 7月   7 2015 install.log

 

chown zhangsan:lisi /root/install.log

-   rwx   rwx   rwx. 1    zhangsan    lisi     69K 7月   7 2015 install.log

 

chown :lisi /root/install.log

-   rwx   rwx   rwx. 1    root    lisi     69K 7月   7 2015 install.log

 

chown zhangsan /root/install.log

-   rwx   rwx   rwx. 1    zhangsan   root     69K 7月   7 2015 install.log

 

第五章磁盘和文件系统管理(一)

 

fdisk命令:

1.fdisk  -l查看所有的磁盘分区信息

2.fdisk  -l[磁盘设备]查看一块磁盘的分区信息

如: fdisk  - l  /dev/sdb      查看SCSI的第二块磁盘

3. fdisk命令在交互式的操作环境中管理磁盘分区

格式:fdisk    [磁盘设备]

m:查看操作指令的帮助信息

p:列表查看分区信息

n:新建分区

d:删除分区

t:变更分区类型(修改ID号)

 

如:fdisk /dev/sdb

t  →1(/dev/sdb1分区号)→b(ID)→w    

修改兼容Windows的分区ID号(fat32

 

t →3(/dev/sdb3分区号)→86(ID)→w

修改兼容Windows的分区的ID号(NTFS

 

→2(/dev/sdb2分区号)→82(ID)→w

修改swap交换分区的ID号(Linux

 

→2(/dev/sdb2分区号)→83(ID)→w

修改ext4分区的ID号(Linux

 

w:保存分区设置并退出

q:放弃分区设置并退出

 

如:一块1G的硬盘,分一个100M的主分区,再分一个200M的主分区,分一个700M的扩展分区,在扩展分区中分一个200M的逻辑分区,再把剩余空间分到另一个逻辑分区。

 

分区的过程:

fdisk /dev/sdb

n→p→1→回车→+100M回车

n→p→2→回车→+200M回车

n→e→3→回车→回车

n→l→回车→+200M回车

n→l→回车→回车

w保存退出

 

4.创建文件系统

mkfs命令Make Filesystem,创建文件系统(格式化)

 

格式:mkfs  -t  文件系统类型分区设备

 

(1ls  /sbin/mkfs*查询与mkfs相关的文件

 

/sbin/mkfs     /sbin/mkfs.ext2     /sbin/mkfs.msdos

/sbin/mkfs.cramfs     /sbin/mkfs.ext3    /sbin/mkfs.vfat

 

(2)创建ext4文件系统(格式化ext4文件系统makefilesystem

如:mkfs -t ext4 /dev/sdb1

或:mkfs.ext4 /dev/sdb1

 

3创建fat32文件系统  (格式化为fat32文件系统)

如:mkfs -t vfat -F 32 /dev/sdb2

或:mkfs.vfat -F 32 /dev/sdb2

 

4)创建swap交换文件系统(格式化swap文件系统

mkswap 命令(make swap

格式:mkswap分区设备

如: mkswap /dev/sdb5格式化swap文件系统

 

swapon /dev/sdb5启用新增加的交换分区

 

swapoff/dev/sdb5停用指定的交换分区

 

grep Swap /proc/meminfo查看swap文件系统的摘要信息

 

5.挂载、卸载文件系统

mount命令挂载文件系统、ISO镜像到指定文件夹

格式:mount    存储设备挂载点目录

 

1.普通挂载

如:将sdb1和sdb6分别挂载到wendang和dianying目录

mkdir /wendang /dianying创建挂载目录

 

mount /dev/sdb1 /wendang/

将/dev/sdb1挂载到/wendang/目录下

 

mount /dev/sdb6 /dianying/

将/dev/sdb6挂载到/dianying/目录下

 

       2.光盘挂载

挂载的另外用途:

(设备在没有自动挂载的情况下,也需要mount命令才可以

访问他们,例如光驱)

 

mkdir   /media/cdrom创建光盘的挂载目录

mount /dev/cdrom /media/cdrom

挂载光盘设备/dev/cdrom/到/media/cdrom/下

 

3. 挂载直接下载的ISO镜像文件

格式:mount  -o loop  ISO镜像文件挂载点目录

如:

mkdir /media/image创建挂载目录

mount -o loop /root/JINHU-SYSTOOL-2012.ISO /media/image

 

      4. mount查看挂载情况

 

 

6.  umount命令卸载已挂载的文件系统

格式:(1)umount  存储设备位置

如: umount   /dev/sdb1     通过设备文件卸载

 

(2)umount  挂载点目录 (经常使用)

如:umount  /benet/s2t115    通过挂载目录卸载

 

7. 设置文件系统的自动挂载

mount的配置文件在/etc/fstab ,包含需要开机后自动挂载的文件系统记录

cat  /etc/fstab       查看配置文件的内容

vim  /etc/fstab用vim编辑器编辑配置文件

 

永久挂载文件系统的方法:(只要开机自动挂载)

修改/etc/fstab文件,在最下面一行输入如下信息

vim  /etc/fstab

 

挂在设备    挂载目录文件系统类型  属性自检和自动备份控制位

/dev/sdb1 /wendang   ext4              defaults  0 0

/dev/sdb6 /dianying    ext4              defaults 00

 

如:用vim进入配置文件,然后按照上边格式在最后一行进行编辑即可

 

8. 查看磁盘使用情况

df命令

格式:df  [选项]  [文件]

如:df -hT——查看各个分区的磁盘占用情况

 

df -hT  |  grep  sdb1 ——过滤一个分区的磁盘占用情况

 

mount ——查看所有挂载信息

 

 

第六章磁盘和文件系统管理(二)

 

1.建立PV与PV的查询

PV

Pvcreate: 将物理分区建成PV

格式:pvcreate   磁盘分区

如:pvcreate /dev/sdb1 /dev/sdc1

 

Pvscan:搜索当前系统里任何具有PV的磁盘

如: pvscan  

Pvdisplay:显示当前系统的PV状态

如: pvdisplay 

Pvremove:将PV属性删除,让该分区不具有PV属性

如:pvremove /dev/sdb1

 

2.开始创建VG

vgcreate: 建立VG

如:vgcreate   s2t115vg /dev/sdb1 /dev/sdc1

 

vgscan:搜索系统上面是否有VG存在

如:vgscan

 

vgdisplay:显示当前系统上的VG状态

如:vgdisplay

 

vgextend:在VG内增加额外的pv

格式:vgextend   vg名称   pv名称

如:vgextend   s2t115vg  /dev/sdd1

 

vgreduce:在VG中删除pv

格式:vgreduce   vg名称    pv1名称…

如:vgreduce s2t115vg /dev/sdb1

 

vgremove:删除一个VG

如:vgremove s2t115vg

 

3.与lv相关的命令

(注意:卷组完整名称是/dev/卷组名/逻辑卷名)

lvcreate: 建立lv

格式:lvcreate  -l    PE数量  -n  逻辑卷名卷组名

如:lvcreate  -l   500  -n  lpclv    s2t115vg

lvcreate   -L   容量  -n  逻辑卷名卷组名

如:lvcreate   -L  100M  -n  lpclv   s2t115vg

 

lvscan:查询系统上的lv

如:lvscan

lvdisplay:显示系统上的lv状态

如: lvdisplay

lvresize:在lv里增加容量

格式:lvresize  -L  空间大小/dev/卷组名/逻辑卷名

如:lvresize  -L  +1024M  /dev/t115vg/t115lv

     lvresize  -L  PE数量/dev/卷组名/逻辑卷名

lvresize  -l  +500  /dev/t115vg/t115lv

 

lvreduce:在lv里减少容量

如:格式:lvreduce  -L  空间大小/dev/卷组名/逻辑卷名

如: lvreduce  -L  -1024M  /dev/t115vg/t115lv

     lvreduce  -L  PE数量/dev/卷组名/逻辑卷名

lvreduce  -l  -500  /dev/t115vg/t115lv

 

lvremove:删除一个lv

如:lvremove   lpclv

 

4.刷新lv的分区容量

       格式:resize2fs  -f   /dev/卷组名/逻辑卷名

       选项     -f 强制进行resize操作       

如:resize2fs /dev/s2t115vg/lpclv

 

5.完整的实验

一 . 新建lvm 逻辑卷

(物理磁盘→pv阶段→vg阶段→lv阶段→格式化→挂载)

1创建分区

格式:fdisk  磁盘

如: fdisk  /dev/sdb

 n—p—1—回车—回车     //将一块磁盘创建一个分区

 

更改分区ID值为lvm

格式: fdisk   磁盘

如: fdisk  /dev/sdb

     t—8e—w

 

2pv阶段(将物理分区转为物理卷)

pvcreate /dev/sdb1 /dev/sdc1

pvscan

3vg阶段(将物理卷整合为一个卷组)

vgcreate   s2t115vg /dev/sdb1 /dev/sdc1

vgdisplay

 

4 lv阶段(在卷组中设置逻辑卷)

lvcreate -l 500 -n  lpclvs2t115vg 

lvdisplay

 

5格式化(将逻辑卷格式化创建文件系统)

mkfs   -t/dev/s2t115vg/lpclv

 

6挂载(将创建好的逻辑卷进行挂载)

mkdir /ftproot

mount /dev/t115vg/t115lv /ftproot

 

 

.扩展逻辑卷

 

1将扩展硬盘分区,修改ID号为8e

2pv阶段

3vg扩展阶段

vgextend  t115vg  /dev/sdd1

4lv扩展阶段

lvresize  -L  +1024M  /dev/s2t115vg/lpclv

lvresize  -l  +500  /dev/s2t115vg/lpclv

5刷新lv的分区容量

resize2fs /dev/s2t115vg/lpclv

 

 

6.磁盘配额

1让你的磁盘分区支持配额

(添加 usrquota、grpquota 挂载参数)

1)已经挂载分区,且不想重启系统

mount -o remount,usrquota,grpquota /dev/t115vg/t115lv /ftproot

2)之前没有挂载,不想重启系统

mount -o usrquota,grpquota /dev/t115vg/t115lv /ftproot

3)永久挂载支持配额,重启生效

vim /etc/fstab

在defaults变成defaults,usrquota,grpquota

4)验证

mount | grep /ftproot

看到(rw,usrquota,grpquota)即可

2)在支持配额的分区下生成配额表文件

(使用 quotacheck 命令创建配额文件)

格式:quotacheck -ugcv /dev/t115vg/t115lv

没有指定–a 时,必须指定一个分区

           quotacheck -augcv

选项:

-u、-g:检测用户、组配额

-c:创建配额数据文件

-v:显示执行过程信息

-a:检测所有可用的分区

如:quotacheck -augcv

验证:

ls /ftproot/看到两个配额表文件即可

 

3创建测试用户,修改目录权限

Useradd zhangsan

passwd zhangsan

chmod 777 /ftproot

 

4编辑用户和组帐号的配额设置

格式:edquota -u 用户名

         edquota-g 组名

如:为用户zhangsan编辑配额表

edquota -u zhangsan

会进入一个vi编辑器

 

5启用、关闭文件系统的配额功能

quotaon -ugv /ftproot/     //启用

quotaoff-ugv /ftproot/     //关闭

6验证配额功能

切换张三用户,去目录创建6个文件

su -l zhangsan

cd /ftproot/

touch 11 22 33 44 55

touch 66

 

7查看配额使用情况

quota -u zhangsan

//以zhangsan用户为基础,查看zhangsan在各个分区的配额情况

repquota–a

//以分区为基础,查看这个分区上各个用户的配额情况

 

第七章进程个计划任务管理

 

1.查看进程信息

1 ps 查看静态的进程统计信息

格式:  ps aux

ps -elf

选项:显示当前终端下的所有进程信息,包括其他用户信息

以用户为主的格式显示进程信息

显示当前用户在所有终端下的进程信息

 

2top命令查看动态的进程排名信息

格式:top

 

top界面中的相关操作:

P  cpu占用情况排序

M  内存占用情况排序

     q   退出

     K   输入PID ,回车可以结束进程

 

3pgrep命令专门查询进程 PID 信息

格式:pgrep -l 进程名

选项:-l显示进程名

如: pgrep   -l   crond

-U   指定特定用户

-t   指定终端

如:pgrep -l -U teacher -t tty1

 

 

4pstree命令以树形结构列出进程信息

格式:pstree -aup

pstree -ap    zhangsan

选项:-a显示完整信息

-u列出对应用户名

-p列出对应PID号

 

 

5后台启动:在命令行尾加入“&”符号

如:cp /dev/cdrom   /lpc.iso&

 

2.进程的前后台调度

(1)Ctrl+Z 组合键

将当前进程挂起,即调入后台并停止执行

 

(2)jobs   -l   

查看处于后台的任务列表

 

(3)fg  1(后台编号)

将后台进程恢复到前台运行,可指定任务序号

 

(4)bg  1(后台编号)

将后台编号所属的挂起的进程继续在后台执行

 

3.终止进程的运行

1Ctrl+C 组合键

中断正在执行的命令

 

2killkillall 命令

kill        用于终止指定PID号的进程

killall      用于终止指定名称的所有进程

选项: -9   用于强制终止

如: pgrep -l   crond

kill  -9  2869

killall -9 vim

 

3pkill命令根据特定条件终止相应的进程

选项:-U     根据进程所属的用户名终止相应进程

          -t   

  根据进程所在的终端终止相应进程

如:pgrep –l -U   zhangsan

 pkill -9  -U   zhangsan

 

 

4一次性计划任务

at命令

格式:  at 14:55 2014-05-05

          at>输入要执行的命令

按Ctrl+D键提交任务

 

atq

查看未执行的任务列表

 

atrm 2任务序列号

删除第2条任务

 

 

5 周期性计划任务

crontab 命令

(如果是root用户给其他用户设置计划任务是可以用-u指定用户名)

(1)编辑计划任务

crontab  -e  [-u  用户名]

 

 

(2)查看计划任务

crontab  -I  [-u  用户名]

 

 

(3)删除计划任务

crontab  -r  [-u  用户名]

 

(4)编辑任务表是的特殊符号:

 

 

*     表示该范围内的任意时间

表示间隔的多个不连续时间点

_ 表示一个连续的时间范围

/     指定间隔的时间频率

应用示例

0  17  * *  1-5        周一到周五每天17:00

30  8  * *  1,3,5      每周一、三、五的8点30分

0  8-18/2  *  *  * 8点到18点之间每2小时

0  *  */3  *  *        每3天

 

注:在设置命令的时候,要先用which查出命令字的绝对路径来,然后在表里以绝对路径加命令语句进行设置

第八章分析和排查系统故障

 

1.日志消息级别

0   emerg         (紧急)   会导致主机系统不可用的情况

1   alert         (警告)必须马上采取措施来解决

2   crit           (严重)  比较严重的情况

3   err            (错误)  运行出现的错误

4   warning       (提醒)  可能会影响系统功能

5   notlce         (注意)  不会影响系统但值得注意

6   info           (信息)   一般信息

7   debug         (调试)  程序或系统调试信息

 

2.用户日志的分析工具

 

user       who      w      显示当前登录的用户信息

 

last      显示登陆成功的用户信息

 

lastb    显示登陆失败的用户信息

 

3.程序日志的分=分析工具

 

grep      awk      sed        检索三剑客

 

 

4.修复MBR 扇区故障

 

(1)新加一块硬盘

分区:n——p——1——回车——回车

格式化: mkfs   -t   ext4   /dev/sdb1

创建挂载目录: mkdir   /benet

挂载: mount    /dev/sdb1   /benet

 

(2)备份MBR扇区数据

dd   if=/dev/sda    of=/benet/sda.mbr.bak  bs=512    count=1

 

 

(3)模拟扇区故障

dd    if=/dev/zero    of=/dev/sda   bs=512   count=1

 

(4)链接镜像,将镜像挂到指定位置,然后重新启动(reboot)

虚拟机——设置——CD/CVD(SATA)——已连接——浏览添加镜像

重启reboot

 

(5)重新启动后进入急救模式,用光盘里的系统加入内存,然后启动修复MBR

 

Rescue  installed  system——ok——ok——no——coutinue——ok——ok——bash-4.1#

(6)重新启动后,以前磁盘上的东西都没有了,包括挂载目录也没有了。

 

(7)创建一个新的挂载目录,/s2t115  重新挂载

     mkdir  /s2t115

     mount  /dev/sdb1   /s2t115

     ls

(8)恢复MBR扇区

 

dd   if=/s2t115/sda.mbr.bak    of=/dev/sda   bs=512    count=1

 

(9)重启

 

 

5. 修复GRUB引导故障

 

(1) cat   /boot/grub/grub.conf

 

(2)查看到内容的最后三行,做备份(每台计算机的都不一样),重新启动

root (hd0,0)

 

kernel /vmlinuz-2.6.32-431.el6.x86_64 ro root=UUID=1f87848f-b307-4130-ac6c-b272545bddab rd_NO_LUKS  KEYBOARDTYPE=pc KEYTABLE=us rd_NO_MD crashkernel=auto LANG=zh_CN.UTF-8 rd_NO_LVM rd_NO_DM rhgb quiet

 

       initrd /initramfs-2.6.32-431.el6.x86_64.img

 

(3)将备份的三行文本分三次输入并执行,然后输入boot继续引导,

 

boot 继续引导

 

 

6.修改root用户的密码

 

在重启的界面按任何键进入急救模式,然后按e  ,选中第二行继续按e  ,接着在打开的界面输入single  或  s   或  1 ,然后输入b, 进入单用户模式, 最后输入passwd   root  ,设置密码重新启动即可

 

 

7.修改文件系统

 

(1)模拟破坏/dev/sda /磁盘分区, 然后重新启动

dd   if=/dev/zero   of=/dev/sdb   bs=512   count=4

 

(2)检测能否挂载该分区,挂载失败

mkdir   /benet

mount    /dev/sdb1     /benet

 

(4)对  /dev/sda   分区进行修复

 

fsck    -y    -t   ext4    /dev/sdb1 

 

(5)再次挂载,可以了

mount  /dev/sdb1   /benet

 

 

8. 查看  i 节点耗尽

 

df    -i     /挂载目录

 

9.检测磁盘坏道

 

badblocks   -sv     /dev/sdb 

-s    显示进度信息

-v   显示详情

 

10. /dev/zero      -----白洞里面存放的都是垃圾

/dev/mull     ------黑洞到黑洞的东西都会消失,可以粉碎文件用

第九章   Linux基础网络设置

 

  1. ifconfig命令

 

(1)ifconfig

格式:ifconfig 查看所有活动网络接口

ifconfig网络接口名(eth0)查看一块网卡的的信息

 

(2)ifconfig设置网络接口的ip地址、子网掩码

格式: 1.ifconfig  eth0   192.168.3.1

 

2.ifconfig  接口名ip地址netmask  子网掩码

如:ifconfig  eth0   192.168.3.1  netmask  255.255.255.0

 

3.ifconfig  网络接口  ip地址/掩码长度

如:ifconfig  eth0   192.168.3.1/24

 

(3)ifconfig      设置虚拟网络接口

 

格式:ifconfig  接口名:序号  IP地址

如: ifconfig   eth0:1   192.168.3.1

           ifconfig   eth0:2   192.168.3.2

 

(4)ifconfig      禁用或者重新激活网卡

 

格式:  ifconfig  网络接口  up

ifconfig  网络接口  down

 

如: ifconfig   eth0  up

          ifconfig   eth0  down

 

(5)禁用、启用网络接口

 

          ifup   eth0      启用

          ifdown   eth0   禁用

 

 

  2. hostname命令

 

hostname查看或设置当前主机名

hostname 主机名称修改主机名

bash刷新bash环境

 

  3. netstat查看系统的网络连接状态、路由表、接口统计等信息

 

格式:netstat [选项]

选项:

-a:显示所有活动连接

-n:以数字形式显示

-p:显示进程信息

-t:查看 TCP 协议相关信息

-u:查看UDP协议相关信息

-r:显示路由表信息

 

如:netstat -anpu | grep  ":67"

netstat -anpt    | grep 

 

 

  4.ping 测试网络连通性

 

格式:ping [选项] 目标主机

选项:

-s 数据包大小

      -f 极限测试

-i 发送周期

 -c 数据包个数

 

  5.route命令

 

(1)route查看路由表条目

(2)route—n   查看或设置主机中路由表信息

 

(3)route  添加和删除静态的路由条目

 

      route  add  -net  目标网段  gw   下一跳IP

如: route  add  -net   192.168.3.0/24  gw   192.168.4.254

      route  add  -net  目标网段

如:route  del   -net   192.168.3.0/24

 

(4)添加和删除网关

 

route  eth0  default  gw   192.168.1.254

route  eth0  default  gw   192.168.1.254

 

 

 6.traceroute路由跟踪

测试从当前主机到目的主机之间经过的网络节点

 

格式:traceroute 目标主机地址

如:traceroute   202.106.0.20

 

 

 7.nslookup测试DNS域名解析

 

格式 : nslookup 目标主机地址  DNS服务器地址

 

如:nslookupwww.google.com

或: nslookup  192.168.1.1

或:nslookupwww.baidu.com  8.8.8.8

让谷歌解析百度的IP

 

 

 8. 网络接口配置文件IP  子网掩码网关   DNS)

(1)vim /etc/sysconfig/network-scripts/ifcfg-eth0

 

DEVICE——设备名

BOOTPROTO ——IP地址的获取方式(静态static或者dhcp)

HWADDR ——MAC地址

ONBOOT ——开机启动

IPADDR ——IP地址

NETMASK-----子网掩码

BROADCAST-----广播地址

NETWORK-------网段

GATEWAY-----网关

DNS1=首选dns

: wq

2)重启服务生效

 

service network restart

 

9.主机名称配置文件设置主机名)

 

vim   /etc/sysconfig/network

 

NETWORKING=yes

HOSTNAME=www.benet.com

 

 

10 .域名解析配置文件保存本机使用的DNS服务器的IP

 

vim/etc/resolv.conf

 

search localdomain

nameserver 202.106.0.20

nameserver 202.106.148.1

 

 

 11.DHCP的主配置文件

 

(1) vim  /etc/dhcp/dhcpd.conf

 

subnet 192.168.3.0netmask 255.255.255.0{

range192.168.3.100 192.168.3.200;

option domain-name-servers 202.106.0.20;

option domain-name "internal.example.org";

option routers192.168.3.254;

option broadcast-address 192.168.3.255;

default-lease-time 600;

max-lease-time 7200;

}

 

dhcp服务的重启

service  dhcpd  restart

或/etc/rc.d/init.d/dhcpd restart

 

 

(2)保留

vim  /etc/dhcp/dhcpd.conf

host  lpc {保留的名称

    hardware ethernet 00:c0:c3:22:46:81;指定对应主机的 MAC 地址

    fixed-address192.168.3.250;指定为该主机保留的 IP 地址

}

 

dhcp服务的重启

service  dhcpd  restart

或/etc/rc.d/init.d/dhcpd restart

 

 

 12.查看DHCP服务器的租约文件 /var/lib/dhcpd/dhcpd.lease

 

less /var/lib/dhcpd/dhcpd.leases

 

 13.客户端获取和释放IP

 

首先将网卡的配置文件改为自动获取(dhcp)

dhclient   

为除了回环接口以外的所有接口获取ip,自动调动后台运行

 

dhclient  -d  eth0

   -d   在前台运行

 

dhclient  -d  eth0 

 -r    释放IP

第十章  Samba文件共享服务

 

1.netstat  -anput   |  grep  smb     ——监听smb服务是否开启

 

2.grep  -v  #  /etc/samba/smb.conf    |  grep  -v  ^;   |

 grep  -v  ^$

——查看smb.conf 配置文件中的有效字段

 

3.testparm   ——检索smb.conf配置文件的正确性

 

4.实验:

 

实验一【可匿名访问的共享】

现在需要将/benet/目录进行共享,要求每个人都可以只读形式访问。

 

实验步骤:

 

前期准备

(1)首先配置配置IP地址,

ifconfig  eth0 192.168.3.1

ifconfig

(2)挂载镜像,

mkdir   /media/cdrom

mount  /dev/cdrom  /media/cdrom

(3)然后安装samba 主软件包

cd /media/ cdrom

RHEL_6.5\ x86_64\ Disc\ 1/Packages/

 

rpm -ivh samba-3.6.9-164.el6.x86_64.rpm

 

(4)创建共享目录

mkdir  /benet/

touch /benet/1.txt /benet/2.txt

 

正式开始:

 

  1. 在全局配置中将访问安全级别改为share

vim /etc/samba/smb.conf

 

[global]——全局配置

security =share——共享级别

        passdb backend = tdbsam——共享账户文件的类型

 

2.在配置文件最底端输入

 

[benet-share]——共享名

path=/benet/——共享目录的本地路径

public=yes或者guest ok=yes      ——是否所有人可以访问

read only=yes或者writable=yes    ­——是否拥有写入权限

:wq——保存退出

 

 

3.重启服务

service smb start

service nmb start

 

4.验证

 

 

实验二【需用户验证的访问共享】

我们将/zhang/目录共享,要求zhangsan用户和lisi用户以及root组都可以访问,并且zhangsan用户和root组可以写入

 

实验步骤:

  1. 设置IP地址,挂载镜像,安装samba 主软件包,创建账户,创建目录,修改目录权限777

ifconfig  eth0 192.168.3.1——设置临时IP

ifconfig——查看IP

 

mkdir   /media/cdrom——创建挂载点

mount  /dev/cdrom  /media/cdrom

——挂载镜像

 

cd /media/ cdrom/RHEL_6.5\ x86_64\ Disc\ 1/Packages/

——切换目录

rpm -ivh samba-3.6.9-164.el6.x86_64.rpm

——安装软件包

 

useradd zhangsan

useradd lisi

useradd wangwu——创建账户

gpasswd -a wangwu root——用户加入组

 

mkdir /zhang­——创建目录

chmod 777 /zhang——修改目录权限

 

 

  1. 修改samba主配置文件,将访问安全级别改为user,并且在最低端输入

vim /etc/samba/smb.conf

[global]——全局配置

security =share——共享级别

        passdb backend = tdbsam——共享账户文件的类型

 

 

 

[Z]——共享名

path=/zhang/——共享目录的本地路径

public=no——是否所有人可以访问

read only=yes——是否拥有写入权限

valid users=zhangsan,lisi,@root——哪些人可以访问

write list=zhangsan,@root——哪些人可以写入

 

 

  1. 将用来测试的系统用户添加为samba用户,拥有区别与系统密码的samba专属密码。

 

(1)pdbedit  -a  -u  zhangsan

——将zhansan用户添加为samba用户

pdbedit  -a  -u  lisi

——从samba用户中添加lisi用户

pdbedit  -a  -u  wangwu

——从samba用户中添加wangwu用户

 

(2)pdbedit -L  ——列出所有Samba用户

 

(3)pdbedit -vL   zhangsan——显示vina用户的详细信息

 

(4)pdbedit  -x  -u  zhangsan  ——删除共享用户zhangsan

 

4.重启服务

service smb restart

service nmb restart

 

5.用客户机访问samba验证权限

客户机配置:

同网段IP,网络适配器一个LAN区段,UNC路径访问,如:\\192.168.3.1

 

 

 

实验三【需用户验证的访问共享——综合实验】

 

实验需求:

公司有技术部,财务部,销售部,经理,4个部门目录需要共享,共享权限要求如下:

 

  1. 经理和管理员可以通过网络任意修改这些目录

 

  1. 技术部员工只能读取技术部信息,技术部主管可以修改技术部信息,并且技术部所有人都可以只读访问销售部信息

 

 

  1. 财务部员工只能读取财务部信息,财务部主管可以修改财务部信息

 

  1. 销售部员工只能读取销售部信息,销售部主管可以修改销售部信息,并且销售部所有人都可以只读访问技术部信息

 

 

  1. 经理的信息只有经理和管理员可以完全控制,其他人无权限。

 

6.权限分配图:

 

 

实验步骤:

 

前期准备:

 

1)首先配置配置IP地址,

ifconfig  eth0 192.168.3.1

ifconfig

(2)挂载镜像,

mkdir   /media/cdrom

mount  /dev/cdrom  /media/cdrom

(3)然后安装samba 主软件包

cd /media/ cdrom

RHEL_6.5\ x86_64\ Disc\ 1/Packages/

 

rpm -ivh samba-3.6.9-164.el6.x86_64.rpm

 

 

1.创建组,组里添加用户

groupadd -g 1500 jishuzu

groupadd xiaoshouzu

groupadd caiwuzu——创建组

tail -3 /etc/group——查看组

 

useradd -G jishuzu js01

useradd -G jishuzu jszg

useradd -G caiwuzu cw01

useradd -G caiwuzu cwzg

useradd -G xiaoshouzu xs01

useradd -G xiaoshouzu xszg——组里添加用户

 

useradd jingli——创建用户

 

 

  1. 创建每个组的共享目录,并且设置权限

mkdir /jishubu /caiwubu /xiaoshoubu/jingli

——创建共享目录

ls /——查看创建的目录

 

chmod777 /xiaoshoubu/ /caiwubu/ /jishubu/ /jingli/

——给共享目录设置权限

ll /——查看设置的权限

 

 

  1. 编辑samba配置文件

vim /etc/samba/smb.conf

——编辑Samba的配置文件

 

[global]——全局配置

 

security =user——共享级别

        passdb backend = tdbsam——共享账户文件的类型

 

 

[js]——共享名

path=/jishubu/——共享目录的本地路径

public=no                                        ——是否所有人可以访问

read only=yes——是否拥有写入权限

valid users=@jishuzu,@xiaoshouzu,jingli,root——哪些人可以访问

write list=jszg,jingli,root——哪些人可以写入

[cw]

path=/caiwubu/

public=no

read only=yes

valid users=@caiwuzu,jingli,root

write list=cwzg,jingli,root

[xs]

path=/xiaoshoubu/

public=no

read only=yes

valid users=@jishuzu,@xiaoshouzu,jingli,root

write list=xszg,root,jingli

[jingli]

path=/jingli/

public=no

read only=yes

valid users=root,jingli

write list=root,jingli

 

 

  1. 重新启动服务

service smb restart

service nmb restart

 

 

  1. 将用来测试的系统用户添加为samba用户,拥有区别与系统密码的samba专属密码

 

pdbedit -a -u jingli——添加系统用户为Samba用户

new password:——设置Samba专属密码

retype new password:

 

pdbedit -a -u js01

new password:

retype new password:

 

pdbedit -a -u jszg

new password:

retype new password:

 

pdbedit -a -u cw01

new password:

retype new password:

 

pdbedit -a -u cwzg

new password:

retype new password:

 

pdbedit -a -u xs01

new password:

retype new password:

 

pdbedit -a -u xszg

new password:

retype new password:

 

pdbedit -a -u root

new password:

retype new password:

 

 

  1. 然后去客户机验证,按照上边的权限表进行验证

net  use  * /del   ——断开连接

 

客户机配置:

同网段IP,网络适配器一个LAN区段,UNC路径访问,如:\\192.168.3.1

 

 

 

实验四【用户映射——别名】

 

1.修改/etc/samba/smbusers

格式:真名 =别名别名

 

jingli=ergou haha

 

2.修改/etc/samba/smb.conf,在全局配置下添加

 

[global]——全局配置

username map=/etc/samba/smbusers——别名地址

 

3. 重新启动服务

service smb restart

service nmb restart

 

4.客户机验证

 

 

 

实验五【主机地址访问限制】

 

主机访问过滤

  1. 在全局配置下添加
  2.  

[global]——全局配置

hosts allow=192.168.3.1   192.168.3.2   192.168.3.23

——仅允许

或者:

hosts deny=192.168.3.1

——仅拒绝

 

 

 

实验六使用smbclient访问共享文件夹

 

 

smbclient   -L   192.168.3.1/目标主机名   -U  

——查询目标主机的共享资源

 

smbclient  //192.168.3.1/benet/       

——登录并访问共享文件夹(匿名)

 

smbclient  -U   zhangsan  //192.168.3.1/benet/   -U   lisi

——登录并访问共享文件夹(需验证的共享)

 

smb:\> ls   ——查看列表

       pwd   ——查看当前路径

 get或   mget ——上传

put   或 mput——下载

?或help——在线帮助

quit——退出

 

 

 

实验七使用mount 挂载共享目录

 

mkdir   /media/smbguazai

——创建挂载目录

mount  -o  username=zhangsan  //192.168.3.1/benet/   /media/smbguazai

——挂载

 

第十一章   FTP 文件传输服务

 

 

实验一

匿名访问:

要求:开启匿名访问,并且开启某文件夹的写入权限

1.设置IP地址,挂载镜像,安装vsftpd服务(软件包)

vim /etc/sysconfig/network-scripts/ifcfg-eth0

或者:ifconfig  eth0  192.168.3.1

 

mkdir   /media/cdrom

mount  /dev/cdrom  /media/cdrom

 

cd /media/ cdrom

RHEL_6.5\ x86_64\ Disc\ 1/Packages/

 

rpm -ivh vsftpd-2.2.2-11.el6_4.1.x86_64.rpm

 

 

2.修改/var/ftp/pub/的属主(匿名访问的FTP的默认的根目录)

chown   ftp  /var/ftp/pub

ll /var/ftp/

3.修改主配置文件vsftpd.conf客户机匿名登录

vim  /etc/vsftpd/vsftpd.conf

 

anonymous_enable=YES默认开启

anon_upload_enable=YES本来就有,去掉注释即可

——上传文件

anon_mkdir_write_enable=YES本来就有,去掉注释即可

——上传目录

anon_other_write_enable=YES需要手动添加,

——修改删除

 

4.重启服务,验证/var/ftp/pub/中匿名用户有了修改权限

service vsftpd restart

 

实验二

本地用户访问

需求:本地用户访问的vsftpd,直接开启服务,useradd添加用户,passwd设置用户密码然后可以验证访问了。

 

实验步骤:

1.新建用户zhangsan ,lisi ,在zhangsan家目录中创建zhangsan.txt测试文件

useradd  zhangsan

passwd  123.com

useradd  lisi

passwd  123.com

 

touch   /home /zhangansan/zhangsan.txt

 

2.修改/etc/vsftpd/user_list  ,添加zhangsan,为了效果可以删除其他的用户

vim  /etc/vsftpd/user_list 

  9999dd (从用户开始)

  zhangsan

 

3.在/etc/vsftpd/vsftpd.conf  配置文件的最后,添加一行

userlist_deny=NO ,启动白名单,只有位于user_list文件中的用户才可以登录ftp服务器。

 

vim  /etc/vsftpd/vsftpd.conf

pam_service_name=vsftpd

userlist_enable=YES

tcp_wrappers=YES

userlist_deny=NO (最后一行)

 

4.使用zhangsan和lisi分别验证(注意如果希望匿名继续访问,还需要添加anonymous和ftp)

 

 

 

 

 

 

 

 

 

 

实验三

vsftpd 虚拟用户

实验步骤:

 

1.确认vsfptd和db4-utils是否安装

rpm -q vsftpd

vsftpd-2.2.2-11.el6_4.1.x86_64

rpm -q db4-utils

db4-utils-4.7.25-18.el6_4.x86_64

 

2.手动创建用户认证文件。

vim /etc/vsftpd/vusers.list——奇数行用户名,偶数行密码

 

vim /etc/vsftpd/vusers.list

zhangsan

123.com

lisi

123.com

:wq

 

 

3.将手写的普通文件转化为数据库文件

  cd   /etc/vsftpd

db_load -T -t hash -f vusers.list vusers.db

多了一个文件

vusers.db

 

4.为了增强安全性,回收一些用户数据库文件的权限(跟实验结果无关)

 

chmod 600/etc/vsftpd/vusers.*

ll /etc/vsftpd/

 

5.创建虚拟用户使用的真实映射用户(也就是说虚拟用户是以某个真实用户的身份登录的ftp)

 

useradd -d /var/ftproot/ -s /sbin/nologin lpc(用户名未必叫lpc)

tail -1/etc/passwd

lpc:x:500:500::/var/ftproot/:/sbin/nologin

 

6.修改/var/ftproot/目录的权限

chmod 755 /var/ftproot

ll /var

 

7.手敲PAM认证文件(创建一个虚拟用户的认证文件,告诉系统当FTP虚拟用户登录的时候,我应该去哪个数据库里找到相应的登录凭证)

vim /etc/pam.d/vsftpd.vu

#%PAM-1.0

auth   required    pam_userdb.so db=/etc/vsftpd/vusers

account  required   pam_userdb.so db=/etc/vsftpd/vusers

:wq

 

8. 在vsftpd.conf中启用虚拟用户

在文件最下面

pam_service_name=vsftpd.vu

guest_enable=YES

guest_username=lpc

userlist_enable=YES

tcp_wrappers=YES

 

 

启动服务

service   vsftpd   start

 

9. 阶段1验证:在/var/ftproot/中新建几个文件,测试虚拟用户访问FTP

存在问题:zhangsan和lisi访问都看到同样的目录,那么没必要创建虚拟用户,并且zhangsan和lisi对这个目录都没有权限。

 

首先在/var/ftproot/创建测试文件lpc.txt

touch /var/ftproot/lpc.txt

 

 

 

 

 

 

 

 

10.为虚拟用户设置权限,虚拟用户的权限是跟着anon匿名权限走的!

vim  /etc/vsftpd/vsftpd.conf

anon_upload_enable=YES(原本存在,去掉注释即可)

 

 

11.阶段2验证:赋予匿名用户上传文件(虚拟用户权限用的就是匿名权限)的权限后发现zhangsan和lisi同时继承了主配置文件vsftpd.conf中的权限

 

结果:zhangsan  和 lisi 都可以上传文件了

 

12. 为虚拟用户创建独立的权限配置文件,实现zhangsan可以读取,上传文件,上传目录,修改删除,lisi可读取,可以上传文件,可上传目录,不可以修改删除

 

(1)首先人为创建存放独立配置文件的目录

mkdir /etc/vsftpd/vusers_dir(名称可以自拟,在vsftpd中一样就行)

 

(2)其次在vsftpd主配置文件中声明个人配置的目录在哪

vim /etc/vsftpd/vsftpd.conf

user_config_dir=/etc/vsftpd/vusers_dir

 

(3)最后在刚才的目录中创建用户的独立配置文件

   1. mkdir  /zhangsan/zs  -p

   touch  /zhangsan/zs/zhangsan.txt

vim /etc/vsftpd/vusers_dir/zhangsan

anon_mkdir_write_enable=YES

anon_other_write_enable=YES

local_root=/zhangsan/zs     

 

 

2.mkdir  /lisi/ls/  -p

touch  /lisi/ls/lisi.txt

vim /etc/vsftpd/vusers_dir/lisi

anon_mkdir_write_enable=YES

local_root=/lisi/ls

                                                                           

 

重启服务

service   vsftpd   restart

 

13.阶段3验证:zhangsan和lisi拥有不同的权限。拥有不同的家目录.

结果:

zhangsan可以读取,上传文件,上传目录,修改删除,

lisi可读取,可以上传文件,可上传目录,不可以修改删除

第十二章  DNS 域名解析服务

 

部署DNS服务器:

 

1.配置IP地址,安装DNS相关软件包:bind——libs , bind——9.8.2bind——utils

 

cd /media/RHEL_6.5\ x86_64\ Disc\ 1/Packages/

rpm -ivh bind-9.8.2-0.17.rc1.el6_4.6.x86_64.rpm

 

2.修改主配置文件(/etc/named.conf

 

vim  /etc/named.conf

将文件中的

listen-on port 53 { 127.0.0.1; };

allow-query     { localhost; };

修改为

listen-on port 53 { any; };

allow-query     { any; };

 

3.在区域配置文件中声明benet.comaccp.com两个正向查找区域和3.168.192.arpa一个反向查找区域

(可以在主配置文件声明也可以在/etc/named.rfc1912.zones文件中声明)

 

vim/etc/named.rfc1912.zones

复制如下5行作为《正向》声明的样板

zone "localhost.localdomain" IN {

        type master;

        file "named.localhost";

        allow-update { none; };

};

修改为

zone "benet.com" IN {

        type master;

        file "benet.com.zone";

        allow-update { none; };

};

zone "accp.com" IN {

        type master;

        file "accp.com.zone";

        allow-update { none; };

};

复制如下5行作为《反向》声明的样板

zone "1.0.0.127.in-addr.arpa" IN {

        type master;

        file "named.loopback";

        allow-update { none; };

};

修改为

zone "3.168.192.in-addr.arpa" IN {

        type master;

        file "3.168.192.arpa.zone";

        allow-update { none; };

};

4.人为创建区域数据库文件

 

cd /var/named

cp -pnamed.localhost benet.com.zone

cp -p named.localhost accp.com.zone

cp -p named.loopback 3.168.192.arpa.zone

 

5.开始修改区域数据库

 

vim benet.com.zone

修改

TTL 1D

@       IN SOA  @ rname.invalid. (

  0      ; serial

 1D      ; refresh

 1H      ; retry

 1W      ; expire

 3H )    ; minimum

        NS      @

        A       127.0.0.1

        AAAA    ::1

TTL 86400

@       IN SOA  benet.com.  tang.163.com. (

 2017080801       ; serial

 1D                  ; refresh

 1H                  ; retry

 1W        ; expire

 3H )         ; minimum

       IN        NS    ns1.benet.com.

ns1 IN        A     192.168.3.1

www     IN   A       123.123.123.123

ftp  IN   A       1.1.1.1

*     IN   A     8.8.8.8

 

accp.com.zone数据库同benet.com.zone数据库,不再列举

 

6.制作反向区域的区域数据库文件

 

vim  3.168.192.arpa.zone

修改

$TTL 86400

@       IN SOA  @ rname.invalid. (

        0      ; serial

        1D     ; refresh

        1H     ; retry

        1W    ; expire

        3H )    ; minimum

        NS      @

        A       127.0.0.1

        AAAA    ::1

        PTR     localhost.

 

$TTL 1D

@       IN SOA  s2t115.com.  tang.163.com. (

          2017080801      ; serial

          1D      ; refresh

          1H      ; retry

          1W      ; expire

          3H )    ; minimum

        IN      NS      ns1.s2t115.com.

ns1     IN      A       192.168.3.1

1       IN      PTR     gjjlin.bjnet.s2t115.com.

 

7.开启DNS服务

 

service named start

 

8.检测配置文件的语法

 

named-checkconf

——检测主配置文件的语法

named-checkzone     区域区域数据库

named-checkzone  benet.com  benet.com.zone

——检测区域文件的语法

 

9.验证

客户机配置:设置同网段的IP,然后首选DNS指向Linux服务器,设置LAN段

 

 

 

10.设置vsftpd的解析

 

(1)  安装vsftpd软件包

 

rpm  -ivh  vsftpd-2.2.2-11.el6_4.1.x86_64.rpm

 

2)创建登录FTP 的本地登录用户,且设置密码,并在zhangsan目录中创建测试文件

 

useradd  zhangsan

passwd  zhangsan

touch  /home/zhangsan/zhangsan.txt

 

3)开启vsftpd服务

 

service  vsftpd   start

 

4)在区域数据库里添加vsftpd的解析

 

TTL 86400

@       IN SOA  benet.com.  tang.163.com. (

 2017080801       ; serial

 1D                 ; refresh

 1H                 ; retry

 1W         ; expire

 3H )         ; minimum

       IN        NS      ns1.benet.com.

ns1 IN        A       192.168.3.1

www     IN   A   123.123.123.123

ftp  IN   A         192.168.3.1

*     IN   A   8.8.8.8

 

 

5)客户机验证

 

 

 

 

 

 

 

 

 

posted @ 2018-05-12 15:19  Leonardo-li  阅读(2446)  评论(0编辑  收藏  举报