了解系统信息

硬盘大小

1
2
3
fdisk -l
/dev/sda 操作系统中第一块硬盘的名称以及所在路径
Linux操作系统一切皆文件 (文件名) sd (硬盘类型) a(第一块)

内存大小

1
cat /proc/meminfo

cpu大小

1
cat /proc/cpuinfo

收集系统信息

1
uname -a

Linux文件系统

1
2
3
4
5
6
7
8
9
10
11
12
13
/bin    普通用户和管理员都可以执行的命令
/sbin 只有管理员才能执行的命令 eg.关机重启
/boot 引导 主引导目录 独立的分区 启动菜单 内核
/dev device 设备文件存放目录
/etc 配置文件存放目录
/home 普通用户的家目录
/root 管理员的家
/media 光驱的挂载目录
/mnt 临时设备的挂载目录
/proc 里面的数据都在内存中,进程的所在目录
/tmp 临时文件存放目录
/usr 第三方软件的安装目录
/var 常变文件存放目录 eg.日志文件、邮件文件

挂载光驱

1
2
弹出光驱:umount /dev/cdrom
挂载光驱:mount /dev/cdrom /media

Linux文件类型的显示颜色

1
2
3
4
5
6
7
蓝色 目录
黑色 普通文件
浅蓝色 符号链接(快捷方式)
黑底黄字 设备文件 硬盘 sda
红色 压缩包
绿色 带有执行权限的文件
紫色 图片 模块文件

压缩和解压缩

文件压缩和解压缩

1
2
gzip bigfile
gunzip bigfile.gz
1
2
bzip2 bigfile
bunzip2 bigfile.bz2

目录(文件夹)打包压缩

1
2
tar -zcf /tmp/allfile.tar.gz /tmp/allfile
tar -jcf /tmp/allfile.tar.bz2 /tmp/allfile

目录(文件夹)解压缩并解包

1
2
3
tar -zxf /tmp/allfile.tar.gz -C /tmp
tar -jxf /tmp/allfile.tar.bz2 -C /tmp
-C 指定解包位置

vim

模式切换

1
2
3
命令模式 -> 输入模式:i
输入模式 -> 命令模式:Esc
命令模式 -> 末行模式::

末行模式命令

1
2
3
4
5
:wq   保存并退出
:q! 不保存退出
:set nu 显示行号
:% s/old/new/g 每一行中的old替换成new
:50,56 d 删除50-56行的数据

命令模式命令

1
2
3
4
5
6
7
8
0       光标移动到当前行首
$ 光标移动到当前行末
yy 复制当前行
2yy 复制当前行以及后一行,其他数字以此类推
p 粘贴到当前行下一行
dd 删除当前行
gg 回到第一行
G 回到最后一行

Linux软件安装——封装后的软件包

后缀名

1
2
3
rpm     red hat系统
deb debian系统
源码包 不考虑系统版本

有关软件包安装的命令

1
2
3
4
5
6
rpm -qa             列出所有已经安装的rpm包
查询特定的rpm包使用管道符:rpm -qa | grep "tree"
rpm -qpi 软件名 确认该软件的作用
rpm -qpl 软件名 确认该软件的安装路径(无法修改)
rpm -ivh 软件名 安装软件
rpm -e 软件名 软件卸载

Linux软件安装——yum

1
2
yum install 软件名
yum remove 软件名

用户和组

三个重要文件

1
2
3
4
5
6
7
8
9
10
11
12
13
/etc/passwd     保存操作系统中所有的用户信息
root : x : 0 : 0 : root : /root : /bin/bash
每一条目共7个字段,用冒号隔开
字段1:用户名
字段2:密码占位符
字段3:用户的UID
0 表示超级用户
500-60000 普通用户
1-499 程序用户
字段4:基本组的GID,先有组才有用户
字段5:用户信息记录字段
字段6:用户的家目录
字段7:用户登录系统后使用的命令解释器
1
2
3
4
5
6
7
8
9
10
/etc/shadow     保存了用户密码信息
root : $6$ME9wjPHAid5ds$PO/GlBVEt1 : 18325 : 0 : 99999 : 7 :::
字段1:用户名
*字段2:用户的密码加盐并通过散列算法后的字符串(sha)
字段3:距离1970/1/1密码最近一次修改的时间
字段4:密码的最短有效期
*字段5:密码的最长有效期(建议时间 90)
字段6:密码过期前7天警告
字段7:密码的不活跃期
字段8:用户的失效时间
1
/etc/group      记录了系统中所有组的信息

建立和调整用户属性

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
1、建立一个名为class1的组ID为1000,class2的组ID为2000
建立:
groupadd class1
groupadd -g 2000 class2
修改gid:
groupmod -g 1000 class1
查看:
vim /etc/group

2、建立tom用户要求其基本组是class1,附加组为class2,tom用户的UID为600
建立:
useradd -g class1 -G class2 -u 600 tom
修改:
usermod
查看:
id tom

3、建立一个程序用户UID为250,用户名为testuser,没有家目录(程序用户没有登录系统权限)
useradd -u 250 -M -s /sbin/nologin testuser
-M:没有家目录
-s /sbin/nologin:不能登录

4、为tom用户设定密码为123,并设定密码最长有效期为90天,将用户密码进行锁定使其无法登录
passwd tom 设定密码
chage -M 90 tom 设定密码最长有效期
或者修改配置文件/etc/login.defs
passwd -l tom 锁定
passwd -u tom 解锁
查看:
passwd -S tom
vim /etc/shadow

5、删除tom用户和testuser用户,删除class1组和class2组
userdel -r tom (-r 连同用户的家目录一起删除)
userdel -r testuser
groupdel class1
groupdel class1

文件目录权限

列出文件信息

1
2
3
4
5
6
ls -a       列出所有文件,包括隐藏文件
ls -l(ll) 列出文件详细信息
文件:-rw-rw-r--.(权限) 1(链接数) centos(所属用户) centos(所属组) 12(文件大小,字节) Sep 12 10:07(最后修改时间) test.txt
目录:drwxrwxr-x.(权限) 2(子目录数) centos(所属用户) centos(所属组) 6 Sep 12 10:06(最后修改时间) testdir
ls -ld 列出某一目录的详细信息
ls -h 用人能看懂的方式显示文件大小

权限详细

1
2
3
4
5
6
7
8
9
10
11
12
13
14
- rw- rw- r--.
d rwx rwx r-x.
共4个字段
字段1:文件类型
-普通文件
d目录文件
l符号链接文件
b块设备
字段2:文件所属者的权限
r w x
文件 读取 写入 可执行
目录 查看目录文件 增删文件 进入目录
字段3:文件所属组的权限
字段4:其他用户的权限

赋权限

1
2
3
4
5
方法1:chmod 对象 算术运算符 权限 文件
对象:u-所属者 g-所属组 o-其他用户 a-所有用户
算术运算符:- + =
权限:r w x
方法2:chmod 777 文件

改变文件的所属者和所属组

1
2
chown 用户 文件
chgrp 组 文件

粘滞位 sgid suid权限

1
2
3
4
5
6
7
8
9
10
粘滞位针对目录赋权,目录中创建的文件只有建立者可以删除
chmod o+t 文件
chmod o-t 文件
sgid 针对目录建立的权限,在该目录中建立的文件所属组继承父目录的所属组
chmod g+s 文件
chmod g-s 文件
suid 对可执行文件建立。谁运行该文件,就具有该文件所属者的权限
chmod u+s 文件
chmod u-s 文件
eg. chmod u+s /usr/bin/vim

查找有异常权限的文件

1
2
3
4
查找有suid权限的可执行文件
find /usr/bin -perm 4755
其中权限的第一个4表示suid权限,如果是2则表示sgid权限,如果是1则表示粘滞位
权限的多一位也可以用于赋权限

不再允许添加新用户

1
2
3
4
5
6
7
8
9
新建用户时会更改的文件
/etc/group
/etc/passwd
/etc/shadow
home/xxxx
锁定文件从而不能添加新用户
chattr +i /etc/passwd /etc/shadow
查看文件是否被锁定
lsattr /etc/passwd

umask

1
2
3
4
5
6
7
一般目录的最高权限是777
一般文件的最高权限是666
用户创建的文件通过umask来确定其权限
root的umask是0022(第一位是特殊权限)
普通用户并且uid=sid的umask是0002

umask的设置在/etc/profile和/etc/bashrc两个文件中

网络地址配置

1
2
3
4
5
6
7
8
9
10
11
1. 确认网卡信息:ip addr / ifconfig
2. 关闭NetworkManager服务:systemctl stop NetworkManager
3. 网卡启用桥接模式,并配置网络地址:
ip addr add IP/掩码长度 dev ens33
4. 设置网关:
ip route add default via IP dev ens33
5. 配置DNS:
vim /etc/resolv.conf
nameserver 202.120.2.101
6. 关闭防火墙:
systemctl stop firewalld.service

日志文件

1
2
3
4
5
6
7
8
9
10
11
12
位置:/var/log
日志记录的配置文件:/etc/rsyslog.conf
其中配置方式为 日志类型.日志级别 ,如authpriv.*表示记录所有级别的登录日志
日志分类:
系统日志 /var/log/messages
登录日志 /var/log/secure
程序日志
日志记录的日志级别:
debug, info, notice, warning(warn), err(error), crit, alert, emerg(panic)
最不严重 -> 最严重

配置日志备份服务器:https://blog.csdn.net/weixin_43252204/article/details/105518163

WEB服务-apache

开启并使用apache

1
2
3
4
5
6
1. 启动服务
service httpd start
2. 验证服务是否开启
ss -antpl | grep 80
3. 主页建立
vim /var/www/html/index.html

httpd配置文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
位置:/etc/httpd/conf/httpd.conf
默认会开启共享目录功能,这样会导致别人可以远程下载/var/www/html中的内容,建议将其关闭:
Options Indexes FollowSymLinks改为Options FollowSymLinks
限制访问,将Require all granted修改为以下语句:
<RequireAll>
Require all granted
Require not ip 192.168.1.10 192.168.2.0/24
//拒绝192.168.1.10和192.168.2.0网段客户机访问
</RequireAll>
用户授权限制,只有通过指定的用户名密码才能访问网页:
设置用户名密码:htpasswd -c /etc/httpd/conf/httpuser test (-c表示新建文件)
设置该文件只有apache用户可读:
chown apache httpuser
chmod 400 httpuser
修改配置文件:
Authtype basic
Authname "Input username and password" // 提示信息
Authuserfile /etc/httpd/conf/httpuser
Require valid-user

lamp平台搭建

1
2
3
4
5
6
7
8
9
10
11
12
13
14
1. 安装apache
2. 安装mysql
yum install mysql-server // 安装
service mysqld start // 启动
mysqladmin -u root -p password "123.sck" // 设置root密码
mysql -u root -p // 登录数据库
3. 安装php
yum install php
yum install php-mysqlnd
yum install php-mbstring
4. 配置php配置文件
vim /etc/php.ini
将short_open_tag从Off改为On
5. 在/var/www/html新建一个php文件

iptables防火墙

1
2
3
4
5
四个表:
raw
mangle
nat 网络地址转换
filter 过滤