·用户设置
(1)超级用户 普通用户 程序用户
(2)共有组 私有组
(3)/Etc/passwd 存放了所有用户的账户信息
用户名/密码占位符/uid/组id/标识符,说明信息/家目录/运行环境,命令解释器
(4)/etc/shadow 存放所有用户的密码信息
用户名/加密后的密码/距离xxx第一次修改密码的时间/密码的最短有效期/密码的最长有效期/密码过期前x天警告/密码过期x天后禁用/账号失效时间
(5)Useradd 【选项】 【参数】
-u 指定uid
-d 指定宿主目录 默认情况下是/home
-e 指定失效时间
-g 指定用户的基本组
-G 指定用户的附加组
-M 不为程序建立家目录
- s 指定用户的的登录shell
(6)passwd 【选项】 【用户名】
-d 删除密码
-l 锁定用户
-u 解锁用户
-S 查看用户的信息状态
Ps:解锁用户后 需要重新设置密码才能继续登录
Useradd passwd pzhangsan;echo 123456|passwd --stdin zhangsan
(7)usermod 【选项】 【参数】
-l 更改账户的登录名
-L 锁定账户
-U 解锁账户
~/.bash_logout:用户登出时执行的命令
~/.bash_profile:用户登陆时支持的命令
~/.bashrc:用户更改登陆环境时要执行的命令
/etc/profile 全局的 设置所有用户登陆时执行的代码 ,例如设置开机自启啥的
/etc/bashrc 全局的
(8)userdel 【选项】【参数】
-r 删除用户及其家目录
·组的设置
(1)groupadd 【选项】 【参数】
-g 指定用户的组id
(2)gpasswd 【选项】 【参数】
-a 将用户加入到指定组
-d 将用户从指定组删除
- M 重新定义组的成员
(3)Groupdel 【组名】
Ps : 任何用户的基本组都无法直接删除
(4)id + 【用户名】 查询指定用户的id信息
(5)Groups + 【用户名】 查看指定用户的组信息
(6)Finger +【用户名】 查询用户账户的详细信息
(7)Who w users 查看当前系统的登陆用户信息
·文件权限
(1)R --读取4 w–写入2 x—执行1
(2)D—普通目录 l----链接 - ----文件
(3)文件拥有者的权限 所属组的权限 其他用户的权限
(4)Chmod 【选项ugoa】 【±=】 【rwx】 文件名
Chmod 777 文件名 chmod u+w 文件名
Chomod u+rwx 文件名 chmod ugo-w 文件名
Chmod 777 -R xxx :权限继承 ,将xxx文件里面的文件的权限也一同修改
(5)chown 【选项】【参数】
chown 用户名:组名 文件路径(可以是就对路径也可以是相对路径)
例1:chown root:root /tmp/tmp1
就是把tmp下的tmp1的用户名和用户组改成root和root(只修改了tmp1的属组).
更改文件的所属者:chown 用户名 文件名
更改文件的所属组 :chgrp 组名 文件名
(6)粘滞位 sgid suid 权限
粘滞位这对目录赋权限,目录中创建的文件只有创建者本人才可以删除
案列:xxx 的权限是drwxrwxrwx
jerry 在xxx目录中创建了 jerry1的文件
tom 在xxx目录中创建了tom1的文件
由于上级目录xxx的这两者的权限都是rwx,所以二者可以随意删除他人创建的文件,这种行为是非常危险的。
因此要针对上级目录设置粘滞键来禁止这种行为
相关命令: chmod o-t xxx
配置完之后xxx的相关目录权限为drwxrwxrwxt
(7)Sgid:针对目录建立的权限,在该目录中建立的文件所属继承父目录的属组
相关命令: chmod g +s 文件名
(8)Suid:对可执行文件建立
普通用户运行该可执行文件的时候是以root权限来运行
相关命令:chmod u+s 文件名
Chmod u-s 文件名
案列:chmod u+s /bin/vim
设置好上述命令之后,任何普通用户都可以对/etc/passwd(shawd) 等文件进行vim编辑,即使那个普通用户没有任何读写执行权限。
Echo $PATH
Find + 相关字符 查找指定类型/名字… 的文件
(9)需求:不在允许添加新用户的请求
/etc/group /etc/passwd /etc/shadow /home/xxx
相关命令:chatter +字符 文件名( 修改指定文件的相关属性)
Chatter + i /etc/shadow
设置好该命令之后,shadow文件将不可被修改
同理设置好passwd后, passwd也不能够被修改
默认情况下 普通用户创建的文件默认权限和root用户创建的文件默认权限是不一样的
目录权限=777-Umask
文件权限=666-umask
/etc/login.defs 中可以修改建立用户时的默认密码最长有效期
磁盘和文件系统
-
fidisk -l 查看系统的所有硬盘信息
-
fdisk -l /dev/sda 查看指定硬盘的信息
-
fdisk + 磁盘路径 :进入一个交互式界面,进行磁盘的分区
n 创建分区
p 查看分区情况
l 查看支持的文件分区类型(w95 swap等…)
t 转换分区的文件分区类型
d 删除分区 -
初始化分区,装文件系统
mkfs -t [系统类型/xfs] /dev/sdb1
mkswap /dev/sdb2
swapon /dev/sdb2 启动指定交换分区
swapoff /dev/sdb2 停止指定交换分区 -
挂载设置好的分区
mount /dev/sdb1 /mnt/cdrom1
mount /dev/sdb2 /mnt/cdrom2- mount -o -loop iso镜像文件 /mnt/cdrom 将iso文件挂载到/mnt/cdrom*
拓展: /etc/rc.d/rc.local 开机时要加载的本机配置文件
完成上述步骤即完成了一个新磁盘的分区和挂载,可通过挂载的的目录来访问磁盘的内容
- mount -o -loop iso镜像文件 /mnt/cdrom 将iso文件挂载到/mnt/cdrom*
-
df -TH : 查看系统中的所有分区挂载点资源使用情况详细信息
-
free -g
转移home文件
lsblk看到新硬盘为sdc
fdisk /dev/sdc 新建一个分区sdc1
blkid
mkfs.xfs /dev/sdc1 创建文件系统
mkdir /mnt/home 创建新的挂载点
mount /dev/sdc1 /mnt/home 将光盘进行挂载
cp -av /home/. /mnt/home 将原来home下的所有文件复制到/mnt/home下
ll mnt/home
du -sh /mnt/home
du -sh /home 比较两文件夹的大小,看复制是否完整
vim /etc/fstab 命令模式下写入:r!blkid /dev/sdc1 修改后按wq保存退出
mount -a 使挂载生效
df -h 查看占用
umount /home 取消挂载
rm -rf /home/* 删除home中的文件
磁盘分区管理2 动态磁盘lvm
- 动态磁盘用于动态的扩展或者是缩小磁盘的大小,我们昨天学习的常见xfs磁盘不能够动态扩容,要想对xfs的磁盘扩容,我们只能将原先的文件复制下来,再将原先的目录挂载到新的大磁盘当中,然后再将cp下来的内容复制过来,其原理类似于迁移home。但是lvm就可以动态的扩展磁盘,就像windows里面一样。
- pv(物理卷) 由一个硬盘转换过来
pvscan [磁盘路径] 查看当前系统的物理卷信息
pvcreate + 磁盘 / 分区 /dev/sdb 将指定的磁盘/分区转换成物理卷
pvdisplay [磁盘路径] 查看当前磁盘的物理卷信息
pvremove 物理卷 /dev/sdb 将指定的物理卷删除,还原成最普通的磁盘 - vg(卷组) 逻辑结构,包含一个或多个物理卷
vgscan 卷组名 查看指定卷组的详细信息
vgcreate 自己起的卷组名 要卷组化的物理卷
vgdisplay 卷组名 查看指定卷组的详细信息
vgremove 卷组名 删除指定的卷组
vgextend 卷组名 要卷组化的物理卷名字
vgreduce - lv(逻辑卷) 一个标准的分区
lvscan 查看已经建立的逻辑卷
lvcreate -l 100%VG -n data /dev/GP 新增vg逻辑卷 且将指定的卷组的100%容量都vg
lvdisplay 查 看系统的逻辑卷信息
lvremove /dev/gp/data 删除指定的逻辑卷组
lvextend -L +10G /dev/GP1/data1
lvreduce
将扩展的容量加载到目前使用的分区中:
xfs_growfs /dev/GP/data //或在使用lvextend扩容时加 -r 选项
lvextend -r -L +3G /dev/GP/data
自上而下依次建立
ps:磁盘-----》物理卷--------》卷组(此时会在原来的物理卷下面自动生成一个文件,例如/dev/sdb/GP1)---------->逻辑卷(此时又会在原来卷组的下面自动生成一个文件,例如/etc/sdb/GP1/data)
lvm案例1
两块磁盘为sdb1 5G 和sdc1 5G
1.将sdb1转换为物理卷
2.将物理卷sdb1转换为卷组GP
3.将GP划分为逻辑卷data
4.将sdc1扩容到卷组GP
5.将卷组GP中3G的容量扩展到逻辑卷data
6.将卷组GP中剩余的容量创建为逻辑卷file
7.格式化两块逻辑卷为xfs并挂载到/data、/file
8.删除2块LVM逻辑卷,使得恢复为刚插入服务器时的状态。
lvm案例2
案例2:
现系统已添加2块 5G硬盘
1.对两块硬盘转换为物理卷
2.将两块物理卷合成为卷组gp
3.将卷组gp 3G分给逻辑卷data
4.将卷组gp 5G分给逻辑卷file
5.将data格式化为xfs挂载/data
6.将file格式化为xfs挂载/file
7.将卷组剩余的2G扩容给file
8.通过命令确定file分区的大小
9.设置两块分区为开机自动挂载
磁盘配额
限制资源的使用,防止一些恶意软件
文件数量限制(软限制,硬限制),磁盘容量限制(xG)
-
确认磁盘配额工具是否存在 rpm -qa xfsprogs 没有的话就用yum源安装
-
磁盘配额是独立的分区针对用户和组来进行限制的 ,因此我们在做实验之前,应该先将一个对立的分区挂在出来
-
mount -o usrquota,grpquota /dev/GP/data /abc //让磁盘以支持用户和组权限控制的方式挂载到指定的abc挂在点
-
xfs_quota -x -c ‘limit -u bsoft=10M bhard=20M isoft=5 ihard=10 zhangsan’ /abc //针对张三用于进行限制,限制其文件创建软限制5 ,应限制10 ,容量软限制10M,硬限制20M 当超过软限制是会发出警告,但可以执行。但超过应限制时就会报错,且不执行。
-
xfs_quota 磁盘配额命令的相关选项
-x //专家模式,表示可以使用所有管理命令
-c //直接调用相关命令进行配置,而不进入交互式界面
limit //单引号内的命令为设置具体的磁盘配额参数
-u //表示为用户设置配额,-g为组
bsoft //磁盘容量软限制
bhard //磁盘容量硬限制
isoft //文件数量软限制
ihard //文件数量硬限制
0表示无限制 -
查看刚刚定义的磁盘容量配额:
xfs_quota -c ‘quota -uv zhangsan’ /abc Disk quotas for User zhangsan (1000)
Filesystem Blocks Quota Limit Warn/Time Mounted on
/dev/mapper/GP-data
0 10240 20480 00 [--------] /abc
- 查看文件数量配额的方法为:
xfs_quota -c ‘quota -i -uv zhangsan’ /abc
Disk quotas for User zhangsan (1000)
Filesystem Files Quota Limit Warn/Time Mounted on
/dev/mapper/GP-data
0 5 10 00 [--------] /abc
-
验证磁盘配额限制效果:
#chmod 777 /abc //给文件夹授权,方便zhangsan用户写入数据
#su zhangsan //切换为zhangsan用户验证
$ cd /abc
$ touch 1 2 3 4 5 6 7 8 9 10 11 //连续创建11个文件,第11个失败
touch: 无法创建"11": 超出磁盘限额
$ ls
1 10 2 3 4 5 6 7 8 9 //只有10个
$ rm -rf /abc/* -
验证磁盘容量限制:
$ dd if=/dev/zero of=/abc/a.txt bs=1M count=15 //先创建15M,由于限制20M,所以不会报错
$ dd if=/dev/zero of=/abc/b.txt bs=1M count=10 //再创建10M,由于之前已有15M,因此会报错,且只能再写入5M数据
dd: 写入"/abc/b.txt" 出错: 超出磁盘限额
记录了6+0 的读入
记录了5+0 的写出
5242880字节(5.2 MB)已复制,0.00458746 秒,1.1 GB/秒
$ ll //查看文件容量时,也只有20M,并不是25M
总用量 20480
-rw-rw-r-- 1 zhangsan zhangsan 15728640 7月 13 20:56 a.txt
-rw-rw-r-- 1 zhangsan zhangsan 5242880 7月 13 20:57 b.txt
xfs_quota -x -c ‘report -abi’ //查询系统中所有分区的磁盘配额情况,b为容量,i为文件数量
CentOS 7操作系统之前磁盘配额:
#mount -o remount,usrquota,grpquota /dev/test1/data1 123 //重新挂载,
#mount -o usrquota,grpquota /dev/test1/data1 123
#setenforce 0 //临时关闭 SElinux
quotacheck -ugcv /dev/test1/data1 //在data1文件系统中生成配额文件,
ls -l /home/123/aquota.* //查看是否有生成的配额文件,有两个文件表示支持配额
以下设置为:限制磁盘软限制为8M左右,硬限制为10M左右,文件数量软限制为5个,文件硬限制为8个
edquota -u zhangsan //设置用户张三的配额
Disk quotas for user zhangsan (uid 500):
Filesystem blocks/已使用磁盘容量 soft/磁盘容量软限制Kb hard/磁盘容量硬限制KB inodes/已拥有的文件数量 soft/文件数量软限制 hard文件数量硬限制
/dev/mapper/test1-data1 0 8000 10000 0 5 8
edquota -g data //设置组data的配额
edquota -t //修改软限制默认宽限期时间,单位可以为天days、小时、分、秒等
quotaon -ugv /home/123 //启用磁盘配额功能,每次开机系统会自启,不需要再次设置
重启磁盘配额功能:
quotaoff -ugv /home/123
quotaon -ugv /home/123
#验证:使用用户张三在设置配额的目录中新建文件,进行验证,超过限额后将会报错
#dd if=/dev/zero of=/home/123/a.txt bs=1M count=100 //在123目录中生成一个100M的文件
quota -u zhangsan //查看使用情况
repquota /home/123
进程(ps top)和任务计划管理(at crontab)
程序:保存在硬盘、光盘等介质中的可执行代码和数据静态保存的代码
进程:在CPU及内存中运行的程序代码动态执行的代码
每个进程可以创建一个或多个进程
- ps aux 静态查看系统的所有进程
a 所有于进程有关的进程
u 以用户为主的格式显示
x 与终端无关的
tty1 本地终端 pts/0 远程终端 - ps -elf 同上
- top 动态的查看系统进程信息
M 按照内存的使用率查看
P 按照cpu的使用率来查看 - pgrep 按照特定条件查询进程
pgrep -lu root 查看root用户运行的进程
pgrep -lt tty1 查看tty1中的运行的进程
pgrep - pidof + 进程名称 查看指定进程的信息
pdiof sshd 查看sshd进程 - pstree apu 以进程树的方式查看系统的所有进程信息
a 显示完整信息u
u 列出对应用户名
p 列出对于的pid号
*yum provides /pstree 查看那个安装包提供了pstree功能
-
进程控制
运行xxxx & 将进程放到后台运行
jobs -l 查看后台运行的程序
fg 进程id号 将后台运行的进程掉到前台来
bg 进程id号 将后台暂停的任务回复运行(在后台) -
终止进程
kill -9 pid号 杀死指定pid’的进程
killall 名字 杀死指定名字的进程(相关进程全部杀掉(父进程,子进程)) 例如 killall sshd 就能杀出所有的sshd程序相关的进程 -
pkill 根据指定条件来杀死进程
-U 指定用户
-t 根据指定终端 -
一次性计划任务
at / atd 一次性计划任务 默认at需要安装
ctrl +d 保存提交 atq 查看一次性任务计划
[root@pi17ar1m home]# at 09:50 2021-7-17
rm -rf / home/*
11.周期性计划任务 需要优先安装crontab服务
crontab -e 创建一个周期任务计划文件
分钟 小时 日 月 星期 50 3 2 1 * 一月二号三点五十分执行
分钟 取值为从0到59之间的任意整数
小时 取值为从0到23之间的任意整数
日期 取值为从1到31之间的任意整数
月份 取值为从1到12之间的任意整数
星期 取值为从O到7之间的任意整数,O或7优表星期曰
命令 要执行的命令或程序脚本
[root@pi1lar1m back]# tar zcf /back/httpd.back.'date +%F_%T`.tar.gz /etc/httpd 利用时间戳来实现不同的名字
crontab -r 删除计划任务
查看后台进程:jobs -l
在运行命令后加上 &,将现在运行的进程放到后台运行;例:cat /dev/zero >/dev/null &
挂起前台进程到后台:ctrl z 将正在运行的前台进程调到后台并暂停;
恢复后台进程到前台:fg 后台进程编号(并非pid) 将后台暂停的进程调到前台继续运行
分析和排查系统故障
-
日志分析 由rsyslog统一管理
用户日志:记录用户的一些操作 如用户新增,组的创建
程序日志:记录每一个程序的所作所为 如appach的 access_ log 和err_log
内核日志和系统日志: -
默认放在/var/log 下面
内核及公共消息日志 ./lvarllog/messages
计划任务日志 ·/var/log/cron
系统引导日志 ./lvar/log/dmesg
邮件系统日志 ·/var/loglmaillog.
用户登录日志 · /varllog/wtmp· /varlrun/btmp /lvarllog/lastlog· ./var/loglsecure -
日志级别
0 EMERG(紧急):会导致主机系统不可用的情况
1ALERT(警告)∶必须马上采取措施解决的问题
2 CRIT(严重):比较严重的情况
3 ERR(错误):运行出现错误
4 WAGRNIN(提醒):可能会影响系统功能的事件
5 NOTICE(注意):不会影响系统但值得注意
6 INFO(信息):一般信息
7 DEBUG(调试):程序或系统调试信息等
users . who、w、
last:用户最近登录情况l
astb:登录失败的用户记录
- 修复mbr扇区故障
mbr扇区存放着系统中的所有硬盘分区信息,如果mbr扇区出现故障,系统启动就会终端,无法加载操作系统,开机后就会黑屏
step1:将自身的mbr扇区被分到“异地”
step2:以centos安装光盘倒进急救模式
step3:从备份文件中修复
fdisk /dev/sdb //新磁盘分区↓
mkfs -t xfs /dev/sdb1 //格式化新磁盘↓
mount /dev/sdb1 /backup/ //挂载到目录↓
dd if=/dev/sda of=/backup/sda.mbr bs=512 count=1 //备份mbr到其他目录
dd if=/dev/zero of=/dev/sda bs=512 count=1 //模拟mbr文件故障!
mkdir /l23
mount /dev/sdb1/1234
dd if=/123/sda.mbr of=/dev/sda
reboot
- grub引导故障
linux网络设置
- ifconifg / IP address 查看当前的网络设置
- hostname 查看当前主机名 /etc/hostname文件
- route - n 查看当前系统的路由条目
- netstat -antp 查看·系统的网络链接状态 可用于查看网络服务是否打开(ssh apache等)
- ping 测试网络的连通性
- traceroute 【目的主机ip】 测试当前主机到目的主机的路径
- nslookup 域名解析
- ifup 网卡 ifdown 网卡
添加网卡的一些命令
con delete 删除 ‘有线连接 1
nmcli con add con-name ens37 type ethernet ifname ens37
最后在去查看下/etc/sysconfig/network-scripts/
dhcp服务
- 用于动态分配ip地址等信息 其中包括ip地址,子网掩码,默认网关,dns服务器.
- 高效管理,不易出错
- dhcp分配 分为四个部分
step1:客户机发出dhcp-discover请求,在局域网在询问(谁是dhcp服务器,我需要ip分配)
step2:当dhcp服务器收到请求后,返回一个dhcp-offer(返回一个ip的预分配)
step3:客户机对于第一个收到的dhcp-offer给予响应,发送出dhcp-request表示我收到了你的ip预分配信息,我要请求剩下的IP信息
step4:dhcp服务器对于收到的dhcp-request给予相应,发送出dhcp-ack,其中包含剩下的ip信息;
dhcp服务器的搭建以及相关配置
yun -install dhcp
主配置文件放在 /etc/dhcp/dhcpd文件中 默认情况下这个文件的内容是空白的,我们可以通过cp -p命令来将模板的内容复制过来 /usr/share/doc/dhcp* /dhcpd.conf.example
主配置文件:letc/dhcpd.conf
执行程序: /usr/sbin/dhcpd、lusr/sbin/dhcrelay
执行参数配置: letc/sysconfig/dhcpd
#vim /etc/ dhcp/ dhcpd.conf
/进入dhcp配置又件,添加如下内容:
log-facility local7; //默认日志会出现在:/var/log/messages v
option domain-name-servers 61.139.2.69;//设置客户机要获取的DNS地址
subnet 192.168.1.0 netmask 255.255.255.O {↓
range 192.168.1.200 192.168.1.210;↓
option routers 192.168.1.1; //指定网关↓
default-lease-time 86400; //单位秒数,此为24小时↓
max-lease-time 172800 ;
option domain-name-servers 61.139.2.6 9 ; ↓}↓
host client {
hardware ethernet 00-50-56-CO-00-O1; //mac地址绑定,dhcp服务器将会根据绑定记录给主机分配以下IP地址
fixed-address 192.168.1.208;
}
- dhclient -d ens33 获取ip
- dhclient -r -d 释放ip
当我们启动dhcpd服务发生错误时,我们可以通过查看其报错信息来修改,或者是通过查看/var/log/messages日志文件来查看
samba服务器
提供服务器的资源共享
nmbd:提供基于netbios的主机名解析
smbd: udp137 138
- yum install samba 445端口
- 修改samba的著配置文件
ftp文件传输协议
类似于上面的samba、但是前者是基于内网的,而ftp是基于互联网的,应用更加的广泛
基于vsftpd服务来提供的ftp协议
控制链接:tcp21号 用于创建链接
数据连接:tcp20号 用于传输数据
控制连接创建完整之后,在数据连接时存在两个模式
主动模式:服务器端从20端口去主动向客户端发起链接
被动模式:服务器的某个端口,等待着客户端来链接
servermap 状态防火墙
文本模式,二进制模式
用户类型:匿名用户,本地用户,虚拟用户
服务端程序:wu-ftp proftpd vsftpd
客户端程序:ftp命令,windows资源管理器
控制列表又件./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 中的用户
max_clients=0:限制并发客户端连接数,0表示不限制↓
max_per_ip=0:限制同一IP地址的并发连接数,0表示不限制
xferlog_enable=YES:是否记录用户上传下载日志
xferlog_std_format=YES:启用xferlog格式记录日志,no则使用vsftpd的格式
#chown_uploads=YES /开启用尸上传数据归属↓
#chown_username=whoever //上传的数据属于whoever用户↓
#nopriv_user=ftpsecure //定义唯―一个ftp用户,该用户只用于ftp↓
#async_abor_enable=YES //取消下载后客户端不挂起↓
#asci王_upload_enable=YES /使用文本模式上传↓
#ascii_download_enable=YES //使用文本模式下载,通常情况下用户数据包含文本和图片视频等,因此服务器会自动切换模式上传下载相关数据,文本用ascii,图片用二进制↓
#ftpd_banner=Welcome to blah FTP service./ /FTP登录欢迎信息↓
#deny_email_enable=YESJ
#anned _email_file=/etc/vsftpd/banned_emails //若是启动这项功能,则必须提供一个文档banner_emails,内容为email address。若是使用匿名登入,则会要求输入email address,若输入的email address在此文档内,则不允许进入。
#pasv_enable=YES↓
#port_enable=YES
//只能出现一个,表示连接模式,此项为主动V
常用的本地用户FTP配置项↓
chroot_local_user=YES :是否将用户禁锢在主目录↓#chroot_list_enable=YES : v
#chroot_list_file=/etc/vsftpd/chroot_list /当登陆FTP服务器时,被列在chrootlist文件中的用户,不可以访问FTP根目录以外的目录。↓
#ls_recurse_enable=YES //是否可以使用ls -R命令,递归列出子文件夹内的信息↓
local_enable=YES :是否启用本地系统用户↓
local_umask=O22 :本地用户所上传文件的权限反掩码↓local_root=/var/ftp:设置本地用户的FTP根目录
常用的匿FTP配置项↓
anonymous_enable=YES:启用匿名访问V
anon_umask=022:匿名用户所上传文件的权限掩码↓anon_root=/var/ftp:匿名用户的FTP根目录anon_upload_enable=YES:允许上传文件↓
anon_mkdir_write_enable=YES:允许创建目录↓anon_other_write_enable=YES:开放其他写入权anon_max_rate=0:限制最大传输速率(字节/秒)↓
目录的umask 777 文件的umask 666
ftp的权限时ftp在conf配置文件里面的赋予权限和文件本身权限的结合, 要两者都为允许写入时方可写入,有一方拒绝写入权限时,都不可以写入
修改 /etc/vsftp/user-list 在里面删除/新增 用户名 则其中的用户就默认存在于黑名单/白名单
匿名用户上传文件的所属时ftp程序用户
dns服务器的搭建
apache服务器的搭建
lamp环境的搭建
ftpyum源和pxe
kvm虚拟技术和sshd’公密钥
linux常用的符号
1.$ 普通用户 #root用户 !强制执行 |管道符,将前面的输出作为后面的输入 xargs 将内容以一行的形式显示出来
-
find / maxdepth 2 -type f -name "abc*" | xargs
maxdepath 2 :两层目录的范围 -type:文件的类型 f;file
-
find / maxdepath 2 -type f -name “abc*” | xargs fm -rf
-
find / maxdepath 2 -type f -name “abc” |xargs ls -l
-
find /maxdepath 2 -type f -name “abc*” |xargs -i cp { } /tmp 将前者的输出 用i 重新定位到后面的花括号中去 再将其cp到后者的/tmp中去 同理类比mv’
-
find / maxdepath 2 -type f -name “abc*” |xargs cp -t /tmp 将前者的输出cp到后者 同理类比 mv
-
’ ’ 将其中的内容原封不动的显示出来 echo ’ dasda,dadad.dasd, KaTeX parse error: Double superscript at position 20: …' “ ” 功能和' '̲ 相似,,但是当遇到之类的具有特殊含义的字符时,他会将其进行调用后,在输出如 echo "dsad,dsad,das . KaTeX parse error: Double superscript at position 10: path " ' '̲ 反批号 先…()) 同上
-
重定向 1> 标准输出重定向 等价于> 将输出结果追加到后面的指定文件中去 列入 echo 123 >1.txt 但是这中输出重定向会将文件原有的内容覆盖掉
>> 追加从定向,这种重定向是直接将内容追加到文件的末尾部分
2> 错误重定向,将前面命令的 报错信息,输出到后面的指定文件中去 同理会覆盖掉文件之前的内容
2>> 同上所述,是直接将报错内容追加到文件的末尾部分 -
将正确信息和错误的信息都追加到文件中去 &> echo dsadcc12 &> 1.txt
-
利用文件内容修改账户密码 passwd --stdin 张三 < 1.txt 使用stdin的话,文件内就只用写一行命令 如果不用stdin 则需要在文件中将密码写两次
-
cat >> 1.txt << EOF 作用就类似于echo
-
&& 前者执行成功后在执行后面的 || 前者执行失败后,在执行后者
-
模糊查询 * 匹配任意多个字符
-
{} 生成一行序列 echo {1…10} 1.2.3.4.5.6.7.8.9.10
echo {1…10…2} 1.3.5.7.9 中间间隔2个数字
生成序列组合 echo {a,b}{1,2} 按照乘法分配律的方法来进行组合 同理{}{}{}{}{}{} -
利用序列组合来生成文件备份 cp /etc/passwd {,back}
-
基本的正则符号
^ _ 以什么开始 _# 以什么结束
. 点符号 表示任何一个字符 grep “.” text.txt grep “.” text.txt -o 显示匹配过程
\ 转义符 . 则表示 单纯的.符号 而不是上面的任意字符- 匹配前一个字符出现了0次或者多次 grep “0*” tex.txt 也就是查找出现了0的东西
.* 结合 表述一个或多个字符 grep “^o.*m#” text.txt 查找以o开头 m结尾的且om之间存在任意字符的东西 贪婪匹配问,他会尽可能地匹配,偶尔会将不时绝对满足的东西显示出来 因此我们需要指定更加具体的信息来进行过滤
- 匹配前一个字符出现了0次或者多次 grep “0*” tex.txt 也就是查找出现了0的东西
-
\n 换行 \t制表符号 \e为字符上颜色
-
括号符号 [abcd] grep [abcd] /home 查找a或b或c或d,ab,ac,ad… 任意一个匹配都行 【a-z】匹配a-z任意字符
-
括号和尖括号 [^] 排除 grep “[^abc]” 和上面的相反,不匹配adc 是以字符为单位的,而grep是以行为单位的
扩展正则符号
egrep
- +号 匹配出现了一次或多次 grep “0+” 和前面的号功能相似grep "0"
linux三剑客
- grep
- awk
- sed
shell脚本
多个命令的集合,不在交互式命令下执行,而是通过一个程序文件来执行