资源分配
Authentication 认证 →用户名
Authorization 授权 → 文件或目录的权限
Accounting 审计
Linux用户 UID → 计算机只识别数字
管理员:root 0
普通用户:1-65535
系统用户:1-499
守护进程:获取系统资源进行权限分配;
登录用户:500+
Linux组 GID 可以想象成一个容器
管理员组:root 0
普通组:1-65535
系统组:1-499
普通组:500+
Linux安全上下文
运行中的程序:进程
一般的可执行程序或软件都是以执行者的身份运行的,能获得什么样的资源取决于执行者的权限;
Linux组的类别
基本组(主组):
组名同用户名,且仅包含一个用户:私有组
附加组(额外组):
一个用户可以属于多个组;
Linux用户和组的相关的配置文件
/etc/passwd:用户及其属性信息
用户名,密码,UID,基本组GID,家目录,简介,shell;
查看文件格式:man 5 passwd
/etc/shadow:用户密码及其属性信息
用户名,加密的密码,最近修改密码时间,密码最小使用期限,密码最大使用期限,密码过期警告时间,宽限时间(密码禁用期,只有更改密码后才能登陆),密码过期时间,保留字段;
查看文件格式:man 5 shadow
加密机制:
加密:明文→密文
解密:密文→明文
单向加密:
md5sum
sha1sum, sha224sum, sha384sum, sha512sum, sha256sum
定长输出 雪崩效应:一个微小的改变,就会对结果造成巨大的改变;
例子:$6$MA81A2EnrSQcJ4LX$sA8s8oZKmmD.WxDtSWKu3X.HkTnC7vdEN9Vym6mVhrYoFbiRrWKtYGNca/MLpmPsnzf1W27Y9Jv98DDJR6.wD/
以$为分隔符,6代表加密算法,MA81A2EnrSQcJ4LX为添加的杂质,为了让相同的密码有不同的输出,每次输入密码是系统都会自动添加这个杂质,sA8s8oZKmmD.WxDtSWKu3X.HkTnC7vdEN9Vym6mVhrYoFbiRrWKtYGNca/MLpmPsnzf1W27Y9Jv98DDJR6.wD/真正的密码;
/etc/group:组及其属性信息
组名,组密码,GID,以当前组为附加组的用户名(多个用户名时以逗号隔开);
/etc/gshadow:及其属性信息
用户管理类命令
useradd:添加用户
/etc/default/useradd:可以查看添加用户的默认设置
# useradd defaults file
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel 创建用户的家目录时,会将/etc/skel 目录中的文件复制到用户的家目录中(".","..",.bashrc等有关用户环境的文件)
CREATE_MAIL_SPOOL=yes
/etc/login.defs:可以设置默认添加用户时UID/GID的最小和最大ID;
centos7是从1000开始;centos6是从500开始;
useradd -u :添加用户时指定UID;
useradd -g :添加用户时指定的基本组ID,可以是组名也可是GID号,此组必须事先已存在;
useradd -c:设置用户的注释信息;一般是设置全名;
useradd -d:添加用户时指定其家目录;
useradd -s:添加用户时指定用户的shell;
useradd -r:添加一个系统用户;
/etc/shells:定义着支持的shell;
useradd -G:添加用户时指定用户的附加组,添加多个附加组时用逗号隔开,组事先要存在;
useradd -D:修改添加用户时的默认属性,实际上是修改/etc/default/useradd文件;
-s:修改默认shell
-e:修改默认账号过期时间
-f:修改默认账号宽限时间
groupadd -g:添加组时指定GID; groupadd:添加组
groupadd -r:添加一个系统组;
id:显示用户的uid,gid;
id -u:显示用户的uid;
id -g:显示用户的gid;
id -G:显示用户的所有组信息;
su:切换用户身份或以其他用户的身份执行命令;
su UserName:非登录式切换,即不会读取目标用户的配置文件;
su - UserName:登录式切换,会读取目标用户的配置文件,完全切换;
su - UserName -c "command options":以目标身份执行命令,而不切换;
usermod:修改用户信息;
usermod -d path/to/dir -m UserName:更改用户的家目录的同时把原本家目录的内容移动到新家里
usermod -l:更改名字;
usermod -L:lock指定用户;
usermod -U:unlock指定用户;
passwd:给用户添加密码;
passwd UserName:修改指定用户的密码;仅root可用
passwd:修改自己的密码;
echo "password" | passwd --stdin UserName:从标准输入接收密码;
userdel:删除用户;
userdel -r:删除用户的同时删除家目录;
groupmod:修改组的属性;
groupmod -n:修改组名;
groupmod -g:修改GID;
groupdel:删除组;
groupdel GroupName;
gpasswd:添加组密码;
gpasswd -a:向组中添加用户;称为用户的附加组;
gpasswd -d:从组中移除用户;
gpasswd -A user1,user2,…:设置有管理权限的用户列表;
newgrp:临时更改指定用户的基本组; exit命令可以退出,回到之前的基本组;
pwck:检查/etc/passwd和/etc/shadow格式是否正确,数据是否有效;
chage:更改账户密码期限;
chage -l:显示指定用户时间期限信息;
chfn UserName:设置指定用户的详细信息,可以再/etc/passwd中找到;
finger:显示命令;
权限管理
文件的权限主要针对三类对象:
属主:User:::4(二进制)
属组:Group:::2(二进制)
其他人:Other:::1(二进制)
每个文件都定义了三种权限:可读(r),可写(w),可执行(x);
- rw- r-- r--. 1 root root 2277 Apr 29 20:55 initial-setup-ks.cfg (644)
对于文件: 创建文件时默认不具有可执行权限;
可读表示可以通过文件查看类命令查看文件内容;
可写表示可以通过文件编辑类命令编辑写入数据到文件中;
可执行是对于脚本程序的,一般情况下文件不可执行;(可以把此文件提请到内核启动为一个进程)
d rwx r-x r-x. 2 root root 6 Apr 29 20:55 perl5
对于目录:创建目录时一般具有可执行权限;
可读表示可以使用ls显示目录里的文件或子目录;
可写表示可以在此目录里创建或删除文件或子目录;(只要用户具有目录的可写权限,就可以删除目录内的任何内容,即使不具有查看或修改里面内容的权限)
可执行表示可以使用ls -l查看目录中文件列表,也可以使用cd命令进入到目录里;
chmod:修改文件权限;
chmod [OPTION]... MODE[,MODE]... FILE...
chmod -R:递归修改文件或目录的权限;
MODE:
修改一类用户的权限;
u=rwx |
g=rwx |
o=rwx |
u-rwx |
g-rwx |
o-rwx |
u+rwx |
g+rwx |
o+rwx |
ugo=/-/+rwx;
u=rwx,g=rw,o=r;
参考某个文件或目录的权限来修改某文件或目录的权限;
chmod [OPTION]... --reference=RFILE FILE...
chown:修改文件的属主,属组;
chown [OPTION]... [OWNER][:[GROUP]] FILE… ":"可用"."代替;
chown -R:递归修改属主或属组;
参考某个文件或目录的属主或属组来修改某文件或目录的属主或属组;
chown [OPTION]... --reference=RFILE FILE...
chgrp:修改文件或目录的属组;
umask(0022)
创建文件时的默认权限为:666-umask;
如果减后的权限位存在可执行权限,则结果加1;
创建目录时的默认权限为:777-umask;
注:根据马哥视频做的学习笔记,如有错误,欢迎指正;侵删