用户和组
Linux安全模型:3A资源分派
Authentication:认证
Authorization:授权
Accounting|Audition:审计
用户user:
Linux用户:Username/UID(identity身份验证成功后发放相应token令牌)
管理员:root,0
普通用户(1-60000自动分配)
系统用户:1-499(centos6),1-999(centos7)
登录用户:500+(centos6),1000+(centos7)
组group:
Linux组:Groupname/GID
管理员组:root,0
普通组
系统组:1-499(centos6),1-999(centos7)
普通组:500+(centos6),1000+(centos7)
组与用户的关系->多对多映射
一个组可以有多个用户
一个用户可以加入多个组
组存在的意义->简化授权
安全上下文:
Linux上下文content:
环境->进程发起者->访问资源的权限取决于进程发起者的身份
以不同身份发起进程(Process)能访问资源的权限取决于其身份
root->/bin/cat
user1->/bin/cat
组的类别:
主组(Primary Group)
用户必须属于一个且只有一个主组
组名同用户名,且仅包含一个用户,私有组
附加组(Supplementary Group)
一个用户可以属于0个或多个附加组
Linux在创建新用户user1时会创建一个user1组,并将组user1作为用户user1的主组
Windows创建新用户时不会常见新组,统一将新用户加入users组
用户和组的配置文件:
用户:
/etc/passwd:用户及其属性信息
/etc/shadow:用户密码及其相关属性
组:
/etc/group:组及其属性信息
/etc/gshadow:组密码及其相关属性
/etc/passwd:
可使用getent passwd [user1] 查看用户user1的/etc/passwd信息
共有7个字符段(name:passwd:UID:GID:GECOS:homedirectory:shell)
出于安全性考虑passwd字段统一写作x(可以使用pwunconv或pwconv)查看
可以通过更改UID切换管理员,UID为0的用户是管理员(root不一定是管理员)
GECOS:用户全名或注释(可以通过finger name查看,chfn name更改)
homedirectory:用户家目录(可以通过usermod –d更改)
shell:用户默认使用shell (可使用chsh –s [/bin/bash] [name]更改)
/etc/shadow:
loginname:登录用户
encryptedpasswd:用户密码,默认sha512加密
dateof last password change:密码最近一次更改距1970.01.01的天数
minimumpassword age:密码再过几天可以被更改(默认为0,随时更改)
maximumpassword age:密码再过几天必须更改(默认999999,永不过期)
passwordwarning period:密码过期前几天提醒(默认7天)
passwordinactivity period:密码过期几天后会被锁定
accountexpiration date:账号有效期
reservedfield:预留字段
*以上/etc/shadow内字段除预留字段外均可使用chage命令更改
可使用getent group [group1] 查看用户group1的/etc/group信息
groupname:组名
grouppassword:通常不需要设定,密码被记录在/etc/gshadow中
GID:群组ID
userlist:以当前组为附加组的用户列表(分隔符为逗号)
/etc/gshadow
群组名称
群组密码
组管理员列表
以当前组为附加组的用户列表(分隔符为逗号)
用户和组管理命令:
用户管理:
userdel
组管理:
groupdel
权限
r:readable(文本文件)
w:writable(文本文件)
x:excutable(二进制程序或脚本)
u:owner文件所有者
g:group组成员
o:other其他人
八进制权限
---000->0
--x001->1
-w-010->2
r--100 ->4
rwx111 ->7
[eg]
640:rw-r-----
755:rwx-r-xr-x
*奇数->有执行权限;偶数->无执行权限
权限分配
共十位,以drwxrwxrwx为例,d表示文件属性,后续1-3位表示u权限,4-6位表示g权限,7-9表示o权限
修改文件所属情况
chgrpgroup file:将file的属组更改为group
chown[owner]:[group] file:将file的属主更改为owner,属组更改为group(:可用.替换)
chown--reference=file2 file1:将file1的属主和属组按照file2进行更改
修改文件权限
模式法:
chmodwho opt per file
who:u,g,o,x
opt:+,-,=
per:r,w,x
[eg]
chmodu+rwx,g+rw,o+r file:将file文件权限更改为rwxrw-r--
数字法:
chmodnum file
[eg]
chmod764 file:将file文件权限更改为rwxrw-r—
*chmod --reference=file2 file1:将file1的文件权限按照file2进行更改
默认权限
umask掩码:二进制遮挡
umask+默认权限=777(目录)/666(文件)
文件默认权限:
root:644,对应umask为022
普通用户:664,对应umask为002
目录默认权限:
root:755,对应umask为022
普通用户:775,对应umask为002
掩码可使用umask命令设定:
umasknum:将umask设定为num(如umask 022)
配置文件:
全局:/etc/bashrc
用户:~/.bashrc
Linux文件系统特殊权限
SUID:作用于二进制可执行文件,当用户执行此文件时,会继承此文件的所有者权限
SGID:作用于二进制可执行文件,当用户执行此文件时,会继承此文件的所属组权限
作用于目录,当用户在此目录新建文件时,新文件所属组为继承目录的所属组
Sticky:作用于目录,对目录内的文件只能删除自己的文件,无视文件权限
添加特殊权限命令:
chmod u=rws,g=rws,o=rwt F:将目录或文件F的权限更改为rwsrwsrwt
chmod 4777 F:添加SUID
chmod 2777 F:添加SGID
chmod 1777 F:添加Sticky
设定文件特殊权限
chattr+i:不能删除、改名、更改
chattr+a:只能追加内容
lsattr:显示特定内容
ACL访问控制列表
ACL:Access Control List,实现灵活的权限管理
文件系统支持:ext4和xfs支持,fat不支持
ACL生效顺序:
所有者->自定义用户->自定义组->其他
ACL文件上的group权限是mask值,相当于限高线
命令:
getfacl:查看文件ACL权限
setfacl:更改文件ACL权限
相关练习
创建用户gentoo,附加组为bin和root,默认shell为/bin/csh,注释信息为 "Gentoo Distribution"