一、Linux安全性
Linux安全系统的核心是用户账户。可以使用用户ID(通常称为UID)来跟踪用户权限,账户将在创建时被分配UID。Linux系统使用特定的文件和实用工具来跟踪和管理系统上的用户账户。
(1)/etc/passwd文件
[root@k8s-node01 ~]# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
.......
tcpdump:x:72:72::/:/sbin/nologin
saned:x:990:983:SANE scanner daemon user:/usr/share/sane:/sbin/nologin
gluster:x:989:982:GlusterFS daemons:/run/gluster:/sbin/nologin
根用户账户是Linux系统的管理员,它的UID始终为0。Linux系统为各种非实际用户的函数创建了大量用户账户,称为系统账户。
/etc/passwd文件中的字段包含以下信息:
登录用户名
用户的密码
用户账户的数值UID
用户账户的数值用户组ID(GID)
用户账户的文本描述(称为注释字段)
用户HOME目录的位置
用户的默认shell
(2)/etc/shadow文件
/etc/shadow文件为linux系统管理密码的方式提供了更多的控制。只有根用户才能访问/etc/passwd文件,比/etc/passwd文件更加安全。
[root@k8s-node01 ~]# cat /etc/shadow
root:$6$e2YLjawj$qUO6Og7F2IQKwzZahVbr6ec0X0enxsjFo8O/WDUk07UBXDSLdUwGASaQ27MuU9JtELDMhtYbEX4gLSfe08UPf/:17890:0:99999:7:::
bin:*:17110:0:99999:7:::
......
每个/etc/shadow文件记录中都有9个字段
与/etc/passwd文件记录中都有9个字段
经过加密的密码
密码上次修改时距1970年1月1日的tian天数
距能够修改密码时的最少天数
距必须修改密码时的天数
距密码逾期并警告用户修改密码的天数
从密码逾期开始到账户被禁用的天数
用户账户已被禁用的天数(存储为自1970年1月1日开始的天数)
保留供未来使用的字段
(3)添加新用户
[root@k8s-node01 ~]# useradd -D
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes
新用户将被添加到用户组ID为100的公共用户组中
新用户将在/home/loginname目录下创建一个HOME账户
当密码逾期时,账户将不会被禁用
新账户不会在设定日期被逾期
新账户将使用bash shell作为默认shell
系统会将/etc/skel目录中的内容复制到用户的HOME目录
系统将在邮件目录中创建一个文件用于用户账号接收邮件
(4)删除用户
$:userdel -r test //删除用户的原/home/test目录也将删除
(5)修改用户
1》usermod的参数
-l:用于修改用户账户的登录名
-L:用于锁定账户,使用户无法登录
-p:用于修改账户的密码
-U:用于解除账户锁定,使用户能够登录
2》passwd和chpasswd
passwd 命令可用于快速修改用户的密码;
chpasswd 是需要对系统上的大量用户执行批量密码修改
3》chsh、chfn和chage
chage日期值:
YYYY-MM-DD格式的日期
以数值表示的距1970年1月1日的天数
二、使用Linux用户组
(1)/etc/group文件
[root@k8s-node01 ~]# cat /etc/group
root:x:0:
bin:x:1:
daemon:x:2:
......
/etc/group文件使用4个字段:
用户组名称
用户组密码
GID
属于用户组的用户账户列表
(2)创建新用户组
groupadd命令允许在系统中创建新用户组
$:groupadd shared
$:tail /etc/group
创建新用户组时,系统默认不会为它分配任何用户。要添加新用户,需使用usermod命令
$:usermod -G shared test
(3)修改用户组
$:groupmod -n sharing shared
$:tail /etc/group
三、解码文件权限
(1)使用文件权限符号
(2)默认文件权限
文件的初始为022的umask值之后,umask值通常设置在/etc/profile启动文件中,可使用umask命令指定不同的默认umask设置:
$:umask 026
四、修改安全设置
(1)修改权限
$:chomd 760 newfile
$:chmod [ugoa...] [[+-=] [rwxXstugo...]]
第一组字符串定义新权限适用的对象
u:表示用户
g:表示用户组
o:表示其他(其他任何人)
a:表示上诉所有
第二组符号表示:
+:希望在已有权限中添加权限
-:从已有权限中减去权限
=:要为权限赋值
第三组符号表示:
x:用于指定执行权限,仅当对象为目录或已经拥有执行权限时有效
s:用于设置正在执行的UID或GID
t:用于保存程序文本
u:用于将权限设置为所有者的权限
g:用于将权限设置为用户组的权限
o:用于将权限设置为其他人的权限
$:chmod o+r newfile
(4)修改所有者
chown命令的格式如下:
$:chown options owner[.group] file
五、共享文件
Linux为每个文件和目录都存储了3个额外的信息位:
set user id(SUID):当文件由用户执行时,程序将在文件所有者的权限下运行。
set group id(SGID):对于文件,程序将在文件用户组的权限下运行。
粘着位:进程结束后,文件仍然保留(粘着)在内存中。
$:mkdir testdir
$:chgrp shared testdir
$:chmod g+s testdir
$:umask 002
$:cd testdir
$:touch testfile