众所周知,现在的网络安全问题已经受到了人们的广泛关注,如用户信息被泄露,帐号密码被盗等等问题
然而在耳熟能详的计算机操作系统的安全性上来说,linux系统的安全性还是受到大家的肯定的!!!
那么下面就来谈一谈linux下的安全性问题
用户认证信息
若要查看用户的认证信息,则要查看文件/etc/shadows
由图可以看出此文件下每个用户后有九栏,分别为
用户名称:用户密码:用户密码最后一次被更改的时间:用户密码最短有效期:用户密码最长有效期:密码警告期限:用户非活跃天数:用户到期日:用户自定义列
【用户名称】pp
【用户密码】!!则表示无密码
用户的加密字符串,默认加密方式为sha512对成加密
【用户密码最后一次被更改的时间】17900
此时间计算是从1970-1-1开始计算的累计天数
【用户密码最短有效期】0
如果此位有设定数字,则表示在此数字范围内是不能修改密码的
【用户密码最长有效期】99999
用户必须在此有效期内更新密码,如果超时会被冻结
【密码警告期限】7
在过期前制定天数内会发送警告信息给用户
【用户非活跃天数】默认为空
如果设定数值,那么在密码最长有效期过后仍然可以使用的天数
【用户到期日】默认为空
表示帐号一定会被冻结的时间点
【用户自定义列】目前没有启用
注意:若用户想要修改这些参数,则直接用vim编辑/etc/shadow即可
用户密码问题
passwd #更改用户密码
passwd -l #在用户密码前加入“!!”
passwd -u #
usermod -L #在用户密码前加“!”
usermod -U #在密码不为空时使用
passwd -d #清空用户密码
注意:
普通用户更改密码时
1.必须知道当前用户原始密码
2.密码不能和当前账户名称相似
3.密码不能是纯数字或者纯字母
4.密码不能是有序的数字和字母的组合
(1)用户最后一次被更改的时间
passwd -e #会改变用户最后一次更改密码时间为0,在用户登陆时会被强行改密码
chage -d 0 #功能同上一个命令相同
(2)用户密码最短有效期
passwd -n 1 #用户在一天内不能修改密码
chage -m 1
(3)用户密码最长有效期
passwd -x #设定用户在30天内必须改密码
chage -M 40
(4)密码警告期限
passwd -w 2 #密码过期前两天有警告输出
chage -M 2
(5)用户非活跃天数
passwd -i 1 #密码登陆仍然可以登陆的天数为1 天
chage -I 1
(6)用户到期日
chage -E date #用户会在指定的date被冻结
用户授权
1.权力下放
权力下放文件为/etc/sudoers
此文件可直接用vim编辑,但是不提供语法检测
也可以使用visudo编辑此文件,visudo提供语法检测
2.下放方式(visudo文件100行左右)
用户 主机名称=(用户得到的用户身份) 命令
在这里NOPASSWD执行免密
测试
系统无报错,命令运行成功,用户成功建立
文件权限
1.文件权限尊在的意义
系统最底层安全设定方法之一
保证文件可以被可用的用户做对应的操作
2.文件权限的查看
ls -l file
ls -ld dir
3.文件权限的解读
-(1)| rw-rw-r–(2)|1(3)|root(4)|root(5)| 6 (6)| jan 3 23:39(7)| file(8)
(1)文件的类型
- #空文件,或者文本
d #目录
l #软连接
s #socket,套接字
b #block 块设备
c #字符设备
(2)文件的权限
rw-|rw-|r--
1 2 3
1.[u]文件拥有者对文件能做什么操作
2.[g]文件所有组对文件能做什么操作
3.[o]其他人对文件做什么操作
(3)
对文件:文件硬链接的个数(文件内容被记录的次数)
对目录:目录中子目录的个数
(4)文件的所有人
(5)文件的所有组
(6)
对文件:文件大小
对目录:目录中文件元数据(matedate可以理解为文件的属性)大小
(7)文件内容被修改的时间
(8)文件的名称
4.文件或目录的所有人或所有组更改
监视命令watch -n 1 'ls -lR /root/Desktop'
chown 更改后的所有人 文件/目录 ##更改文件或目录的所有人
chgrp 更改后的所有组 文件/目录 ##更改文件或目录的所有组
chown 更改后的所有人:更改后的所有组 ##更改文件或目录的所有人和所有组
加上-R 表示递归,适用于同时修改目录和目前下的文件的所以人和所有组
比如: chown -R root:root /mnt/ 更改目录下所有文件及目录的所有人和所有组(一起修改)
echo 输出命令
echo heheh 则输出heheh
4.如何改变文件权限
(1).对权限的理解
r:读
对文件:是否可以查看文件中的内容 —>cat file
对目录:是否可以查看目录的有什么子目录或者内容 —>ls dir
w:写
对文件:是否可以改变文件里面记录的字符
对目录:是否可以对目录中子目录或子文件的元数据进行更改
x:执行
对文件:是否可以通过文件名称调用文件内记录的程序
对目录:是否可以进入目录
(2).更改方式
chmod <u|g|o><+|—|=><r|w|x>
chmod u+x /mnt/file1
chmod g-r /mnt/file2
chmod ug-r /mnt/file3
chmod u-r,g+x /mnt/file4
chmod -r /mnt/file5
chmod o=r-x /mnt/file6
利用数字表示权限
r w x
r=4或0
w=2或0
x=1或0
rwx|-wx|--x
7 3 1
chmod 731 /mnt/file1
7=rwx
6=rw-
5=r-x
3=-wx
2=-w-
1=--x
0=---
##新建目录权限默认为755
##新建文件默认权限为644
5 .umask——系统中预留的权限
目的:为了安全起见,一个文件或者目录建立后系统需要回收一部分权力
umask ##系统建立文件是默认保留的权力
umask 177 ##临时设定系统预留权限为177
永久更改umask
(1).vim /etc/profile ##系统配置文件
59 if[$UID -gt 199]&&["`id -gn`"="`id -un`"];then
60 umask 002 ##普通用户的umask
61 else
62 umask 022 ##超级用户的umask
63 fi
(2).vim /etc/bashrc ##shell配置文件
70 if[sUID -gt 199]&&["`id -gn`"="`id -un`"];then
71 umask 002 ##普通用户的umask
72 else
73 umask 022 ##超级用户的umask
74 fi
(3).执行生效(source ##重读目录文件)
source /etc/profile ##让更改立即生效
source /etc/bashrc
示例:对超级用户的umask值修改为177
hhh的权限是777-177=600
可见6=2+4=rw权限
6.特殊权限
1.sticky ##粘制位
作用:只针对目录生效,当一个目录上有sticky权限时,在这个目录中的文件只能由文件的所有者删除
设定方式:
chmod o+t dir
chmod 1xxx dir
未更改前
更改后
2.sgid ##强制位
作用:
对文件: 只针对二进制可执行文件
当文件上有sgid时任何人执行此文件产生的进程都属于文件的组
对目录: 当目录上有sgid权限时任何人在此目录中建立的文件都属于目录的所有组
设定方式
chmod g+s file|dir
chmod 2xxx file|dir
未执行前
执行后
3.suid ##冒险位
只针对与2进制可执行文件
当文件上有suid时任何人执行这个文件中记的程序产生的进程都属于文件的所有人
设定方式:
chmod u+s file
chmod 4xxx file
ps ax -o comm,user,group 扫描所有进程,包含其所有组和所有人并显示出来
执行前
执行后
7.acl权限列表
(1)作用:让特定的用户对特定的文件拥有特定权限
(2)acl列表查看
`-rw-rwxr--+ 1 root root 0 Jul 21 14:25 file1`中权限中的“+”即为acl开启
getfacl file ##查看acl开启的文件的权限
#file : file ##文件名称
#owner : root ##文件拥有者
#group : root ##文件拥有组
user::rw- ##文件拥有人的权限
user::xixi:rwx ##指定用户(xixi)的权限
group::r-- ##文件拥有组的权力
Mask::rwx ##能赋予用户的最大权力值
Other::r-- ##其他人的权限
(3)acl列表的管理
getfacl file ##查看权限
setfacl –m u:username:rwx file ##设定username对file拥有rwx权限
setfacl -m g:group:rwx file ##设定group组成员对file拥有rwx权限
satfacl -x u:username file ##从acl列表中删除username
satfacl -b file ##关闭file上的acl列表
(4)mask的值
在权限列表中mask标志能生效的权力值,当用chmod减小开启acl的文件权限时,mask值会发生改变
chmod g-w file 可同时改变mask的值
如果要恢复mask的值
setfacl –m m:rw file
(5)acl的默认权限设定
acl默认权限只针对目录设定,“acl权限只针对设定完成之后新建的文件或目录生效,而已经存在的文件是不会继承默认权限的”
setfacl –m d:u:xixi:rwx /mnt/westos ##设定acl权限
setfacl –k /mnt/westos ##删除默认的acl权限
默认权限列表对已经存在的file文件无效,但对新建的hah文件目录有效