Liunx操作系统管理

文章目录

Liunx常用命令

1、Liunx命令概述

Liunx命令分类

内部命令
shell自带的命令,不需要安装和配置直接使用
外部命令
由第三方程序安装时产生的,运行时要知道其绝对路径。
但将目标放入以下文件中就可以直接用命令运行

[root@localhost ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

Liunx命令行的格式

命令字 [选项] [参数]

获得命令帮助的方法

使用help命令/产看内部命令
使用“–help”选项/查看外部命令
使用man 来查看,信息最多

type可以查看是什么类型的命令

[root@localhost ~]# type cd
cd 是 shell 内嵌

2、目录和文件基本操作

查看及切换目

pwd
显示用户当前所在的工作目录位置

[root@localhost ~]# pwd
/root

cd
切换工作目录

cd 目标位置				//切换到目标位置
cd 或 cd ~				//切换到当前用户的家目录
cd -					//切换到执行cd命令之前所在的目录
cd .					//当前目录
cd ..					//上级目录

ls
显示目录中的内容,包括子目录和文件相关属性信息

格式: ls [选项] [文件或目录]

常用选项: 
 -l:显示详细信息 
 -a:显示子目录和文件,包括"."开头的隐藏目录和隐藏文件
 -A:不显示包括"."开头的隐藏目录和隐藏文件
 -d:查文件或目录 本身 属性
 -h:以单位显示文件或目录大小
 -R:以递归的方式显示目录以及子目录的所有内容
 --color:为查询结果添加颜色进行显示
	一般d、h、l会结合着用,如ls -dhl /etc/
	但ls统计目录的大小结果可能不准确,统计单个文件的大小比较准确
	一般使用du命令去统计目录的大小,会准确得多
	
结合通配符:
	?	匹配文件名中的一个未知字符
	*	匹配文件名中的任意多个字符


ls -dl 查看文件的用户组,用户和权限

[root@localhost ~]# ls -dl /etc
drwxr-xr-x. 75 root root 8192 4月  17 10:42 /etc
[root@localhost ~]# ls -dhl /etc
drwxr-xr-x. 75 root root 8.0K 4月  17 10:42 /etc

alias
通过别名机制简化常用的、比较长的命令

例子:
[root@localhost ~]# alias gohome='cd /home/zhangsan'
[root@localhost ~]# gohome 
[root@localhost zhangsan]# 

查看当前系统中的别名:
alias
[root@localhost zhangsan]# alias 
alias cp='cp -i'
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias gohome='cd /home/zhangsan'
alias grep='grep --color=auto'
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls --color=auto'
alias mv='mv -i'
alias rm='rm -i'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
[root@localhost zhangsan]# 
取消别名定义:
 unalias gohome
 unalias a

以上命令定义的别名在注销后就失效了,如果想要别名永久生效,需要修改配置文件
 # vim /etc/profile		//末尾新起一行加入定义别名
 alias a='systemctl status firewalld'

du
统计指定目录(或文件)所占用磁盘空间的大小

格式: du [选项] [文件或目录]

常用选项: 
 -a:统计磁盘空间占用时包括所有的文件,而不仅仅只统计目录
 -h:显示出目录或文件的大小(K、M),默认的大小单位为字节(KB)
 -s:只统计每个参数所占用空间总的大小,而不是统计每个子目录、文件的大小
	 一般s、h结合用,如 du -sh /etc/

创建目录和文件

mkdir
创建新的空目录

格式: mkdir [选项] 目录位置及名称

例子:
	mkdir ./123						在当前文件夹下创建一个新文件夹123
	#mkdir -p 连续递归的创建文件夹
	mkdir -p /home/{A,B}/abc		在home下创建A,B两个文件夹,并在其中创建abc文件夹
[root@localhost ~]# mkdir -p /home/{A,B}/abc
[root@localhost ~]# ls /home
A  B  zhangsan
[root@localhost ~]# ls /home/A
abc
[root@localhost ~]# ls /home/B
abc
[root@localhost ~]# 

touch
创建空文件

格式: touch 文件名

PS:当文件已存在时,touch可以更新文件的时间标记

ln
为文件或目录创建链接文件,分为软链接和硬链接
一般用于链接到$PATH下的路径,实现在任何地方都可以执行

[root@localhost ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

软链接:删除原始文件后失效,适用于文件和目录,链接文件可以与原始文件位于不同的文件系统中
硬链接:删除原始文件后仍可使用,只适用于文件,链接文件必须与原始文件在同一个文件系统(如同一个Linux分区)

创建链接文件:一般都是创建软链接,类似于Windows的快捷方式
ln -s 源文件 目标位置	(必须都为绝对路径)
如: ln -s /bin/bzip2 /bin/wx/

注意:在链接时,必须使用绝对路径

复制、删除、移动目录和文件

cp
复制文件或目录,并保存为新的文件或目录

格式: cp [选项]	所要复制的文件	复制到那儿的地址

常用选项:
 -i:覆盖目标同名文件或目录时提醒用户确认
 -f:若文件存在 强制覆盖不提醒 
 -p:复制时保持源文件的权限、属主及时间标记等属性不变
 -r:表示递归复制所有文件及子目录
	一般cp和rm都喜欢带上rf
[root@localhost home]# touch  a  
[root@localhost home]# touch  b
[root@localhost home]# touch  c
[root@localhost home]# mkdir zhangsan
[root@localhost home]# ls
a  b  c  zhangsan
[root@localhost home]# cp -rf a b c zhangsan
[root@localhost home]# cd zhangsan
[root@localhost zhangsan]# ls
a  b  c

快速备份

[root@localhost home]# cp /home/zhangsan/a{,.back}
[root@localhost home]# ls /home/zhangsan          
a  a.back  b  c

[root@localhost home]# cp /home/zhangsan/a{.back}

备份还原

[root@localhost home]# ls /home/zhangsan           
a  a.back  b  c
[root@localhost home]# rm -rf /home/zhangsan/a
[root@localhost home]# cp /home/zhangsan/a{.back,}
[root@localhost home]# ls /home/zhangsan           
a  a.back  b  c

rm
删除指定的文件或目录

格式:rm  [选项]    要删除的文件或目录…
rm -rf 命令强制删除包括目录 不提醒
[root@localhost ~]# mkdir abc
[root@localhost ~]# ls
abc  anaconda-ks.cfg
[root@localhost ~]# rm ./abc
rm: 无法删除"./abc": 是一个目录
[root@localhost ~]# rm -rf  abc
[root@localhost ~]# ls
anaconda-ks.cfg

mv
移动文件或目录

mv  [选项] …  源文件或目录…  目标文件或目录
mv mytouch mkfile
[root@localhost ~]# touch 321
[root@localhost ~]# ls
321  anaconda-ks.cfg
[root@localhost ~]# mv ./321 /home
[root@localhost ~]# ls /home
321  A  abc  B  zhangsna
[root@localhost ~]# 

查找目录和文件

which
查找命令 / 程序的存放目录,但只会在$PATH范围内查找(echo $PATH)

格式:
which 命令|程序名
which -a 命令|程序名
例子:
 which ls
 which cd

[root@localhost ~]# which pwd
/usr/bin/pwd
[root@localhost ~]# which passwd
/usr/bin/passwd

find

格式: find    [查找范围]    [查找条件表达式]
常用查找条件类型:
 按名称查找			-name		根据目标文件的名称进行查找,允许使用 * 及 ? 通配符
 按文件大小查找		-size		一般使用+、-号设置超过或小于指定的大小作为查找条件,常用的容量单位包括 kB(注意 k 是小写)、MB、GB
 按文件属主查找		-user		根据文件属主进行查找
 按文件类型查找		-type		根据文件的类型进行查找,包括普通文件(f)、目录(d)、块设备文件(b)、字符设备文件(c)等

# find / -size +5M -a -size -10M
# find / -size +5M -a -size -10M -a -name vim*  /-a为并且  -o为或者
# find / -size 5M	//表示查找5MB左右大小的文件

# find / -name ifcfg-ens33 	//在/下查找名为"ifcfg-ens33"的文件
# find / -size "+50M"		//在/下查找单个大于50M的文件
# find / -type d -a -name aa*	//查找/下为名字为aa开头的目录

将查到的数据删除的四种方法:
# find / -type f -a -name "abc*" -delete
# find / -type f -a -name "abc*" -exec rm -rf {} \;
第三种:
# touch /root/{abc,abc1,abc2}
# find / -type f -name "abc*" 		//能看到刚刚创建的/root/关于abc的三个文件
/root/abc
/root/abc1
/root/abc2
/usr/lib64/python2.7/abc.py
/usr/lib64/python2.7/abc.pyc
/usr/lib64/python2.7/abc.pyo
/usr/share/vim/vim74/syntax/abc.vim
需求:删除/root下的三个abc文件
# find / -maxdepth 2 -type f -name "abc*" | xargs rm -rf
-maxdepth 2	//该选项表示在指定的目录中再指定几层进行查找,此时就不会查到python下的abc文件
xargs		//将查到的多行内容,放在一行进行显示,原来的每行中间以空格隔开


第四种:
# rm -rf $(find / -maxdepth 2 -type f -name "abc*")

也可以同时查询多个文件并查看这些文件中的内容:
# find / -maxdepth 2 -type f -name "abc*" | xargs cat

将查询到的多个文件的详细信息显示出来:
# find / -name "abc*" | xargs ls -l

将查到的数据复制到/tmp目录中的三种方法:
# find / -type f -a -name "abc*" -exec cp -rf {} /tmp \;
# find / -maxdepth 2 -name "abc*" | xargs cp -rf -t back 
# find / -maxdepth 2 -name "abc*" | xargs -i cp -rf {} back	//-i的作用表示将查询到的数据一行一行地赋值给{}

将查到的多个数据文件通过tar打包备份:
# tar zcf abc.tar.gz `find / -maxdepth 2 -name "abc*" -a -type f | xargs`
# find / -maxdepth 2 -name "abc*" -a -type f | xargs tar zcf abc.tar.gz  



按照权限查询文件:
# chmod 777 /root/abc
# find / -type f -a -name "abc*" -a -perm 777

修改时间信息  mtime
访问时间信息  atime
改变时间信息  ctime
# find /abc -type f -mtime +7  --- 7天以前修改过的文件
# find /abc -type f -mtime -7  --- 最近7天修改过的文件
# find /abc -type f -mtime 7   --- 正好前面第7天修改过的文件

目录和文件管理

1、查看和检索文件

查看文件内容

cat
显示文件的内容,只能显示文档末尾部分内容

[root@localhost ~]# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
polkitd:x:999:998:User for polkitd:/:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
chrony:x:998:996::/var/lib/chrony:/sbin/nologin

more
用途:
全屏方式分页显示文件内容
按Enter键向下逐行滚动
按空格键向下翻一屏
按q键退出

[root@localhost ~]# more /etc/init.d/network 
#! /bin/bash
#
# network       Bring up/down networking
#
# chkconfig: 2345 10 90
# description: Activates/Deactivates all network interfaces configured to \
#              start at boot time.
#
### BEGIN INIT INFO
# Provides: $network
# Should-Start: iptables ip6tables NetworkManager-wait-online NetworkManager $network-pre
# Short-Description: Bring up/down networking
# Description: Bring up/down networking
### END INIT INFO

# Source function library.
. /etc/init.d/functions

if [ ! -f /etc/sysconfig/network ]; then
    exit 6
fi

. /etc/sysconfig/network

if [ -f /etc/sysconfig/pcmcia ]; then
    . /etc/sysconfig/pcmcia
fi


# Check that networking is up.
[ "${NETWORKING}" = "no" ] && exit 6

# if the ip configuration utility isn't around we can't function.
-More--(10%)

less
与more命令相同,但扩展功能更多

less [选项] 文件名 …

交互操作方法
	Page Up 向上翻页,Page Down 向下翻页
	按“/”键查找内容,“n”下一个内容,“N”上一个内容
	其他功能与 more 命令基本类似

head
查看文件开头的一部分内容(默认为10行)

   head -n 文件名 …
[root@localhost ~]# head /etc/init.d/network 
#! /bin/bash
#
# network       Bring up/down networking
#
# chkconfig: 2345 10 90
# description: Activates/Deactivates all network interfaces configured to \
#              start at boot time.
#
### BEGIN INIT INFO
# Provides: $network
[root@localhost ~]# 

tail
查看文件结尾的少部分内容(默认为10行)

tail -n 文件名 …
tail -f  文件名
[root@localhost ~]# tail /etc/init.d/network     

    $0 stop
    $0 start
    rc=$?
    ;;
*)
    echo $"Usage: $0 {start|stop|status|restart|reload|force-reload}"
    exit 2
esac

exit $rc
[root@localhost ~]# 

查询第11行的数据 : 利用 “|” 利用前面的输出作为后面的输入

[root@localhost ~]# head -11 /etc/init.d/network 
#! /bin/bash
#
# network       Bring up/down networking
#
# chkconfig: 2345 10 90
# description: Activates/Deactivates all network interfaces configured to \
#              start at boot time.
#
### BEGIN INIT INFO
# Provides: $network
# Should-Start: iptables ip6tables NetworkManager-wait-online NetworkManager $network-pre
[root@localhost ~]# head -11 /etc/init.d/network | tail -1
# Should-Start: iptables ip6tables NetworkManager-wait-online NetworkManager $network-pre
[root@localhost ~]# 

wc
统计文件中的单词数量(Word Count)等信息

wc[选项]...  目标文件...
常用命令选项
-l:统计行数
-w:统计单词个数 
-c:统计字节数
[root@localhost ~]# wc -lwc /etc/passwd
 19  27 846 /etc/passwd
[root@localhost ~]# wc -l /etc/passwd
19 /etc/passwd

统计和检索文件内容

grep
在文件中查找并显示包含指定字符串的行

 grep  [选项]...  查找条件  目标文件
常用命令选项
-i:查找时忽略大小写
-v:反选,输出与查找条件不相符的行 
-A 1:表示查看包含指定字符串及后一行
-B 2:表示查看包含指定字符串及前两行
-C 1:表示查看包含指定字符串及前后一行
-c:统计指定字符串在文件中出现的行数
查找条件设置
要查找的字符串以双引号括起来
“^……”表示以……开头,“……$”表示以……结尾
“^$”表示空行

[root@localhost ~]# grep root /etc/passwd
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin

查找以张三开头的用户
[root@localhost ~]# grep ^root /etc/passwd
root:x:0:0:root:/root:/bin/bash

常见用法
[root@localhost ~]# cat /etc/passwd | grep ^root
root:x:0:0:root:/root:/bin/bash

2、压缩/解压缩

使用压缩和解压缩工具

gzip命令、bzip2命令
制作压缩文件、解开压缩文件

gzip  [-9]  文件名…
bzip2  [-9]  文件名...
gzip  -d  .gz格式的压缩文件 
bzip2  -d  .bz2格式的压缩文件

常用命令选项
-9、-d

gunzip  等价于 gzip –d
压缩:
[root@localhost ~]# gzip sshd_config 
[root@localhost ~]# 
[root@localhost ~]# ls
anaconda-ks.cfg  sshd_config.gz
解压缩:
[root@localhost ~]# gzip -d  sshd_config.gz 
[root@localhost ~]# ls
anaconda-ks.cfg  sshd_config

使用tar 归档和释放工具

tar
制作归档文件、释放归档文件

tar [选项]  ...  归档文件名  源文件或目录
tar  [选项]...  归档文件名  [-C 目标目录]

常用命令选项
-c:创建 .tar 格式的包文件
-x:解开.tar格式的包文件
-v:输出详细信息
-f:表示使用归档文件
-p:打包时保留原始文件及目录的权限
-t:在不解压包的情况下看包内内容
-C:解包时指定释放的目标文件夹
-z:调用gzip程序进行压缩或解压
-j:调用bzip2程序进行压缩或解压
压缩文件夹
[root@localhost ~]# tar zcf /home/root.tar.gz /root/*
tar: 从成员名中删除开头的“/”
[root@localhost ~]# ls /home
321  A  abc  B  root.tar.gz  zhangsna

不解压的方式查看压缩文件
[root@localhost ~]# tar vft /home/root.tar.gz
-rw------- root/root       121 2023-04-19 19:21 root/anaconda-ks.cfg
-rw-r--r-- root/root         0 2023-04-19 19:11 root/sshd_config

解压
[root@localhost home]# tar zxf root.tar.gz 
[root@localhost home]# ls
321  A  abc  B  root  root.tar.gz  zhangsna
[root@localhost home]# 

3、使用vi文本编辑器

vi编辑器的工作模式

命令模式、输入模式、末行模式
在这里插入图片描述

命令模式中的基本操作

末行模式中的基本操作

账号和权限管理

1、管理用户和组账号

用户和组的概述

Linux基于用户身份对资源访问进行控制

用户帐号
 超级用户 //root
 普通用户	//自己新建的用户都属于普通用户
 程序用户 	//权限最低,一般只能操作程序相关联的文件
组帐号
 基本组(私有组)
 附加组(公共组)
UID和GID
   UID(User IDentity,用户标识号)
   GID(Group IDentify,组标识号)

用户账号管理

保存用户名称、宿主目录、登录Shell等基本信息

文件位置:/etc/passwd
每一行对应一个用户的帐号记录
[root@localhost home]# head -3 /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin

在这里插入图片描述
保存用户的密码、账号有效期等信息

文件位置:/etc/shadow
每一行对应一个用户的密码记录
[root@localhost home]# head -3 /etc/shadow
root:$6$ZeCg2CuLTQxWIIRr$7npsfyveJp86vEhZpb95NN2XuTjd76EiOADR.gEKblWI1o4ghBEguodad7Fza2BHLOgEUZx6F8lH/s8uMu5ln/::0:99999:7:::
bin:*:17632:0:99999:7:::
daemon:*:17632:0:99999:7:::

文件的每一行内容包含九个用冒号“:”分隔的配置字段

字段1:用户帐号的名称
字段2:加密的密码字串信息
字段3:上次修改密码的时间
字段4:密码的最短有效天数,默认值为0
字段5:密码的最长有效天数,默认值为99999
字段6:提前多少天警告用户口令将过期,默认值为7
字段7:在密码过期之后多少天禁用此用户
字段8:帐号失效时间,默认值为空
字段9:保留字段(未使用)

添加用户账号

useradd命令
	useradd  [选项]...  用户名
常用命令选项
-u:指定 UID 标记号
-d:指定宿主目录,缺省为 /home/用户名
-e:指定帐号失效时间
-g:指定用户的基本组名(或GID号)
-G:指定用户的附加组名(或GID号)
-M:不为用户建立并初始化宿主目录
-s:指定用户的登录Shell
[root@192 ~]# useradd -d /ftphome/mike -G zhangsan -s /sbin/nologin mike
[root@192 ~]# cat /etc/passwd | tail -2
zhangsan:x:1000:1000::/home/zhangsan:/bin/bash
mike:x:1001:1001::/ftphome/mike:/sbin/nologin

设置/更改用户口令

passwd命令
	passwd  [选项]...  用户名
常用命令选项
-d:清空用户的密码,使之无需密码即可登录
-l:锁定用户帐号
-S:查看用户帐号的状态(是否被锁定) 
-u:解锁用户帐号/centos 7不需要修改密码
当解锁后需要重新修改密码或者清除密码

修改用户账号的属性

usermod命令/主要修改已存在用户的信息
	usermod  [选项]...  用户名
常用命令选项
-l:更改用户帐号的登录名称
-L:锁定用户账户
-U:解锁用户账户
以下选项与useradd命令中的含义相同
 -u、-d、-e、-g、-G、-s
设置账号失效时间
[root@localhost ~]# usermod -e 2023-4-1 zhangsan

删除用户账号

userdel命令
	userdel  [-r]  用户名
	添加 -r 选项时,表示连用户的宿主目录一并删除(一般不用)

[root@localhost ~]# useradd stu01
[root@localhost ~]# ls -ld /home/stu01
drwx------ 2 stu01 stu01 62 4月  20 10:09 /home/stu01
[root@localhost ~]# userdel -r stu01
[root@localhost ~]# ls -ld /home/stu01
ls: 无法访问/home/stu01: 没有那个文件或目录
[root@localhost ~]# 

用户账号的初始配置文件

文件来源
	新建用户帐号时,从 /etc/skel 目录中复制而来
主要的用户初始配置文件
	~/.bash_profile(创建用户时执行的脚本)
	~/.bashrc(切换用户时执行的脚本)
	~/.bash_logout(退出用户时执行的脚本)
	 /etc/profile
	 /etc/bashrc

### 组账号管理
添加组账号

groupadd  [-g GID]  组账号名
[root@localhost zhangsan]# groupadd -g 2000 market
[root@localhost zhangsan]# tail -1 /etc/group
market:x:2000:

添加删除组成员

设置组帐号密码(极少用)、添加/删除组成员
	gpasswd  [选项]...  组帐号名
常用命令选项
	-a:向组内添加一个用户
	-d:从组内删除一个用户成员
	-M:定义组成员列表,以逗号分隔
[root@localhost zhangsan]# gpasswd -a wangwu market       
正在将用户“wangwu”加入到“market”组中
[root@localhost zhangsan]# tail -2 /etc/group      
market:x:2000:wangwu
wangwu:x:1003:

[root@localhost zhangsan]# gpasswd -d wangwu market
正在将用户“wangwu”从“market”组中删除
[root@localhost zhangsan]# tail -2 /etc/group      
market:x:2000:
wangwu:x:1003:

**删除组账号 **

groupdel  组帐号名
[root@localhost zhangsan]# tail -2 /etc/group      
mike1:x:1002:
wangwu:x:1003:

注意:任何用户的基本组都不可以直接删除

查询账号信息

id命令

查询用户身份标识
	id  [用户名]
[root@localhost zhangsan]# id zhangsan
uid=1000(zhangsan) gid=1000(zhangsan) 组=1000(zhangsan)

groups命令

查询用户所属的组
	groups  [用户名]
[root@localhost zhangsan]# groups mike
mike : mike zhangsan

finger命令

查询用户帐号的详细信息
	finger  [用户名]
[root@localhost zhangsan]# finger zhangsan       
Login: zhangsan                         Name: 
Directory: /home/zhangsan               Shell: /bin/bash
Never logged in.
No mail.
No Plan.

users、w 、who命令

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

[root@localhost zhangsan]# users
root root

[root@localhost zhangsan]# who  
root     tty1         2023-04-20 11:31
root     pts/0        2023-04-20 09:52 (192.168.1.2)
tty		本地登录
pts/0	远程登录

[root@localhost zhangsan]# w
 11:31:42 up  1:43,  2 users,  load average: 0.00, 0.01, 0.05
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
root     tty1                      11:31   30.00s  0.00s  0.00s -bash
root     pts/0    192.168.1.2      09:52    6.00s  0.05s  0.00s w

2、管理目录和文件的属性

查看目录或文件的属性

访问权限

读取 r:允许查看文件内容、显示目录列表
写入 w:允许修改文件内容,允许在目录中新建、移动、删除文件或子目录
可执行 x:允许运行程序、切换目录
归属(所有权)
属主:拥有该文件或目录的用户帐号
属组:拥有该文件或目录的组帐号
[root@localhost ~]# ls -l sshd_config 
-rw-r--r-- 1 root root 0 4月  19 19:11 sshd_config

-rw-------. 2 root root 1481 Feb 28  2020 anaconda-ks.cfg
第一个字段:表示文件类型
第2-10字段:表示文件权限,前3字段为所有者权限,中间3字段为属组权限,最后3字段为其他用户权限
第11字段:表示selinux安全机制特性,对于关闭了selinux的操作系统在新建文件或目录时没有这个"."
第12字段: 对于文件来说:文件硬链接数量;对于目录来说:该目录下子目录数量,子子目录数量不计算在内。
第4、5列:表示当前用户的所有者和所属组
第6列:当前文件的大小,单位默认为字节
第7、8、9列:修改文件的时间,可通过touch命令刷新该时间
第10列:当前文件或目录的名称

 
linux系统中的常见文件类型
d   -- 目录文件类型
-   -- 普通文件 
	a.纯文本文件 text /etc/hosts		--- 文本文件(可以直接编辑查看的普通文件)
	b.二进制文件 binary /bin/ls      	--- 命令文件(不可以编辑)
	c.数据型文件 data /tmp/etc.tar.gz	--- 数据文件(压缩的文件)
l   -- 链接文件(快捷方式)

c/b -- 块文件/字符文件(设备文件)
	          块文件: 存储的设备文件  光驱设备文件 磁盘
			  字符文件: 根本停不下来的输出字符信息

设置目录或文件的权限

chmod命令

chmod   [ugoa]  [+-=]  [rwx]  文件或目录...
		u、g、o、a 分别表示
	属主、属组、其他用户、所有用户
	
常用命令选项
-R:递归修改指定目录下所有子项的权限
设置所有用户权限
[root@localhost ~]# chmod a=rwx sshd_config 
[root@localhost ~]# ls
anaconda-ks.cfg  sshd_config

所有用户都减去 x 权限
[root@localhost ~]# chmod a-x sshd_config 
[root@localhost ~]# ls
anaconda-ks.cfg  sshd_config

[root@localhost ~]# chmod 000 sshd_config 

[root@localhost ~]# ls -l sshd_config 
---------- 1 root root 0 4月  19 19:11 sshd_config

设置目录和文件的归属

chown命令

chown  属主   文件或目录
chown  :属组  文件或目录
chown  属主:属组  文件或目录

常用命令选项
-R:递归修改指定目录下所有文件、子目录的归属
[root@localhost ~]# chown zhangsan:zhangsan sshd_config 
[root@localhost ~]# ls -l sshd_config 
---------- 1 zhangsan zhangsan 0 4月  19 19:11 sshd_config

设置文件和目录的默认权限 umask

umask命令

umask 000
umask 777

命令作用
定义新创建文件及目录的默认权限,通过该命令实现定义权限补码

注意:文件权限最大666(在创建时),目录权限最大777
[root@localhost ~]# umask 000
[root@localhost ~]# mkdir 123

[root@localhost ~]# ls -l 
总用量 4
drwxrwxrwx  2 root     root       6 4月  20 14:33 123
drwxr-xr-x  2 root     root       6 4月  20 14:32 abc
-rw-------. 1 root     root     121 4月  19 19:21 anaconda-ks.cfg
----------  1 zhangsan zhangsan   0 4月  19 19:11 sshd_config
[root@localhost ~]# 

特殊权限

suid

命令作用
程序运行时的权限从执行者变更成程序所有者的权限
使用方法
程序运行时的权限从执行者变SUID属性一般用在可执行文件上,当用户执行该文件时,会临时拥有该执行文件的所有者权限。
使用”ls -l” 或者”ll” 命令浏览文件时,如果可执行文件所有者权限的第三位是一个小写的”s”,就表明该执行文件拥有SUID属性。

比如/usr/bin/passwd文件
[root@localhost ~]# ll /usr/bin/passwd
-rwsr-xr-x. 1 root root 27832 6月  10 2014 /usr/bin/passwd

# chmod u+s abc
# chmod u-s abc

sticky

命令作用
	只作用于目录
	目录下创建的文件只有root、文件创建者、目录所有者才能删除。
使用方法
	对系统中的某些目录可以授予这样的权限,此时该目录就遵循该权限规则,如系统中的/tmp目录
[root@localhost tmp]# ll -d /tmp 
drwxrwxrwt. 14 root root 4096 4月  20 15:26 /tmp

# chmod o+t a1
# chmod o-t a1

ACL

命令作用
	可作用于文件及目录
	针对文件和目录授予单个用户的rwx权限
使用方法
	# setfacl -R -m d:u:abc:rwx test	//文件夹
	# setfacl -m u:wangwu:rwx abc 	//文件
	-R	表示递归授权
	-m	表示修改acl权限
	d   表示只对后续新对象继承该权限
	u   表示用户
	abc 表示要授权用户名称

磁盘和文件系统管理(简单的)

1、管理磁盘及分区

检测并确认新硬盘

fdisk命令

查看或管理磁盘分区
	fdisk  -l  [磁盘设备]
	或
	fdisk    [磁盘设备]

规划硬盘中的分区

# fdisk /dev/sdb
    d   delete a partition  *****
        删除分区	
    g   create a new empty GPT partition table
	    创建一个新的空的GPT分区表(可以对大于2T磁盘进行分区)
    l   list known partition types
	    列出可以分区的类型???
    m   print this menu
	    输出帮助菜单
    n   add a new partition  *****
	    新建增加一个分区
    p   print the partition table  *****
	    输出分区的结果信息
    q   quit without saving changes 
	    不保存退出
    t   change a partition s system id
	    改变分区的系统id==改变分区类型(LVM 增加swap分区大小)
    u   change display/entry units
	    改变分区的方式  是否按照扇区进行划分
    w   write table to disk and exit  *****
	    将分区的信息写入分区表并退出==保存分区信息并退出
	    
在分区完成 后要执行下面的命令
[root@localhost ~]# partprobe /dev/sdb

2、管理文件系统

创建文件系统

mkfs命令

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

给分区设置文件类型
mkfs -t xfs -f /dev/sdb1

挂载、卸载文件系统

mount命令

挂载文件系统、ISO镜像到指定文件夹
	mount 	 查询系统的挂载信息
	mount  [ -t 类型 ]  存储设备  挂载点目录
	mount  -o loop  ISO镜像文件  挂载点目录

umount命令

卸载已挂载的文件系统
	umount  存储设备位置
	umount  挂载点目录
将/dev/sdb1 挂载到sdb目录
mount /dev/sdb1 /sdb

进程管理

进程查看和控制

1、查看进程

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

ps -aux
 a:所有与进程有关的进程
 u:以用户为主的格式显示进程信息
 x:所有与终端无关的进程

ps -ef:可以查看父进程的信息

VSZ:虚拟内存
RSS:物理内存
STAT:S-休眠 R-运行 Z-僵死 <-高优先级 N-低优先级 s-父进程 +-前台进程 l-多线程  T停止
TIME:进程占用cpu的时间
VIRT:占用swap内存大小
PR:优先级
RES:占用物理内存大小
SHR:共享内存大小,两个进程间通信时所需
START :开启时间

[root@localhost ~]# ps aux
USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root          1  0.1  0.3 125348  3764 ?        Ss   15:13   0:00 /usr/lib/systemd/systemd --switched-root --system --deser
root          2  0.0  0.0      0     0 ?        S    15:13   0:00 [kthreadd]
root          3  0.0  0.0      0     0 ?        S    15:13   0:00 [ksoftirqd/0]

[root@localhost ~]# ps aux | grep sshd
root        954  0.0  0.4 112796  4288 ?        Ss   15:14   0:00 /usr/sbin/sshd -D
root       1242  0.0  0.6 161400  6040 ?        Ss   15:17   0:00 sshd: root@pts/0
root       1351  0.0  0.0 112720   984 pts/0    R+   15:59   0:00 grep --color=auto sshd

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

[root@localhost ~]# top
top - 16:05:03 up 51 min,  2 users,  load average: 0.00, 0.01, 0.04
Tasks:  95 total,   1 running,  94 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem :   997956 total,   774872 free,    92092 used,   130992 buff/cache
KiB Swap:  2097148 total,  2097148 free,        0 used.   753688 avail Mem 

PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND                                                                      
 1  root      20   0  125348   3780   2564 S  0.0  0.4   0:00.97 systemd                                                                      
 2  root      20   0       0      0      0 S  0.0  0.0   0:00.00 kthreadd  

pstree
树状展示进程

[root@localhost ~]# pstree -pu           
systemd(1)─┬─NetworkManager(650)─┬─dhclient(713)
           │                     ├─{NetworkManager}(680)
           │                     └─{NetworkManager}(682)
           ├─VGAuthService(630)
           ├─auditd(608)───{auditd}(609)
           ├─chronyd(643,chrony)
           ├─crond(655)
           ├─dbus-daemon(639,dbus)
           ├─httpd(1433)─┬─httpd(1434,apache)
           │             ├─httpd(1435,apache)
           │             ├─httpd(1436,apache)
           │             ├─httpd(1437,apache)
           │             └─httpd(1438,apache)
           ├─login(661)───bash(1219)
           ├─lvmetad(481)
           ├─master(1043)─┬─pickup(1044,postfix)
           │              └─qmgr(1045,postfix)
           ├─polkitd(637,polkitd)─┬─{polkitd}(649)
           │                      ├─{polkitd}(651)
           │                      ├─{polkitd}(662)
           │                      ├─{polkitd}(663)
           │                      └─{polkitd}(664)
           ├─rsyslogd(957)─┬─{rsyslogd}(964)
           │               └─{rsyslogd}(965)
           ├─sshd(954)───sshd(1242)───bash(1244)───pstree(1696)
           ├─systemd-journal(461)
           ├─systemd-logind(652)
           ├─systemd-udevd(488)
           ├─tuned(955)─┬─{tuned}(1200)
           │            ├─{tuned}(1201)
           │            ├─{tuned}(1202)
           │            └─{tuned}(1216)
           └─vmtoolsd(631)───{vmtoolsd}(669)

[root@localhost ~]# pstree -apu
systemd,1 --switched-root --system --deserialize 22
  ├─NetworkManager,650 --no-daemon
  │   ├─dhclient,713 -d -q -sf /usr/libexec/nm-dhcp-helper -pf /var/run/dhclient-ens33.pid -lf...
  │   ├─{NetworkManager},680
  │   └─{NetworkManager},682
  ├─VGAuthService,630 -s
  ├─auditd,608
  │   └─{auditd},609
  ├─chronyd,643,chrony
  ├─crond,655 -n
  ├─dbus-daemon,639,dbus --system --address=systemd: --nofork --nopidfile --systemd-activation
  ├─httpd,1433 -DFOREGROUND
  │   ├─httpd,1434,apache -DFOREGROUND
  │   ├─httpd,1435,apache -DFOREGROUND
  │   ├─httpd,1436,apache -DFOREGROUND
  │   ├─httpd,1437,apache -DFOREGROUND
  │   └─httpd,1438,apache -DFOREGROUND
  ├─login,661     
  │   └─bash,1219
  ├─lvmetad,481 -f
  ├─master,1043 -w
  │   ├─pickup,1044,postfix -l -t unix -u
  │   └─qmgr,1045,postfix -l -t unix -u
  ├─polkitd,637,polkitd --no-debug
  │   ├─{polkitd},649
  │   ├─{polkitd},651
  │   ├─{polkitd},662
  │   ├─{polkitd},663
  │   └─{polkitd},664
  ├─rsyslogd,957 -n
  │   ├─{rsyslogd},964
  │   └─{rsyslogd},965
  ├─sshd,954 -D
  │   └─sshd,1242    
  │       └─bash,1244
  │           └─pstree,1725 -apu
  ├─systemd-journal,461
  ├─systemd-logind,652
  ├─systemd-udevd,488
  ├─tuned,955 -Es /usr/sbin/tuned -l -P
  │   ├─{tuned},1200
  │   ├─{tuned},1201
  │   ├─{tuned},1202
  │   └─{tuned},1216
  └─vmtoolsd,631
      └─{vmtoolsd},669

2、控制进程

kill
根据 pid 号终止进程

kill -9  pid号   强制删除进程

killall
根据名字终止进程

[root@localhost ~]# ps -aux | grep httpd 
root       1786  0.5  0.5 224020  4992 ?        Ss   16:40   0:00 /usr/sbin/httpd -DFOREGROUND
apache     1787  0.0  0.2 224020  2944 ?        S    16:40   0:00 /usr/sbin/httpd -DFOREGROUND
apache     1788  0.0  0.2 224020  2944 ?        S    16:40   0:00 /usr/sbin/httpd -DFOREGROUND
apache     1789  0.0  0.2 224020  2944 ?        S    16:40   0:00 /usr/sbin/httpd -DFOREGROUND
apache     1790  0.0  0.2 224020  2944 ?        S    16:40   0:00 /usr/sbin/httpd -DFOREGROUND
apache     1791  0.0  0.2 224020  2944 ?        S    16:40   0:00 /usr/sbin/httpd -DFOREGROUND
root       1793  0.0  0.0 112720   984 pts/0    R+   16:41   0:00 grep --color=auto httpd
[root@localhost ~]# killall -9 httpd     
[root@localhost ~]# ps -aux | grep httpd
root       1801  0.0  0.0 112720   984 pts/0    R+   16:41   0:00 grep --color=auto httpd

日志分析

1、主要日志文件

日志分类

日志文件的分类
内核及系统日志
 由系统服务rsyslog统一进行管理,日志格式基本相似
用户日志
 记录系统用户登录及退出系统的相关信息
程序日志
 由各种应用程序独立管理的日志文件,记录格式不统一

日志保存位置
默认位于:/var/log 目录下

[root@localhost ~]# cd /var/log
[root@localhost log]# ls
anaconda           btmp           dmesg               lastlog           messages-20230417  secure-20230423   tuned
audit              chrony         dmesg.old           maillog           messages-20230423  spooler           vmware-vgauthsvc.log.0
boot.log           cron           firewalld           maillog-20230417  rhsm               spooler-20230417  vmware-vmsvc.log
boot.log-20230417  cron-20230417  grubby_prune_debug  maillog-20230423  secure             spooler-20230423  wtmp
boot.log-20230423  cron-20230423  httpd               messages          secure-20230417    tallylog          yum.log

2、日志文件分析

用户日志分析

保存了用户登录、退出系统等相关信息
/var/log/lastlog:最近的用户登录事件
/var/log/wtmp:用户登录、注销及系统开、关机事件 
/var/run/utmp:当前登录的每个用户的详细信息 
/var/log/secure:与用户验证相关的安全性事件
分析工具
users 、who、w、
last:用户最近登录情况
lastb:登录失败的用户记录

程序日志分析

日志位置由安装时的位置决定   可以百度查询

由相应的应用程序独立进行管理
Web服务:/var/log/httpd/    			
 access_log、error_log 
代理服务:/var/log/squid/
 access.log、cache.log、
FTP服务:/var/log/xferlog
 分析工具
文本查看、grep过滤检索、Webmin管理套件中查看
awk、sed等文本过滤、格式化编辑工具
Webalizer、Awstats等专用日志分析工具

Liunx 基础网络设置

1、查看及测试网络

查看网络设置

ifconfig

查看所有活动网络接口的信息
	执行 ifconfig 命令
查看指定网络接口信息
	ifconfig 网络接口名
[root@localhost ~]# ifconfig
ens32: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.1.100  netmask 255.255.255.0  broadcast 192.168.1.255
        inet6 fe80::a9a2:8cbd:59b7:aae1  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:39:7b:70  txqueuelen 1000  (Ethernet)
        RX packets 561  bytes 45806 (44.7 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 630  bytes 297599 (290.6 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.126.147  netmask 255.255.255.0  broadcast 192.168.126.255
        inet6 fe80::34d:fd0:446:dc62  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:39:7b:7a  txqueuelen 1000  (Ethernet)
        RX packets 53145  bytes 69951339 (66.7 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 11736  bytes 718094 (701.2 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 336  bytes 29232 (28.5 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 336  bytes 29232 (28.5 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

hostname

hostname命令
查看或设置当前主机名
hostname
[root@localhost ~]# hostname
localhost.localdomain

route

route命令
查看或设置主机中路由表信息

route [-n]
[root@localhost ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.126.2   0.0.0.0         UG    101    0        0 ens33
192.168.1.0     0.0.0.0         255.255.255.0   U     100    0        0 ens32
192.168.126.0   0.0.0.0         255.255.255.0   U     101    0        0 ens33

netstat

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

netstat [选项]
常用选项
-a、-n、-p、-t、-u、-r
[root@localhost ~]# netstat -anpt
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1012/sshd           
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      1181/master         
tcp        0      0 192.168.1.100:22        192.168.1.2:48976       ESTABLISHED 2214/sshd: root@pts 
tcp6       0      0 :::22                   :::*                    LISTEN      1012/sshd           
tcp6       0      0 ::1:25                  :::*                    LISTEN      1181/master  
[root@localhost ~]# netstat -anpu
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
udp        0      0 127.0.0.1:323           0.0.0.0:*                           674/chronyd         
udp        0      0 0.0.0.0:68              0.0.0.0:*                           2148/dhclient       
udp6       0      0 ::1:323                 :::*                                674/chronyd 

测试网络连接

traceroute

traceroute命令
测试从当前主机到目的主机之间经过的网络节点
 traceroute 目标主机地址
[root@localhost ~]# traceroute 192.168.1.2
traceroute to 192.168.1.2 (192.168.1.2), 30 hops max, 60 byte packets
 1  192.168.1.2 (192.168.1.2)  0.115 ms

 * *

nslookup

nslookup命令
测试DNS域名解析

nslookup 目标主机地址  [DNS服务器地址]
[root@localhost ~]# nslookup www.baidu.com
Server:         192.168.126.2
Address:        192.168.126.2#53

Non-authoritative answer:
www.baidu.com   canonical name = www.a.shifen.com.
Name:   www.a.shifen.com
Address: 14.119.104.189
Name:   www.a.shifen.com
Address: 14.119.104.254

2、设置网络地址参数

使用网络配置命令

ifconfig

ifconfig  接口名  ip
设置网络接口的IP地址、子网掩码
地址  [netmask  子网掩码]
ifconfig  网络接口  ip地址[/掩码长度]
禁用或者重新激活网卡
ifconfig  网络接口  up
ifconfig  网络接口  down
设置虚拟网络接口
 ifconfig  接口名:序号  IP地址

route

添加到指定网段的路由记录
 route add  -net  网段地址  gw  IP地址
删除到指定网段的路由记录
route  del  -net  网段地址
删除路由表中的默认网关记录
 route  del  default  gw  IP地址
向路由表中添加默认网关记录
route add  default  gw  IP地址

修改网络配置文件

主机名修改

hostname命令
设置主机名
 hostname 主机名称

网络接口配置文件

/etc/sysconfig/network-scripts/ 目录下的
ifcfg-ens33:第1块以太网卡的配置文件


  
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=dhcp
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=554532a9-a038-4180-b856-b83b2691111c
DEVICE=ens33
ONBOOT=yes
~             
……

域名解析配置文件

/etc/resolv.conf 文件
保存本机需要使用的DNS服务器的IP地址
# Generated by NetworkManager
search localdomain
nameserver 192.168.126.2

3、使用DHCP 动态配置主机地址

配置DHCP服务器

安装dhcp服务

yum install -y dhcp

配置dhcp文件
首先打开文件: vim /etc/dhcp/dhcpd.conf

这里就有配置文件模板的路径
# DHCP Server Configuration file.
#   see /usr/share/doc/dhcp*/dhcpd.conf.example
#   see dhcpd.conf(5) man page
#

将模板配置文件复制到 真正的配置文件中

cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf

并对该文件做修改,以下是我修改后的文件内容

vim /etc/dhcp/dhcpd.conf 
option domain-name "example.org";
option domain-name-servers 61.139.2.69, 8.8.8.8;		//DNS服务器

default-lease-time 600;		//默认租约时间 600s
max-lease-time 7200;

# Use this to enble / disable dynamic dns updates globally.
#ddns-update-style none;

# If this DHCP server is the official DHCP server for the local
# network, the authoritative directive should be uncommented.
#authoritative;

# Use this to send dhcp log messages to a different log file (you also
# have to hack syslog.conf to complete the redirection).
log-facility local7;   			//日志文件格式


# A slightly different configuration for an internal subnet.
subnet 192.168.1.0 netmask 255.255.255.0 {  // 主要的配置文件

  range 192.168.1.200 192.168.1.230;   // 所需分配的 IP 地址池
  option routers 192.168.1.1;   // 网关
  default-lease-time 600;
  max-lease-time 7200;
  option domain-name-servers 61.139.2.69;
}

最后启动服务

systemctl start dhcpd

使用DHCP客户端

获取目标的mac地址:

00-0C-29-D6-63-90

打开dhcp配置文件:

vim /etc/dhcp/dhcpd.conf

修改内容:

将目标主机设定为固定IP
host fantasia {
  hardware ethernet 00:0C:29:D6:63:90;
  fixed-address 192.168.1.222;
} 

将目标主机网卡重启
在这里插入图片描述
通过查看日志信息可以看到dhcp的工作过程

//收到目标主机想要获取以前的ip,但显示不可获得
Apr 25 12:51:33 localhost dhcpd: DHCPREQUEST for 192.168.1.200 from 00:0c:29:d6:63:90 via ens32: lease 192.168.1.200 unavailable.   
//dhcp服务器返回NACK包给目标主机
Apr 25 12:51:33 localhost dhcpd: DHCPNAK on 192.168.1.200 to 00:0c:29:d6:63:90 via ens32
Apr 25 12:51:33 localhost dhcpd: uid lease 192.168.1.200 for client 00:0c:29:d6:63:90 is duplicate on 192.168.1.0/24
//目标主机从新发送DISCOVER 到服务器
Apr 25 12:51:33 localhost dhcpd: DHCPDISCOVER from 00:0c:29:d6:63:90 via ens32
//返回DHCPOFFER包给目标主机,并携带IP地址
Apr 25 12:51:33 localhost dhcpd: DHCPOFFER on 192.168.1.222 to 00:0c:29:d6:63:90 via ens32
Apr 25 12:51:33 localhost dhcpd: Dynamic and static leases present for 192.168.1.222.
//dhcp服务器移除IP:192.168.1.222
Apr 25 12:51:33 localhost dhcpd: Remove host declaration fantasia or remove 192.168.1.222
Apr 25 12:51:33 localhost dhcpd: from the dynamic address pool for 192.168.1.0/24
Apr 25 12:51:33 localhost dhcpd: uid lease 192.168.1.200 for client 00:0c:29:d6:63:90 is duplicate on 192.168.1.0/24
//收到目标主机的REQUEST包
Apr 25 12:51:33 localhost dhcpd: DHCPREQUEST for 192.168.1.222 (192.168.1.100) from 00:0c:29:d6:63:90 via ens32
//返回ACK包确定完成
Apr 25 12:51:33 localhost dhcpd: DHCPACK on 192.168.1.222 to 00:0c:29:d6:63:90 via ens32
Apr 25 12:51:55 localhost dhcpd: Dynamic and static leases present for 192.168.1.222.
Apr 25 12:51:55 localhost dhcpd: Remove host declaration fantasia or remove 192.168.1.222
Apr 25 12:51:55 localhost dhcpd: from the dynamic address pool for 192.168.1.0/24
Apr 25 12:51:55 localhost dhcpd: uid lease 192.168.1.200 for client 00:0c:29:d6:63:90 is duplicate on 192.168.1.0/24
Apr 25 12:51:55 localhost dhcpd: DHCPREQUEST for 192.168.1.222 from 00:0c:29:d6:63:90 via ens32
Apr 25 12:51:55 localhost dhcpd: DHCPACK on 192.168.1.222 to 00:0c:29:d6:63:90 via ens32

FTP文件传输服务

1、vsftpd 服务基础

FTP 服务概述

FTP连接及连接模式
	控制连接:TCP 21,用于发送FTP命令信息
	数据连接:TCP 20,用于上传、下载数据
数据连接的建立类型
	主动模式:服务端从 20 端口主动向客户端发起连接
	被动模式:服务端在指定范围内某个端口被动等待客户端连接
FTP传输模式
	文本模式:ASCII 模式,以文本序列传输数据
	二进制模式:Binary 模式,以二进制序列传输数据
FTP 用户的类型
	匿名用户、本地用户、虚拟用户
常见的 FTP 服务器程序
	IIS、Serv-U
	wu-ftpd、Proftpd
	vsftpd(Very Secure FTP Daemon)
常见的 FTP 客户端程序
	ftp 命令、windows资源管理器、浏览器
	CuteFTP、FlashFXP、LeapFTP、Filezilla
	gftp、kuftp

vsftpd 的配置文件

文件介绍

Vsftpd 软件包
	官方站点:http://vsftpd.beasts.org/
	主程序:/usr/sbin/vsftpd
	服务名:vsftpd
用户控制列表文件
	 /etc/vsftpd/ftpusers
	 /etc/vsftpd/user_list
主配置文件
 	/etc/vsftpd/vsftpd.conf

常用的全局配置项

listen=YES:是否以独立运行的方式监听服务,ipv6监听需要关闭才能启用该命令。
listen_address=192.168.4.1:设置监听的 IP 地址
listen_port=21:设置监听 FTP 服务的端口号
write_enable=YES:是否启用写入权限
download_enable=YES:是否允许下载文件
userlist_enable=YES:是否启用 user_list 列表文件
userlist_deny=YES:是否禁用 user_list 中的用户,如果是黑名单,表示不能登录FTP,如果是白名单,表示只在这里的用户能够登录FTP。
max_clients=0:限制并发客户端连接数,0表示不限制
max_per_ip=0:限制同一 IP 地址的并发连接数,0表示不限制
xferlog_enable=YES:是否记录用户上传下载日志
xferlog_std_format=YES:启用xferlog格式记录日志,no则使用vsftpd的格式
dirmessage_enable=YES:如果目录存在.message隐藏文件时,当进入此目录时,会显示.message里面的内容  
connect_from_port_20=YES:允许服务器主动模式
idle_session_timeout=600:当连接后空闲时间超过600秒将会自动断开
data_connection_timeout=120:当数据连接建立连接后空闲120秒自动断开
tcp_wrappers=YES:是否启用主机访问控制
#chown_uploads=YES		//开启用户上传数据归属
#chown_username=whoever		//上传的数据属于whoever用户
#nopriv_user=ftpsecure		//定义唯一一个ftp用户,该用户只用于ftp
#async_abor_enable=YES		//取消下载后客户端不挂起
#ascii_upload_enable=YES	//使用文本模式上传
#ascii_download_enable=YES	//使用文本模式下载,通常情况下用户数据包含文本和图片视频等,因此服务器会自动切换模式上传下载相关数据,文本用ascii,图片用二进制
#ftpd_banner=Welcome to blah FTP service. //FTP登录欢迎信息
#deny_email_enable=YES
#banned_email_file=/etc/vsftpd/banned_emails //若是启动这项功能,则必须提供一个文档banner_emails,内容为email address。若是使用匿名登入,则会要求输入email address,若输入的email address 在此文档内,则不允许进入。
#pasv_enable=YES  
#port_enable=YES 	//只能出现一个,表示连接模式,此项为主动
use_localtime=YES  	//使用本机时间
max_clients=0  
    最大连接数量(stand-alone独立运行模式下)  # lsof -i:21 可查看当前模式vsftpd/xinetd服务,一般设置为YES
max_per_ip=0  
    每个客户端最大连接ftp服务器的连接数  

2、基于系统用户的FTP服务

匿名访问的FTP服务

用户验证的 FTP 服务

vsftp 服务的其他常用配置

3、基于虚拟用户的FTP服务

建立虚拟用户的账户数据库

为 vsftpd 服务添加虚拟用户支持

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值