Linux:用户组介绍、用户和组管理命令(useradd、配置文件)、权限管理(chown、chmod)

目录

 

一、用户和组介绍(安全上下文、组、用户配置文件)

  二、用户和组相关的管理命令(useradd、passwd、配置文件)

三、权限管理(chown、chmod)


 

一、用户和组介绍(安全上下文、组、用户配置文件)

  • 认证方式
    • token:密码认证,不区别于用户名,
    • identity(username/password):密码+用户名认证
  • 资源分配使用的3A机制
    • Authentication:认证⇨Authorization:授权⇨Accouting:审计【也有称audition】
  • Linux用户:Username/UID
    • 管理员:root,0
    • 普通用户:1-65536
      • 系统用户:1-499【centos6】,1-999【centos7】
        • 作用:对守护进程获取资源进行权限分配
      • 登录用户:500+【centos6】1000+【centos7】
        • 作用:交互式登录
  • ​​​​​​​​​​​​​​Linux组:Groupname/GID
    • ​​​​​​​管理组:root,0
    • 普通组
      • ​​​​​​​系统组:1-499【centos6】,1-999【centos7】
      • 普通组:500+【centos6】,1000+【centos7】
  • ​​​​​​​​​​​​​​Linux安全上下文
    • ​​​​​​​完成任务是运行中的程序:进程(process)
    • 以进程发起者的身份运行
      • ​​​​​​​root:cat【root用户可访问成功】
      • test:cat【test用户访问失败】
    • ​​​​​​​总结:进程能够访问的所有资源的权限取决于进程发起者的身份
  • ​​​​​​​Linux的类别
    • ​​​​​​​用户的基本组(主组):
      • ​​​​​​​组名同用户名,且仅包含一个用户,私有组
    • 用户的附加组(额外组):​​​​​​​
      • ​​​​​​​一个用户,可以属于多个组
    • ​​​​​​​uid:用户UID    gid:用户组GID        groups:附加组【默认和gid相同】
      Linux:用户组介绍、用户和组管理命令(useradd、配置文件)、权限管理(chown、chmod)
  • Linux用户和组相关的配置文件
    • ​​​​​​​/etc/passwd:用户及其属性信息(名称、UID、基本组ID等等)【不保存密码】
      • ​​​​​​​帮助查看其文件格式命令:man 5 passwd
      • ​​​​​​​name:password:UID:GID:GECOS:directory:shell
        Linux:用户组介绍、用户和组管理命令(useradd、配置文件)、权限管理(chown、chmod)
      • 用户名:密码:UID:GID:GECOS:主目录:默认shell
    • /etc/group:组及其属性信息​​​​​​​
      • ​​​​​​​帮助查看其文件格式命令:man 5 group
      • group_name:password:GID:user_list
        Linux:用户组介绍、用户和组管理命令(useradd、配置文件)、权限管理(chown、chmod)
      • 组名:组密码:GID:以当前组为附加组的用户列表(分隔符为逗号)
    • /etc/shadow:用户密码及其相关属性;
      • ​​​​​​​帮助查看其文件格式命令:man 5 shadow【共九个字段】
      • 查看shadow文件:cat /etc/shadow【以 :分割各字段】
        Linux:用户组介绍、用户和组管理命令(useradd、配置文件)、权限管理(chown、chmod)​​​​​​​
      • ​​​用户名:加密了的密码:最近一次更改密码的日期:密码的最小使用期限:最大密码使用期限:密码警告时间段:密码禁用期:账户过期日期:保留字段
      • 加密机制
        • ​​​​​​​加密:明文--> 密文
        • 解密:密文--> 明文
        • 单向加密:提取数据指纹【从文件可以加密,不能从加密解密出文件】
          • ​​​​​​​md5: message digest, 128bits
          • sha1: secure hash algorithm, 160bits
          • sha224: 224bits
          • sha256: 256bits
          • sha384: 384bits
          • sha512: 512bits
            • ​​​​​​​特性
              • 1、雪崩效应:初始的条件的微小改变,将会引起结果的巨大改变
              • 2、定长输出
      • ​​​​​​​​​​​​​​​​​​​​​​​​​​​​密码的复杂性策略
        • ​​​​​​​1、使用数字、大写字母、小写字母及特殊字符中至少3种
        • 2、足够长
        • 3、使用随机密码
        • 4、定期更换;不要使用最近曾经使用过的密码
    • /etc/gshadow:组密码及其相关属性;
      • ​​​​​​​​​​​​​​帮助查看其文件格式命令:man 5 gshadow【共九个字段】
        ​​​​
      • 查看shadow文件:cat /etc/gshadow【以 :分割各字段】
        Linux:用户组介绍、用户和组管理命令(useradd、配置文件)、权限管理(chown、chmod)
        • !:标识禁用状态
      • ​​​​​​​组名:加密了的密码:管理员:成员

  二、用户和组相关的管理命令(useradd、passwd、配置文件)

  • 用户创建:useradd 
    • ​​​​​​​格式:useradd [options] LOGIN
    • -u UID: [UID_MIN, UID_MAX], 定义在/etc/login.defs【不指定,默认从最大的ID号上+1】
    • -g GID:指明用户所属基本组,可为组名,也可以GID【组名必须事先存在】
    • -c "COMMENT":用户的注释信息
    • -d /PATH/TO/HOME_DIR: 以指定的路径为家目录
      • ​​​​​​​所有的用户家目录下,都会存在从:/etc/skel/【下copy文件,定义了用户的家环境】
        Linux:用户组介绍、用户和组管理命令(useradd、配置文件)、权限管理(chown、chmod)
    • -s SHELL: 指明用户的默认shell程序,可用列表在/etc/shells文件中
    • -G GROUP1[,GROUP2,...[,GROUPN]]]:为用户指明附加组;组必须事先存在
    • -r: 创建系统用户
    • /etc/default/useradd:添加用户的读取的默认文件
      • ​​​​​​​useradd -D  -s shell:修改配置文件,设置为shell
        Linux:用户组介绍、用户和组管理命令(useradd、配置文件)、权限管理(chown、chmod)
  • 组创建:groupadd
    • ​​​​​​​格式:groupadd [OPTION]... group_name
      • ​​​​​​​-g GID: 指明GID号;[GID_MIN, GID_MAX]、定义在/etc/login.defs【不指定,默认从最大的ID号上+1】
      • -r: 创建系统组
        • ​​​​​​​CentOS 6: ID<500
        • CentOS 7: ID<1000
  • ​​​​​​​​​​​​​​​​​​​​​查看用户相关的ID信息:id
    • ​​​​​​​格式:id [OPTION]... [USER]
      • -u: UID​​​​​​​
      • -g: GID
      • -G: Groups
      • -n: Name【id -G -n:显示GID号的组名】
      • id test1 -u :查看用户test1的用户UID
  • ​​​​​​​​​​​​​​切换用户或以其他用户身份执行命令:su
    • ​​​​​​​格式:su [options...] [-] [user [args...]]
      • ​​​​​​​切换用户的方式
        • ​​​​​​​su UserName:非登录式切换,即不会读取目标用户的配置文件
        • su - UserName:登录式切换,会读取目标用户的配置文件;完全切换;
        • 注意:root su至其他用户无须密码;非root用户切换时需要密码;​​​​​​​
      • ​​​​​​​换个身份执行命令
        • ​​​​​​​su [-] UserName -c 'COMMAND'
      • ​​​​​​​-l:“su -l UserName”相当于“su - UserName”
  • ​​​​​​​​​​​​​​用户属性修改:usermod
    • ​​​​​​​格式:usermod [OPTION] login
      • ​​​​​​​-u UID: 新UID
      • -g GID: 新基本组
      • -G GROUP1[,GROUP2,...[,GROUPN]]]:新附加组,原来的附加组将会被覆盖;若保留原有,则要同时使用-a选项,表示append;
      • -s SHELL:新的默认SHELL
      • -c 'COMMENT':新的注释信息;
      • -d HOME: 新的家目录;原有家目录中的文件不会同时移动至新的家目录;若要移动,则同时使用-m选项;
      • -l login_name: 新的名字;
      • -L: lock指定用户
      • -U: unlock指定用户
      • -e YYYY-MM-DD: 指明用户账号过期日期
      • -f INACTIVE: 设定非活动期限
  • ​​​​​​​​​​​​​​   给用户添加密码:passwd
    • ​​​​​​​格式:passwd [OPTIONS] UserName 【修改指定用户的密码,仅root用户权限】
    • ​​​​​​​passwd: 修改自己的密码
      • ​​​​​​​​​​​​​​-l: 锁定指定用户
      • -u: 解锁指定用户
      • -n mindays: 指定最短使用期限
      • -x maxdays:最大使用期限
      • -w warndays:提前多少天开始警告
      • -i inactivedays:非活动期限
      • --stdin:从标准输入接收用户密码;
        • ​​​​​​​echo "PASSWORD" | passwd --stdin USERNAME
      • ​​​​​​​特殊设备:
        • ​​​​​​​/dev/null, bit buckets【数据黑洞,可以吞噬所有数据,不保存在硬盘上】
        •  /dev/zero【可以永远吐出】
  • ​​​​​​​​​​​​​​​​​​​​​ 删除用户:userdel
    • ​​​​​​​格式:userdel [OPTION]... login
      • ​​​​​​​-r: 删除用户家目录
  • ​​​​​​​​​​​​​​组属性修改:groupmod
    • ​​​​​​​格式:groupmod [OPTION]... group
      • ​​​​​​​-n group_name: 新名字
      • -g GID: 新的GID
  • ​​​​​​​​​​​​​​组删除:groupdel
    • ​​​​​​​groupdel GROUP
  • ​​​​​​​组密码:gpasswd
    • ​​​​​​​格式:gpasswd [OPTION] GROUP
    • -a user: 将user添加至指定组中
    • -d user: 删除用户user的以当前组为组名的附加组
    • -A user1,user2,...: 设置有管理权限的用户列表
    • newgrp命令:临时切换基本组;
      • ​​​​​​​如果用户本不属于此组,则需要组密码
  • ​​​​​​​​​​​​​​检查密码文件的完整性:pwck
  • ​​​​​​​​​​​​​​修改用户密码属性:chage
    • ​​​​​​​格式:chage [OPTION]... LOGIN
    • -d LAST_DAY:最近一次修改密码时间
    • -E, --expiredate EXPIRE_DATE:修改的账号的过期期限
    • -I, --inactive INACTIVE:非活动期限
    • -m, --mindays MIN_DAYS:密码最小使用天数
    • -M, --maxdays MAX_DAYS:密码最大使用天数
    • -W, --warndays WARN_DAYS:提前多少天开始警告
    • 其他命令:chfn
      • ​​​​​​​chfn test:修改name用户的名字、办公、办公电话、家庭电话
        Linux:用户组介绍、用户和组管理命令(useradd、配置文件)、权限管理(chown、chmod)
    • chsh:修改shell​​​​​​​
      • chsh zhangzhang
        Linux:用户组介绍、用户和组管理命令(useradd、配置文件)、权限管理(chown、chmod)

三、权限管理(chown、chmod)

  • 文件的权限主要针对三类对象进行定义
    Linux:用户组介绍、用户和组管理命令(useradd、配置文件)、权限管理(chown、chmod)
    • ​​​​​​​owner: 属主, 缩写:u
    • group: 属组, 缩写:g
    • other: 其他, 缩写:o
  • ​​​​​​​每个文件针对每类访问者都定义了三种权限:
    • r: Readable【可使用文件查看类工具获取其内容】​​​​​​​
    • w: Writable【可修改其内容】
    • x: eXcutable【可以把此文件提请内核启动为一个进程】
  • 对目录来说,r、w、x
    • ​​​​​​​r: 可以使用ls查看此目录中文件列表
    • w: 可在此目录中创建文件,也可删除此目录中的文件
    • x: 可以使用ls -l查看此目录中文件列表,可以cd进入此目录​​​​​​​
  • 权限转变成二进制数
    • 权限:​​​​​​​---       位数:000      二进制数:0
    • 权限:--x      位数:001      二进制数:1
    • 权限:-w-     位数:010      二进制数:2
    • 权限:-wx    位数:011      二进制数:3
    • 权限:r--      位数:100      二进制数:4
    • 权限:r-x     位数:101      二进制数:5
    • 权限:rw-    位数:110      二进制数:6
    • 权限:rwx   位数:111      二进制数:7
  • ​​​​​​​修改文件权限:chmod
    • ​​​​​​​格式:chmod [OPTION]... OCTAL-MODE FILE...​​​​​​​
    • -R: 递归修改权限,目录下的文件同样修改为此权限
    • 修改一类用户的所有权限:Mode
      • ​​​​​​​u=rwx:属主增加读、写、执行
      • g=
      • o=
      • ug=rwx:属主、属组增加读、写、执行
      • a=rwx:属主、属组、其他增加读、写、执行
      • u=,g=
    • ​​​​​​​修改一类用户某位或某些位权限
      • ​​​​​​​u + w:属主增加写权限
      • o - r:其他减少读权限
    • ​​​​​​​参考RFILE文件的权限,将FILE的修改为同RFILE;
      • ​​​​​​​chmod [OPTION]... --reference=RFILE FILE...
      • 例子:chmod --reference=./c.txt  a.txx  【把a.txt的权限修改的和c.txt权限一致】
  • ​​​​​​​​​​​​​​修改文件的属主和属组:仅root可用
    • ​​​​​​​修改文件的属主:chown
    • 格式:chown [OPTION]... [OWNER][:[GROUP]] FILE...
      • ​​​​​​​OWNER 【只改属主】
      • OWNER:GROUP【修改属主、属组】
      • :GROUP【只改属组】
      • 注意:命令中的冒号可用【 . 】替换
      • -R:【把目录及目录下的文件,都该变属组,属主】
    • ​​​​​​​参考RFILE文件的权限,将FILE的修改为同RFILE
      • 格式:chown [OPTION]... --reference=RFILE FILE...
      • 例子:chmod --reference=./c.txt  a.txx  【把a.txt的属组、属主权限修改的和c.txt权限一致】
  • ​​​​​​​​​​​​​​修改文件的属组:chgrp【与chown权限一致】
  • 文件或目录创建时的遮罩码:umask【root用户是0022】
    • FILE权限: 666-umask​​​​​​​
      • ​​​​​​​如果某类的用户的权限减得的结果中存在x权限,则将其权限+1
    • ​​​​​​​DIR权限: 777-umask
    • umask: 查看umask
    • umask #: 设定umask的值,仅对当前shell进程有效,如果都有效,需要写入配置文件

​​​​​​​​​​​​​​​​​​​​​

​​​​​​​​​​​​​​​​​​​​​

 

 

 

上一篇:Linux文件权限操作


下一篇:ubuntu 更改目录所有者