Linux复习--系统管理类(权限优化、备份策略、RAID、资源查看、启动流程、系统优化)
前言:本博客仅作记录学习使用,部分图片出自网络,如有侵犯您的权益,请联系删除
一、权限优化
1、文件的基本权限
以下知识点详细情况点击: Linux--用户身份和文件权限_linux用户文件权限-CSDN博客https://blog.csdn.net/lerp020321/article/details/140232127
1.1、文件身份
身份分类:所有者(u)、所属组(g)、其他人(o)
身份修改:
- chown 所有者:所属组 filename
- chgrp 所属组 filename
- -R 归属递归选项
1.2、权限结构分析
文件类型、所有者权限、所有组权限、其他人权限
符号 | 文件类型 |
---|---|
- | 普通文件 |
d | 目录文件 |
l | 符号链接文件 |
b | 块设备文件 |
c | 字符设备文件 |
p | 管道文件 |
s | 套接字文件 |
1.3、文件的权限含义
- r:文件内容查看权限(cat more less)
- w:文件内容编辑权限(vi echo)(但不能删除文件本身)
- x:文件的执行权限
1.4、目录的权限含义
- r:目录内文件列表查看权限(ls)
- w:目录内文件的增删、复制、剪切权限(touch rm cp mv)
- x:能否进入目录的权限(cd)
1.5、权限修改
- chmod [augo][+-=][rwx] filename
- chmod 644 filename
-
-R 权限递归选项
1.6、注意事项
- 给文件或目录分配权限时,先考虑所有者和所属组
- 遵循最小化权限原则:用什么权限给什么权限
- 修改目录及子文件归属或权限时,注意递归
- 文件基本权限是最常用、也是最有效的Linux安全防护手段
2、默认权限
2.1、计算方法
官方方法为逻辑与和逻辑非联合运算,建议使用权限字母方式计算
2.2、修改方法
- 临时修改:umask 0022
-
永久修改:配置文件:/etc/profile
2.3、注意事项
权限掩码目的是为了保证新建文件拥有默认权限,一般不需要手工设置
3、特殊权限
3.1、权限类型
- Set UID(SUID)
- Set GID(SGID)
- Sticky Bit(SBIT)
3.2、权限命令
- SUID:chmod u+s/4644 filename
- SGID:chmod g+
3.3、注意事项
- 特殊权限风险较大,禁止人为设置此类权限(SBIT权限风险较小)
- 特殊权限是为了让特定命令可以拥有足够权限运行
- 三个权限的操作对象有所区别,比如SUID只针对可执行文件文件,SGID可以针对可执行文件及目录,SBIT只能针对目录
4、ACL权限
4.1、权限命令
操作 | 命令 |
---|---|
添加 | setfacl -m ugo:rwx:user filename |
删除 | setfacl -x ugo:user filename |
清空 | setfacl -b filename |
默认 | setfacl -d ugo:rwx:username dirname(只针对目录) |
递归 | setfacl -R ugo:rwx:user filename |
查看 | setfacl -m m:rwx filename |
4.2、有效权限
设置:setfacl -m m:rwx filename
说明:有效权限是设置的ACL权限和mask权限相与的结果,也是最终生效权限
4.3、注意事项
- ACL权限一般在用户对文件身份不足时使用
- 使用ACL极易出现权限溢出,一定要注意使用(例如,对一个目录设置rwx权限并 递归执行)
- 在对文件设置ACL权限后,文件的所属组位置显示的不再是所属组权限,而是mask权限
- 注意区别-d和-R的区别:-d是保证后续新建文件拥有ACL权限,-R是为了让已存在的文件拥有ACL
5、sudo权限
5.1、配置文件
其配置文件路径为:/etc/sudoers;命令为:visudo
5.2、规则编写
编写规则的命令格式为:被授权者 可执行主机=(被授权者借用身份)可执行命令
5.3、执行规范
格式:sudo 授权命令(注意:五分钟内,再次执行授权命令不需要重复输入用户密码)
5.4、注意事项
- /etc/sudoers文件尽量使用visudo命令编辑,有纠错功能
- 授权时尽量授于具体的命令选项参数,以免出现过度授权,权限溢出问题
- 配置文件中编写授权时,命令要写绝对路径
6、文件系统属性权限
6.1、查看:lsattr
其常用参数如下:
参数 | 作用 |
---|---|
-a | 显示所有文件和目录 |
-d | 若目标为目录,列出目录属性,不显示目录下文件属性 |
6.2、设置:chattr
参数 | 作用 |
---|---|
[+ -] i | 如果对文件设置i属性,那么不允许对文件进行删除、改名,也不能添加和修改数据 如果对目录设置i属性,那么只能修改目录下文件的数据,但不允许建立和删除文件 |
[+ -] a | 如果对文件设置a属性,那么只能在文件中增加数据,但不能删除也不能修改数据 如果对目录设置a属性,那么只能在目录中建立和修改文件,但是不允许删除 |
7、面试题
7.1、简述Linux权限划分原则
- 注意权限分离(Linux系统权限、数据库权限不要掌握在同一个部门)
- 权限在满足使用的情况下,最小优先
- 减少使用root用户,尽量使用"普通用户+sudo提权"进行日常操作
- 重要系统文件,如:/etc/passwd、/etc/shadow、/etc/fstab、/etc/sudoers等,日常建议使用chattr锁定,需要操作时再打开
- 使用脚本检测系统中新增的SUID、SGID文件
- 可以利用工具(如chkrootkit等)检测rookit脚本
- 开启SSH服务密钥对登录,修改SSH服务端口
二、备份策略
问题引出:如果一个系统没有任何的备份策略,请写出一个较为全面合理的备份方案!
以下知识点详细点击:MySQL--数据库备份_mysql数据库备份-CSDN博客https://blog.csdn.net/lerp020321/article/details/140902552
1、需要备份的目录
- 重要系统目录:/etc/、/home/、/root/、/var/spool/mail/、/var/spool/cron/、/var/spool/at/
- MySQL数据库:
- RPM包安装的MySQL:/var/lib/mysql
- 源码包安装的MySQL:/usr/local/mysql/data/
- Apache服务:
- 网站内容:/var/www/html/ | /usr/local/apache2/htdocs/
- 配置文件:/etc/httpd/conf/httpd.conf | /usr/local/apache2/conf/httpd.conf
- 日志文件:/var/log/httpd/ | /usr/local/apache2/logs/
- 如果有其他服务,也需要备份重要数据
2、备份策略
- 完整备份:cp、tar、dump、xfsdump
- 增量备份:每次备份以前一次 备份作为参照(CentOS 6.x使用dump工具,CentOS 6.x使用xfsdump工具)
- 差异备份:每次备份以第一次备份作为参照(实现命令同上)
3、备份频率
- 实时备份:如MySQL主从同步
-
定时备份:如每天、每周备份,一般通过"脚本+定时任务"实现
4、备份存储位置
基本原则:不要把鸡蛋放在同一个篮子中(本地备份、异地备份)
5、常见服务器的备份方案
- 每日备份的数据(异地备份):MySQL数据库(主从备份之外,增量备份一次)
- 每周备份的数据(异地备份):MySQL数据库(完整备份)、重要系统数据、网页数据、其他服务相关数据
6、类似面试题
网站服务器每天产生的日志数量较大,请问如何备份?
答:使用日志的切割与轮替功能;比如可以使用系统日志管理工具:logrotate;Apache服务配置文件自带日志切割功能,但是需要通过脚本进行轮替
三、RAID
问题引出:简述RAID0、RAID1、RAID5的特点与原理
以下知识点更详细情况点击: Linux--使用RAID与LVM磁盘阵列技术_raid1 需要lvm吗-CSDN博客https://blog.csdn.net/lerp020321/article/details/140242273
1、RAID 0(独立磁盘冗余阵列)
- 必须使用两块或两块以上的硬盘组成
- 每块硬盘的大小必须一致
- 是所有动态磁盘中,数据读写最快的
- 损坏几率相对较高
- 没有磁盘容错功能
2、RAID 1
- 由两块或2的倍数硬盘组成
- 每块硬盘大小必须一致
- 硬盘使用率只有50%,写入速度最慢
- 拥有磁盘容错功能
3、RAID 5
- 由三块或三块以上硬盘组成
- 每块硬盘大小必须一致
- 磁盘利用率是n-1块盘
- 利用奇偶校验,拥有磁盘容错功能(只支持1块硬盘损坏)
4、RAID 6
- RAID 6是RAID 5的增强版
- 由4块或以上的硬盘组成
- 每块硬盘大小必须一致
- 磁盘利用率是n-2块盘
- 支持磁盘容错,可以支持2块硬盘损坏
5、RAID 10
- 必须有4块等大小的硬盘组成
- 两两硬盘先组成RAID 1,再组成RAID 0
- 兼顾RAID 0和RAID 1的特点,中和两种RAID的缺点
6、软RAID与硬RAID的区别
- 软RAID:是由操作系统模拟的RAID,一旦硬盘损坏,操作系统就会损坏,RAID会丧失作用
-
硬RAID:是由独立于硬盘之外的,硬件RAID卡组成;就算硬盘损坏,也不会导致RAID卡损坏,磁盘容错才能起作用。
四、资源查看
问题引出:Linux中有许多系统资源需要监管,请问有哪些命令可以查看?
1、CPU
2、内存
3、网络
4、磁盘
五、启动流程
问题引出:简述Linux启动过程
1、CentOS 6.x基本启动过程
- 服务器加电,加载BIOS信息,BIOS进行系统检测
- 加载启动引导程序(grub)
- 由grub加载系统内核
- 系统内核重新自检,并加载硬件驱动
- 由内核启动系统第一个进程/sbin/init
- 由/sbin/init进程调用/etc/init/rcS.conf,进行系统初始化配置
- 由/sbin/init进程调用/etc/inittab,确定系统的默认运行级别
- 确定默认运行级别后,调用/etc/init/rc.conf配置文件
- 运行相应的运行级别目录/etc/rc[0-6].d中的脚本
- 在启动登录界面之前,执行/etc/rc.d/rc.local中的程序
2、CentOS 7.x基本启动过程
- 服务器加电,加载BIOS信息,BIOS进行系统检测
- 加载启动引导程序(grub2)
- 由grub2加载系统内核,内核重新自检
- 由grub2加载initamfs虚拟文件系统
- 内核初始化,以加载动态模块的形式加载部分硬件的驱动
- 内核启动系统第一个进程,也就是systemd
- systemd开始调用默认单元组(defualt.target),并按照默认单元组开始运行子单元组
- systemd调用sysinit.target单元组,初始化系统
- systemd调用basic.target单元组,准备操作系统
- systemd调用multi-user.target单元组,启动字符界面所需程序
- systemd调用multi-user.target单元组中的/etc/rc.d/rc.local文件,执行文件中的命令
- systemd调用multi-user.target单元组中的getty.target单元组,初始化本地终端(tty)及登录界面,如果是字符界面启动,到此启动完成。
六、系统优化
问题引出:如何进行Linux系统优化
1、Linux系统优化策略
- 禁用不需要的服务(ntsysv命令最为方便)
- 避免直接使用root用户,普通用户通过sudo授权操作
- 通过chattr锁定重要系统文件:/etc/passwd、/etc/shadow、/etc/group、/etc/gshadow/、/etc/inittab
- 配置国内yum源,加快下载速度
- 配置系统同时打开的最大文件数:vi /etc/profile、ulimit -SHn 65535
- 同步时间服务器:ntpdate ntp1.aliyun.com、通过crond定时任务,让时间同步命令每5分钟执行一次
- 更改ssh服务的默认端口,配置SSH密钥对登录
- 配置合理的IPtables防火墙规则
- 配置合理的SELinux安全上下文
- 指定合理的监控策略
- 定时备份系统重要文件
致谢
在此,我要对所有为知识共享做出贡献的个人和机构表示最深切的感谢。同时也感谢每一位花时间阅读这篇文章的读者,如果文章中有任何错误,欢迎留言指正。
学习永无止境,让我们共同进步!!