1.Linux 安全性模型
Linux 使用User和Group控制使用者对文件的存取权限
用户使用帐号和口令登录Linux
每个文件都有一个owner,并且每个owner是属于一个Group
每个程序都有owner和Group
2.用户概述
每个用户都有一个User Id,唯一标识符
在Linux中所有信息都是以文件形式存储的,那么Linux用户的信息保存在 /etc/passwd 文件中
该文件中保存着用户的用户信息以及用户的home信息
用户的密码保存在 /etc/shadow文件中(八个冒号分割九列,存储不同的信息)
第一列:帐号名称
第二列:密码(加密后密码)
第三列:最近修改密码日期,数字格式
第四列:密码不能被修改的天数(0代表随时可以修改)
第五列:密码需要被强制修改的天数
第六列:密码需要被强制修改警告的天数
第七列:密码过期后宽限的时间
第八列:设置帐号的失效日期
第九列:功能扩展列
每个用户都有一个home目录
每个用户未经过授权禁止访问其他文件--权限验证
root,最高权限,拥有至高无上权限,一般不用root权限登录
3.用户群组概述
每一个用户都属于一个Group,具有唯一标识的gid
Group信息存储在 /etc/group 文件中
gid 、成员等
group的密码保存在 /etc/gshadow文件中,一般很少给group设置密码
系统会为每一个user关联一个和user同名的group
每个user至少会存在于与自己同名的group中
user还可以加入其他的group
4.权限的种类
只读权限: r
读取文件或者列出目录的内容(ls)
可写权限: w
可以写、删除文件或者目录
可执行权限:x
可以执行可执行文件
可以进入目录使用cd 切换进入目录
5.Linux文件和目录权限解读
第一列:
- :代表文件
l :代表链接
d :代表目录
后边九列分为三组:
r--read 读
w--write 写
x--execute 执行
第一组:文件所有者拥有权限
第二组:文件所有者同用户组拥有权限
第三组:其他人对文件又有权限
6.Liunx权限验证流程
如果是root,最高权限,均可验证
7.如何设置Linux文件和目录的权限
第一种方法:全部修改
chmod +x xxx
chmod +r xxx
chmod +w xxx
chmod -r xxx
chmod -w xxx
chmod -x xxx
第二种方法:分组修改
chmod u+x xxx
chmod u+r xxx
chmod u+w xxx
chmod g-x xxx
chmod g-r xxx
chmod o+w xxx
chmod o-w xxx
第三中方法:八进制数占位修改
chmod 777 xxx
8.用户的主要群组和次要群组
每个文件必须有一个用户组所有者,因此必须有一个与每个用户相关的默认组,这个默认群组就是新建文件/目录的组所有者,也被成为用户的主要群组(有效群组),用户的主要群组在passwd文件的第四个字段中定义。主要群组的作用主要在新建文件/目录是有效果
除主要群组之外,用户可以根据需要再隶属于其他群组,这个群组就被成为次要群组,在group文件中的第四个字段定义
9.如何管理用户
创建用户:useradd [-u][-g][-G][-mM][-c][-d][-s]
-u:指定一个特殊的id给该帐号
-g:指定一个主要群组的名称,会修改passwd文件;如果不指定,系统会自动分配一个与用户同名的群组
-G:指定一个次要群组的名称,会修改group文件;如果不指定,就不会有次要群组
-M:强制不需要创建用户的home目录
-m:强制创建用户的home目录,一般有帐号默认
-c:passwd 文件中第五个字段的说明文字
-d:指定用户home目录的位置,不需要使用默认home目录
-s:指定默认的shell,如果没有指定,默认使用/bin/bash
useradd -u 123 -g user1 -G user2 -c add a new user -d /home/user userName
修改用户:usermod[-cdegGlsuLU] userName
-c:该帐号的说明
-d:该帐号的home目录
-e:指定帐号禁用的日期,格式YY-MM-DD
-g:修改主要群组名称
-G:修改次要群组名称,会修改group文件
-a:与-G合用,可增加次要群组
-l:将当前帐号名称重命名为指定的名称
-u:修改uid
-L:暂时将用户密码冻结无法登录
-U:解冻帐号,本质是删除shadow文件中的!字符
usermod -a -G groupName userName
usermod -c this is a new user userName
passwd username ----给用户设置密码
usermod -L userName
usermod -U userName
删除用户:userdel [-r] userName
-r:会连同user的home目录也会删除
10.检查用户信息
finger [-s] userName
-s:仅仅列出用户的帐号、全名、登陆时间等
id,可以查阅某人或者自己相关的uid、gid信息
whoami 查询当前登录用户
who&w 查询当前使用系统用户
users 只显示当前用户的名称
groups 显示当前用户的群组
11.默认权限以及如何控制默认权限
内核级别,文件的默认权限是666
内核级别,目录的默认权限是777
然而,我们在创建的文件、目录时的权限不是上边所述那样,这是因为在内核级别的权限还需要通过umask来阻止一些权限,从而产生最终权限,umask是一个值,非管理帐号的umask是0002,root的umask值是0022,我们在shell终端通过umask命令查看该值。
umask作用原理:
umask 456 可以重新设置umask值
12.群组管理
新建群组 groupadd [-g][-r] groupName
-g:后边接特性的gid,用于指定群组id
-r:建立系统群组
groupadd -g 510 groupName
修改群组 groupmod [-g][-n] groupName
-g:修改gid
-n:修改组名
groupmod -g 511 -n new_groupName groupName
删除群组 groupdel groupName