系统安全
系统安全
安装系统
1,选择稳定版操作系统
2,最小化安装
3,不要安装gcc,make
4,安装完以后更新系统
1 | yum -y update |
文件(目录)权限
1 ,基本权限rwx
对于目录,默认权限=777-umask
对于文件,默认权限=666-umask
umask默认为022 即参加目录默认权限是755 文件默认权限为644
修改umask
1 2 3 4 5 6 7 8 9 10 11 | #vim /etc/bashrc umask 002 #普通用户 else umask 022 #超级用户 fi #vim /etc/profile umask 002 #普通用户 else umask 022 #超级用户 fi |
注意:保持默认即可,无需修改
2,特殊权限suid sgid sticky
suid冒险位,执行二进制文件与文件所有人有关,与谁来执行无关。例如使用root用户可以less查看文件
1 | less /etc/shadow |
新建普通用户无法使用less查看
1 2 3 4 | [root@node1 ~]# useradd jack [root@node1 ~]# su - jack [jack@node1 ~]$ less /etc/shadow /etc/shadow: 权限不够 |
查看命令less的权限为755
1 2 | [root@node1 ~]# ll /usr/bin/less -rwxr-xr-x. 1 root root 158240 7月 31 2015 /usr/bin/less |
增加冒险位
1 | chmod 4755 /usr/bin/less |
切换到新创建的jack用户就可以使用less查看文件/etc/shadow了
注意:一般不增加冒险位
改回来
1 | chmod 755 /usr/bin/less |
sgid强制位,对目录生效,在此目录中创建文件自动归入目录所在组
sticky 粘制位,目录中的文件只能被文件拥有者删除
3,文件ACL
1 | #ls -l如果权限后面带有+号则表示有ACL权限 |
查看ACL权限
1 2 3 4 5 6 7 | [root@node1 ~]# getfacl test # file: test # owner: root # group: root user::rw- group ::r-- other::r-- |
设定ACL权限
1 | setfacl -m u:jack:rw test.tt |
查看
1 2 3 4 5 6 7 8 9 | [root@node1 ~]# getfacl test.tt # file: test.tt # owner: root # group: root user::rw- user:jack:rw- group ::r-- mask::rw- other::r-- |
注意:设置ACL使用较少
4,文件属性
chattr lsattr +a -a +i -i -d
1 2 3 4 5 6 | #chattr +a test.txt #只能给文件添加内容,但是删除不了,属于追加 #echo "123">>test.txt #无法删除 # rm -rf test.txt rm: 无法删除 "test.txt" : 不允许的操作 |
例如修改/etc/passwd则可以防止删除并且不影响添加新用户
该参数也适用于日志文件
1 | # chattr +i test.txt #文件不能删除,不能更改,不能移动 |
查看文件属性权限
1 | lsattr test.txt |
案例,给系统重要文件加权限避免删除及误用
1 | find /bin /sbin /usr/sbin /usr/bin /etc/shadow /etc/passwd /etc/pam.d -type f|xargs chattr +i |
5 ,mask umask
1 2 3 4 | [root@local]# umask 0022 [root@local]# umask -S u=rwx,g=rx,o=rx |
6,mount权限 -o
sync async
此选项的默认模式为异步模式。在同步模式下,内存的任何修改都会实时的同步到硬盘当中,这种模式的 安全性基本属于最高,但是因为内存的数据基本一直都在变化,所以这种模式会使得程序运行变得缓慢, 影响效率。而在异步模式下,虽然同步没有实时,但是现在考虑到日志文件系统的存在,所以安全性基本 不用考虑,而异步模式的效率会更高,随意目前普遍使用异步模式为默认
用户授权
由超级用户切换为普通用户,仅切换用户,环境变量不切换,如若为普通用户,会导致命令不可用
1 2 3 | [root@node1 ~]# su jack [jack@node1 root]$ touch 123 touch: 无法创建 "123" : 权限不够 |
由超级用户切换为普通用户,切换用户至家目录,环境变量会发生改变
1 | su - jack |
加参数-切换目录为用户家目录,有权限创建文件等
由普通用户切换为root用户
1 2 | [jack@node1 ~]$ su - root 密码:需要输入密码 |
sudo命令
使用sudo提升(赋予)权限普通用户的权限
修改方式
a 编辑文档
1 | [root@node1 ~]# vim /etc/sudoers |
b 使用visudo编辑/etc/sudoers(推荐,会检查语法)
1 | #visudo |
给jack用户授权所有权限,添加一行如下
1 | jack ALL=(ALL) ALL |
案例1:对用户
1 2 3 4 | #赋予用户jack以下3个命令的权限 jack ALL=/sbin/ip,/sbin/fdisk,/bin/less #服务器owen用户一个命令的权限,切换时不需要密码 owen ALL=NOPASSWD: /bin/less |
验证
1 2 3 | [jack@node1 ~]$ less /etc/shadow /etc/shadow: 权限不够 [jack@node1 ~]$ sudo less /etc/shadow |
不使用sudo没有权限执行,使用sudo有权限执行,需要输入密码验证,设置NOPASSWD则无需输入密码
sudo日志
确认验证已经添加入日志
1 2 | [root@node1 ~]# grep '^authpriv' /etc/rsyslog.conf authpriv.* / var /log/secure |
查看日志
1 | tail -f / var /log/secure |
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步