linux用户-组-权限管理

用户:每一个用户系统分配唯一的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   #删除扩展权限

你可能感兴趣的:(Linux基础)