linux系统优化、用户权限
系统优化相关
1.了解自己的系统情况
cat /etc/redhat -release # 简要查看系统情况
uname -r/-a/-n/-s/... #
2.用户信息
创建用户:
useradd xxx # 创建一个用户
passwd xxx # 给这个用户设置密码
su - xxx # 切换到这个用户
ctrl + d 切换回管理员用户 # 切换到管理员用户时,因为权限升级,所以会要求输入密码
3.环境变量
特征:
01. 由⼤写字⺟组成
02. 配置的环境变量所有⽤户都必须遵循
03. 系统中默认就有的变量信息
第⼀个环境变量:PS1 (命令提示符信息)
echo $PS1
修改环境变量:
第⼀个⾥程:临时修改
PS1="[\u@\h \w]\$" 错误修改环境变量⽅式
export PS1="[\u@\h \w]\$" 正确修改环境变量⽅式
第⼆个⾥程:永久修改
vim /etc/profile
export PS1="[\u@\h \w]\$ " # 添加内容
source /etc/profile # 重新加载⽂件内容
4.下载软件优化操作
1)需要修改yum源⽂件(指定使⽤哪个yum软件仓库) # 类似于pip换源
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
yum repolist
PS:万⼀阿⾥云不好⽤,可以选择清华yum源
https://mirrors.tuna.tsinghua.edu.cn/help/centos/
2)需要修改yum扩展源epel源
第⼆个特殊的软件仓库
# wget指令可能没有,通过yum指令下载即可
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
检查测试
yum install -y bash-completion-extras
3)所有源⽂件更新进⾏最终确认
yum repolist
"""
闲暇时光
yum install sl cowsay -y
sl
cowsay
animalsay
"""
安全相关的优化
1.修改selinux设置
限制皇帝root⾏为,但是实际应⽤不会使⽤它来限制root较为麻烦,基本都是关闭。
# 关闭selinux服务程序
# 永久关闭
vim /etc/selinux/config --》对这个文件的配置进行修改
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - No SELinux policy is loaded.
SELINUX=disabled
将selinux这个等号后的内容改为disabled即可
ps:⽂件修改之后,配置不会⽴即⽣效,需要重启liunx操作系统使之⽣效
# 临时关闭
setenforce # 设置
# usage: setenforce [ Enforcing | Permissive | 1 | 0 ]
getenforce # 查看
2.防火墙服务设置
centos7:firewalld服务
对服务进行状态查看等系统命令:
systemctl stop firewalld.service # 临时关闭防火墙
systemctl status firewalld.service # 查看防火墙服务状态
systemctl disable firewalld.service # 禁用防火墙服务
应⽤防⽕墙场景
建议开启:服务器可以被外界访问(公⽹/外⽹ip)
建议关闭:服务器可以被内部访问(私⽹/内⽹ip)
建议关闭:服务器处于⾼并发状态(公⽹/外⽹ip) 软件防⽕墙关闭 硬件防⽕墙进⾏安全控制
ps:systemctl
是观念与系统的相关指令
3.字符编码
echo $LANG # 查看当前系统字符编码
export LANG=en_US.GBK # 临时修改
echo "export LANG=en_US.GBK" >> /etc/profile # 每次启动都修改,也就相当于永久修改
source /etc/profile # 立即生效
一般设置为UTF-8即可
虚拟机与主机间上传下载
1.linux和windows系统之间传输数据信息
查看安装的软件
rpm -qa|grep vim
ps:有些安装的软件可能无法被rpm看见
-
安装和传输数据相关的软件(工具准备)
yum install -y -lrzsz
-
利用lrzsz软件将数据进行传输
linux传输到win的指令,执行后会将当前目录下对应的文件传给windows系统,此时win系统会弹出弹窗选择文件存放位置。
sz -y 数据信息(文件名)
win传输到linux指令,执行后,win系统弹出弹窗选择文件,确定后会将此文件传输到执行指令的目录下。
rz -y
-
xshell等软件支持拖拽将文件拖到linux系统中
2.查看系统文件数据信息
比较大的文件查看具体内容:
less 文件名
指令 | 含义 |
---|---|
less 文件名 | 逐页读取(按enter逐行往下加载) |
head -n5 文件名 | 读取文件前五行 |
tail -5 文件名 | 文件后5行读取 |
tail -f 文件名 | 实时监控日志方法 |
tail -F 文件名 | 同上,如果文件被删除重创依然生效 |
3.如何检索文件中的指定内容信息
指令 | 含义 |
---|---|
grep 字符串 文件名 | 根据字符串检索文件 |
grep -n 字符串 文件名 | 附带行号 |
grep -v 字符串 文件名 | 取反操作 |
sed/awk | 也是检索指令,过滤能力一般 |
4.如何替换文件数据信息
执行这种命令时,注意先备份文件和先检索查看。
指令 | 含义 |
---|---|
sed -n 检索字符串 文件名 | 检索字符串进行查看 |
sed -n 修改字符串格式 文件名 | 模拟替换 |
sed -i 修改字符串格式 文件名 | 真实进行替换 |
ps:修改字符串格式暂没有整理,去百度查阅。
别名功能
1.起别名:
alias cp='cp -i' # 这里的-i指人为交互显示提示信息
- 其中alias是别名关键字
- cp是别名
- 等号后必须是单引号引起来的指令
2.查看别名具体的指令:
which cp # 用which查看别名为cp的实际执行命令
3.取消别名而直接执行指令:
\cp 文件 文件路径
4.永久设置命令:
直接利用alias指令是临时的设置别名,而永久设置别名:
echo alias rm='rm -i' >>/etc/profile
就是将别名指令追加到启动文件中
文件属性信息
1.查看文件属性信息
ls -lhi /etc/
67683849 drwxr-xr-x. 3 root root 101 Nov 30 12:13 adir
每列内容 | 含义 |
---|---|
67683849 | inode信息 index node 索引节点 |
drwxr-xr-x. | 文件类型 文件权限 开头的d就是文件类型 |
第三列 | 硬链接数 |
第四列 | 数据所属用户信息 |
第五列 | 数据所属用户组信息 |
第六列 | 文件大小 |
第七列 | 修改时间 |
第八列 | 文件名称 |
2.关于文件类型
字母 | 文件类型 |
---|---|
d directory | 目录类型的文件 |
- file | 普通类型文件 |
l softlink | 连接类型 |
c character | 字符类型的⽂件(会源源不断的产⽣字符信息) |
b block | 块设备类型的文件 |
s socket | 和网络接口通讯相关 |
p pip | 管道文件 |
3.文件相关指令
指令 | 含义 |
---|---|
file 文件名 | 查看文件类型 |
which 命令 | 显示命令的绝对路径信息 |
whereis 命令 | 显示命令路径以及文件 |
locate | |
find 目录区域 文件类型 具体条件 | 查找文件 |
tar -zcvf 压缩包信息(箱子) 数据信息(物品1)数据信息2(物品2) | 压缩文件 |
tar -zxvf 压缩包 -C 指定路径 | 解压文件 |
find补充:
- find的文件类型是根据指定文件类型去找,如果没有限制,则用-type f
- find 的具体条件中的-name表示可以查找指定的文件
- 如果是-name "*.txt"则表示以.txt扩展名结尾的文件(实际上可以看做类似于正则匹配)
- -size +10k -size -10M表示文件大于10k但小于10M的文件
- find查找默认是递归的,可以通过-maxdepth 1 来将查找层级限制到一层
4.文件权限相关
示例:-rw-r--r--
第一个是文件类型,后面九位是文件权限,三个一组
每一组会有r、w、x三个权限
- r 可读 数字代表4
- w 可写 数字代表2
- x 可执行文件 数字代表1
如5其实就是1+4,代表r-x,6就是4+2,代表rw-
而三个一组每个组别的含义为:
- 第一组:属主的权限
- 第二组:文件所属用户组的权限
- 第三组:其他用户的权限
5.文件所属用户、用户组
在linux系统中,多⽤户操作系统,⽂件数据,系统进程信息都要有⽤户管理
创建⽤户: useradd oldgirl
# ⽅法⼀: 交互式设置密码
passwd oldgirl # ⼀定要加上⽤户名否则是设置root⽤户密码 输⼊确认密码信息
# ⽅法⼆: 免交互设置密码
useradd oldboy01
echo "12345"|passwd --stdin oldboy01 # >/dev/null
# ⽅法三: 即创建⽤户⼜设置⽤户密码信息(分号⽀持多个命令)
useradd jason;echo "12345"|passwd --stdin jason
系统中的用户都有:
- 超级管理员用户root id=0
- 普通用户 id在1000以上,它的权限由root指定
- 虚拟用户 id在1-999,用于管理服务进程