用户和组管理
资源分配
authentication:认证
authorization:授权
accouting(audition):审计
linux用户:username/UID
管理员:root,ID:0
普通用户:ID:1-65535
系统用户:ID:1-499(centos7 1-999),守护进程获取资源进行权限分配
登录用户:ID:500+(centos7 999+),交互式登录
linux组:groupname/GID,建立多个用户和用户权限对应
管理员组:root,ID:0
普通组
系统组:1-499(centos7 1-999)
普通组:500+(centos7 999+)
linux安全上下文
运行中的程序:进程(process)
以进程发起者的身份运行
进程所能够访问资源的权限取决于进程的发起者身份
linux组的类别
用户的基本组(主组):用户创建文件的属组
组名同用户名,且仅包含一个用户,此组为私有组
用户的附加组
linux用户和组相关的配置文件
/etc/passwd:用户及其属性信息
/etc/shadow:用户密码及其相关属性
/etc/group:组及其属性信息
/etc/gshadow:组密码及其相关属性
/etc/passwd文件详情
用户名
密码:x:密码占位符
UID
GID
用户信息
主目录
默认shell
/etc/group
组名
组密码:x:占位符
GID
以当前组为附加组的用户列表(分隔符为逗号)
/etc/shadow
用户名
加密后密码:!!为未设置密码,禁用
加密机制:加解密把明文和密文来加转换
单向加密:提取数据指纹(数据唯一特征码,内容相同元数据不同特征码也唯一),使用sha512sum加密,不可通过加密码还原成数据
为避免用户密码设置一样加密码一样,给每个用户密码添加随机码再加密,每次用户登录都添加随机码
$6$MdhavU/Pwr04pGUN$:$为分隔符,6为sha512加密,后面为添加的随机码,字符重新编码过
算法:md5(128位),sha1(160位),sha224(224),sha256,sha384,sha512
单向雪崩效应:初始条件的微波改变,将会引起结果的巨大改变
定长输出:输出长度一样
最近一次更改密码的日期
密码最短使用期限
密码最长使用期限
密码警告时间段:最长时间前警告
密码禁用期:最长时间后,登录就必须改密码
账户过期日期
保留字段:未使用
创建用户
useradd 用户名
-u UID:指定UID(/etc/login.defs里UID_MIN-UID_MAX)
-g GID:GID必须存在,指定用户基本组,可用GID也可以组名
-c 字符:指定用户注释信息
-d /目录:指定家目录,目录最好不存在
-s /shell:指定默认shell
-r:创建系统用户
-G GID,GID:指定附加组,可以多个
默认值设置:/etc/default/useradd
useradd -D -s /shell:指定用户创建时的默认shell
创建组
groupadd 组名
-g GID:指定组ID
-r:创建系统组
id:查看当前用户id信息,显示UID,GID,组(附加组)
-u:只查看UID
-g:只显示GID
-G:只显示附加组
-n:以用户名、组名显示
su:切换用户或以其他用户身份执行命令
su 用户:非登录式切换,不会读取目标用户配置文件
su - 用户(su -l):登录式切换,读取目标用户配置文件,完全切换
su 用户 -c '命令':当前shell下非登录式执行命令
su 用户 -c '命令':当前shell下登录式执行命令
usermod:用户属性修改
-u UID:修改UID
-g GID:新基本组
-G GID,GID:覆盖附加组
-Ga GID:追加附加组
-s:新的默认shell
-c '注释':新的注释信息
-d /目录:新的家目录,不会创建目录,原文件不会移动到新的
-dm /目录:新的家目录,并移动原文件
-l newname:新的用户名
-L:锁定用户
-U:解锁用户
-e YYYY-MM-DD:指定过期时间
passwd:设置密码
passwd:修改当前用户密码,不可为空
passwd username:修改指定用户密码,只有root有权限
passwd -l:锁定指定用户
-u:解锁指定用户
-n:修改最短使用期限
-x:修改最长使用期限
-w:提前警告时间
-i:修改非活动期限,过期后可改密码期限
--stdin:从标准输入接收用户密码
echo "123" |passwd --stdin username
/dev/null:黑洞,输入到此设备全丢弃
/dev/zero:向外一直输出0
userdel:删除用户
-r:删除用户家目录
groupmod:修改组属性
-n groupname:修改组名
-g GID:修改GID
groupdel:删除组
groupdel groupname:删除指定组
gpasswd:组设置密码
gpasswd groupname:设置一个组密码
-a user 组:为用户添加一个附加组
-d user 组:删除用户的一个附加组
-A user,user1... 组:设置有管理权限的用户列表
newgrp gname:切换当前用户的基本组,用户不属于此组时组必须有密码
pwck:检查/etc/passwd和/etc/shadow文件里用户是否有问题
chage:修改密码属性
-d 时间:最近一次修改时间
-E 时间:账号过期期限
-I 时间:活动期限
-m 天:密码最小使用天
-M 天:密码最大使用天
-W 天:密码警告期限
chfn 用户#:修改用户注释详细信息
finger 用户:查看用户注释信息
chsh 用户#:修改用户默认shell
权限管理
文件权限主要针对三类对象定义
owner:属主
group:属组
other:其它
三种权限
r,w,x:读写执行
对于文件
r:可用查看命令获取其内容
w:可修改其内容
x:可以把文件内容提请到内核启动为一个进程
对于目录
r:可以用ls查看此目录列表
w:可在此目录创建文件,可删除此目录中文件(对文件没权限也可删除)
x:可以使用ll查看目录列表,可以cd进目录
chmod:修改文件权限
chmod 777 文件:修改文件权限为所有读写执行
chmod -R 755 目录:递归修改权限,会让文件有x权限,不建议
修改某一类权限
chmod u=rwx:只改属主权限
g=rwx:只改属组权限
o=rwx:只改其它权限
ug=rw:改属主、属组权限
a=rwx:改所有类权限
u=r,o=r:改属主、属组权限
u+r,o-r:属主添加读权限,其它删除读权限
+x:三类全添加执行权限
支持-R:递归
chmod --reference=文件1 文件2:修改文件2的权限为文件1相同的权限
chown:修改文件属主属组,只有root可执行
chown 用户:组 文件:修改文件属主属组(也可user.group)
:组:只改属组
chgrp 组 文件:修改属组
umask:文件或目录创建时的反码
file:666-umask
如果减后有x权限,则权限+1
dir:777-umask
umask:查看系统反码
umask 002:设置umask,只对当前用户的当前shell生效
资源分配
authentication:认证
authorization:授权
accouting(audition):审计
linux用户:username/UID
管理员:root,ID:0
普通用户:ID:1-65535
系统用户:ID:1-499(centos7 1-999),守护进程获取资源进行权限分配
登录用户:ID:500+(centos7 999+),交互式登录
linux组:groupname/GID,建立多个用户和用户权限对应
管理员组:root,ID:0
普通组
系统组:1-499(centos7 1-999)
普通组:500+(centos7 999+)
linux安全上下文
运行中的程序:进程(process)
以进程发起者的身份运行
进程所能够访问资源的权限取决于进程的发起者身份
linux组的类别
用户的基本组(主组):用户创建文件的属组
组名同用户名,且仅包含一个用户,此组为私有组
用户的附加组
linux用户和组相关的配置文件
/etc/passwd:用户及其属性信息
/etc/shadow:用户密码及其相关属性
/etc/group:组及其属性信息
/etc/gshadow:组密码及其相关属性
/etc/passwd文件详情
用户名
密码:x:密码占位符
UID
GID
用户信息
主目录
默认shell
/etc/group
组名
组密码:x:占位符
GID
以当前组为附加组的用户列表(分隔符为逗号)
/etc/shadow
用户名
加密后密码:!!为未设置密码,禁用
加密机制:加解密把明文和密文来加转换
单向加密:提取数据指纹(数据唯一特征码,内容相同元数据不同特征码也唯一),使用sha512sum加密,不可通过加密码还原成数据
为避免用户密码设置一样加密码一样,给每个用户密码添加随机码再加密,每次用户登录都添加随机码
$6$MdhavU/Pwr04pGUN$:$为分隔符,6为sha512加密,后面为添加的随机码,字符重新编码过
算法:md5(128位),sha1(160位),sha224(224),sha256,sha384,sha512
单向雪崩效应:初始条件的微波改变,将会引起结果的巨大改变
定长输出:输出长度一样
最近一次更改密码的日期
密码最短使用期限
密码最长使用期限
密码警告时间段:最长时间前警告
密码禁用期:最长时间后,登录就必须改密码
账户过期日期
保留字段:未使用
创建用户
useradd 用户名
-u UID:指定UID(/etc/login.defs里UID_MIN-UID_MAX)
-g GID:GID必须存在,指定用户基本组,可用GID也可以组名
-c 字符:指定用户注释信息
-d /目录:指定家目录,目录最好不存在
-s /shell:指定默认shell
-r:创建系统用户
-G GID,GID:指定附加组,可以多个
默认值设置:/etc/default/useradd
useradd -D -s /shell:指定用户创建时的默认shell
创建组
groupadd 组名
-g GID:指定组ID
-r:创建系统组
id:查看当前用户id信息,显示UID,GID,组(附加组)
-u:只查看UID
-g:只显示GID
-G:只显示附加组
-n:以用户名、组名显示
su:切换用户或以其他用户身份执行命令
su 用户:非登录式切换,不会读取目标用户配置文件
su - 用户(su -l):登录式切换,读取目标用户配置文件,完全切换
su 用户 -c '命令':当前shell下非登录式执行命令
su 用户 -c '命令':当前shell下登录式执行命令
usermod:用户属性修改
-u UID:修改UID
-g GID:新基本组
-G GID,GID:覆盖附加组
-Ga GID:追加附加组
-s:新的默认shell
-c '注释':新的注释信息
-d /目录:新的家目录,不会创建目录,原文件不会移动到新的
-dm /目录:新的家目录,并移动原文件
-l newname:新的用户名
-L:锁定用户
-U:解锁用户
-e YYYY-MM-DD:指定过期时间
passwd:设置密码
passwd:修改当前用户密码,不可为空
passwd username:修改指定用户密码,只有root有权限
passwd -l:锁定指定用户
-u:解锁指定用户
-n:修改最短使用期限
-x:修改最长使用期限
-w:提前警告时间
-i:修改非活动期限,过期后可改密码期限
--stdin:从标准输入接收用户密码
echo "123" |passwd --stdin username
/dev/null:黑洞,输入到此设备全丢弃
/dev/zero:向外一直输出0
userdel:删除用户
-r:删除用户家目录
groupmod:修改组属性
-n groupname:修改组名
-g GID:修改GID
groupdel:删除组
groupdel groupname:删除指定组
gpasswd:组设置密码
gpasswd groupname:设置一个组密码
-a user 组:为用户添加一个附加组
-d user 组:删除用户的一个附加组
-A user,user1... 组:设置有管理权限的用户列表
newgrp gname:切换当前用户的基本组,用户不属于此组时组必须有密码
pwck:检查/etc/passwd和/etc/shadow文件里用户是否有问题
chage:修改密码属性
-d 时间:最近一次修改时间
-E 时间:账号过期期限
-I 时间:活动期限
-m 天:密码最小使用天
-M 天:密码最大使用天
-W 天:密码警告期限
chfn 用户#:修改用户注释详细信息
finger 用户:查看用户注释信息
chsh 用户#:修改用户默认shell
权限管理
文件权限主要针对三类对象定义
owner:属主
group:属组
other:其它
三种权限
r,w,x:读写执行
对于文件
r:可用查看命令获取其内容
w:可修改其内容
x:可以把文件内容提请到内核启动为一个进程
对于目录
r:可以用ls查看此目录列表
w:可在此目录创建文件,可删除此目录中文件(对文件没权限也可删除)
x:可以使用ll查看目录列表,可以cd进目录
chmod:修改文件权限
chmod 777 文件:修改文件权限为所有读写执行
chmod -R 755 目录:递归修改权限,会让文件有x权限,不建议
修改某一类权限
chmod u=rwx:只改属主权限
g=rwx:只改属组权限
o=rwx:只改其它权限
ug=rw:改属主、属组权限
a=rwx:改所有类权限
u=r,o=r:改属主、属组权限
u+r,o-r:属主添加读权限,其它删除读权限
+x:三类全添加执行权限
支持-R:递归
chmod --reference=文件1 文件2:修改文件2的权限为文件1相同的权限
chown:修改文件属主属组,只有root可执行
chown 用户:组 文件:修改文件属主属组(也可user.group)
:组:只改属组
-R:递归
-h:修改软链接属主属组
chgrp 组 文件:修改属组
umask:文件或目录创建时的反码
file:666-umask
如果减后有x权限,则权限+1
dir:777-umask
umask:查看系统反码
umask 002:设置umask,只对当前用户的当前shell生效