用户:每一个用户系统分配唯一的id号UID(0~65535),每一个用户必须属于一个基本的组,还可以加入其他组,用户必须设置密码才能登录
#分类
普通用户
uid>=500
系统用户 #用于运行系统进程,不需要登录系统
0
root用户
uid=0
组:每个组系统分配唯一的id号GID,一个组可以有多个成员
#按照uid分类:
普通组
uid>=500
系统组
0
root组
gid=0
#按照作用:
基本组: 每个用户必须要有的组
附加组: 一个可以属于多个附加组
#三个文件
/etc/passwd #存放用户信息
# root : x : 0 : 0 : root : /root : /bin/bash
用户名: 密码 :UID:GID:描述信息:家目录: 登录shell
创建用户:
useradd [options] USERNAME #自动分配uid,gid,自动创建家目录(/home/USERNAME),拷贝配置文件(/etc/skel)到家目录,邮箱文件(/var/spool/mail/USERNAME),创建一个与用户名同名的组做为用户的基本组
#options:
-u UID #指定UID
-g GID #指定基本组的GID
-G GID #指定附加组的GID
-d DIR #指定家目录
-s SHELL #指定用户登录shell
#/bin/bash (默认)
#/sbin/nologin 不允许登录
id [USERNAME] #查看用户信息
id -u #查看uid
id -un #查看当前用户用户名
删除用户: userdel USERNAME #不会删除家目录和邮箱文件
userdel -r USERNAME #同时删除家目录和邮箱文件
修改用户信息: usermod
#对已创建用户修改信息
-u
-g
-G
-s
-d
/etc/group #存放组信息
# root : x : 0 :
组名 : 保留: GID : 组成员
groupadd -g GID GROUPNAME
groupdel GROUPNAME
/etc/shadow #存放密码信息
#root:$6$T2WdGnY0CdckQnBWQe0:17296:0:99999:7:::
passwd USERNAME #修改用户密码(root用户可以修改任何人密码通过passwd USERNAME,普通用户只能修改自己密码通过passwd
echo "PASSWORD" | passwd --stdin USERNAME #无交互式修改密码
#用户访问资源,用户对于资源来说有三种访问类型:
进程---> 资源,进程在访问资源时,进程会携带用户的uid和gid和groups的gid,与资源uid和gid对比顺序:
#拥有者(user)
如果进程uid和资源的uid一致,用户是资源的拥有者,赋予用户资源拥有者权限
#所属组(group)
如果进程gid与资源gid一致,说明用户是资源的所属组,赋予用户资源所属组权限
#其他人(other)
如果进程uid和gid都不匹配,说明用户对于资源来说属于其他人,赋予用户其他人权限
chown USER[.GROUP] FILE #即可以改拥有者,又可以改所属组
chgrp GROUP FILE #改文件所属组
#权限(Permission)
#文件
r #readable,可读,可以读取文件内容,cat,vim,more,less
w #writable,可写,可以编辑文件内容
x #excutable,可执行,可以执行文件内容(用于可执行文件)
#目录
r #readable,可读,可以读取目录内容,ls
w #writable,可写,可以修改目录内容,rm,mv,rename,touch等
x #excutable,可执行,可以进入目录, cd rm cp
ls -l #查看文件属性
rw- r-- r--
拥有者 所属组 其他人
chmod #修改权限(只能root用户操作,普通用户只能改属于自己的文件)
#字符表示法:
chmod FILE
u + r
g - w
o = x
a s|t
#chmod u+x FILE
#chmod g+w FILE
#chmod u=rwx FILE
#chmod a+x FILE = chmod ugo+x FILE
#数字表示法
r w x 十进制
0 0 0 --- 0
1 1 1 rwx 7
chmod 777 FILE #rwx rwx rwx
chmod 664 FILE #rw- rw- r--
umask #权限掩码,控制用户去创建文件和目录的默认权限
#用户去创建文件的默认权限: 原始权限-umask=默认权限(不要用数字相减)
文件的原始权限: 666 rw- rw- rw-
普通用户umask: 002 --- --- -w-
664 rw- rw- r--
root用户umask: 022 --- -w- -w-
644
umask=033 --- -wx -wx
#用户创建目录的默认权限:
目录的原始权限: 777 rwx rwx rwx
普通用户umask: 002 --- --- -w-
775 rwx rwx r-x
root用户umask: 022 --- -w- -w-
755
#特殊权限:
suid(set uid) #(只能对可执行文件),使用户可以临时取得文件拥有者的权限
sgid(set gid)
#(对可执行文件)使用户临时取得文件所属组的权限
#(对目录)则用户在此目录中创建的文件所属组为此目录的所属组
sbit(sticky bit) #黏贴位(只能对目录做),在目录下,用户无法删除其他用户文件
#扩展权限(Access Control List):设置特定用户权限
getfacl #查看
setfacl -m u:USER:PERM #设置
setfacl -x u:USER #删除扩展权限