用户和用户组的管理

一、安全上下文协议

  • Linux 安全上下文

    • 运行的程运行中的程序:进程 (process)

    • 以进程发起者的身份运行:

        root: /bin/cat
        mage: /bin/cat
      
    • 进程所能够访问资源的权限取决于进程的运行者的身份

  • 用户user

    • 令牌token,identity

    • Linux 用户:Username/UID

    • 管理员:root, 0

    • 普通用户:1-65535

    • 系统用户:1-499, 1-999 (CentOS7) 对守护进程获取资源进行权限分配

    • 登录用户:500+, 1000+(CentOS7)
      交互式登录

  • 组group

    • Linux 组:Groupname/GID

    • 管理员组:root, 0

    • 普通组:
      系统组:1-499, 1-999(CENTOS7) )

      普通组:500+, 1000+ (CENTOS7)

    • 组的类别

      • 用户的主要组(primary group)
        • 用户必须属于一个且只有一个主组
        • 组名同用户名,且仅包含一个用户:私有组
      • 用户的附加组(supplementary group)
        • 一个用户可以属于零个或多个辅助组
  • 用户和组的配置文件

    Linux 用户和组的主要配置文件:

      /etc/passwd :用户及其属性信息( 名称、UID 、主组ID 等)
      /etc/group :组及其属性信息
      /etc/shadow :用户密码及其相关属性
      /etc/gshadow组密码及其相关属性
    
  • /etc/passwd文件格式

      login name :登录用名(wang) )
      passwd :密码 (x)
      UID号 :用户身份编号 (1000)
      GID :登录默认所在组编号 (1000)
      GECOS :用户全名或注释
      home directory录 :用户主目录(/home/wang)
      shell :用户默认使用shell(/bin/bash)
    
  • /etc/shadow文件格式

  1. 登录用名
  2. 用户密码: 一般用sha512 加密
  3. 从 从1970 年1 月1日起到密码最近一次被更改的时间
  4. 密码再过几天可以被变更(0表示随时可被变更)
  5. 密码再过几天必须被变更(99999表示永不过期)
  6. 密码过期前几天系统提醒用户(默认为一周)
  7. 密码过期几天后帐号会被锁定
    从 从1970 年1 月1
  • /etc/group文件格式
  1. 群组名称:就是群组名称
  2. 群组密码:通常不需要设定,密码是被记录在/etc/gshadow
  3. GID的 :就是群组的 ID
  4. 以当前组为附加组的用户列表(分隔符为逗号)
  • gshdow文件格式
  1. 群组名称:就是群组名称
  2. 群组密码:
  3. 组管理员列表:组管理员的列表,更改组密码和成员
  4. 以当前组为附加组的用户列表:( 分隔符为逗号)

二、用户创建:useradd

 useradd [options] LOGIN
-u  UID :  [UID_MIN, UID_MAX]定义在/etc/login.defs
-o  配合-u  选项,不检查UID 的唯一性
-g  GID :指明用户所属基本组,可为组名,也可以GID
-c  "COMMENT" :用户的注释信息
-d  HOME_DIR: 以指定的路径( 不存在) 为家目录
-s  SHELL :  指明用户的默认shell 程序可用列表在/etc/shells 文件中
-G  GROUP1[,GROUP2,...] :为用户指明附加组,组须事先存在
-N  不创建私用组做主组,使用users 组做主组
-r:  创建系统用户 CentOS 6: ID<500 ,CentOS 7: ID<1000


显示或更改默认设置:
useradd -D
useradd –D -s SHELL
useradd –D –b BASE_DIR
useradd –D –g GROUP

三、用户属性修改:usermod

usermod [OPTION] login
-u UID:  新UID
-g GID: 新 新 主 组
-G GROUP1[,GROUP2,...[,GROUPN]]] :新附加组,原来的附加组将会被覆盖;若保留原有,则要同时使用-a 选项
-s SHELL :新的默认SHELL
-c 'COMMENT' :新的注释信息
-d HOME:  新家目录不会自动创建;若要创建新家目录并移动原家数据,同时使用-m 选项
-l login_name:  新的名字;
-L: lock 指定用户, 在/etc/shadow 加 密码栏的增加 !
-U: unlock 指定用户,将 将 /etc/shadow 的 密码栏的 !  拿掉
-e YYYY-MM-DD:  指明用户账号过期日期
-f INACTIVE: 设定非活动期限

新建用户生成的相关文件和命令:

/etc/default/useradd
/etc/skel/*
/etc/login.defs
newusers passwd 格式文件 批量创建用户
chpasswd 批量修改用户口令

userdel [OPTION]... login
-r:  删除用户

四:设置密码

passwd:  修改自己的密码

-l: 锁定指定用户
-u: 解锁指定用户
-e: 强制用户下次登录修改密码
-n mindays:  指定最短使用期限
-x maxdays :最大使用期限
-w warndays :提前多少天开始警告
-i inactivedays :非活动期限
--stdin :从标准输入接收用户密码
echo " PASSWORD " | passwd --stdin USERNAME

修改用户密码策略:

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
    -l 显示密码策略
    
    chage -d 0 tom下一次登录强制重设密码
    chage -m 0 –M 42 –W 14 –I 7 tom
    chage -E 2016-09-10 tom

更改组的密码:

 gpasswd [OPTION] GROUP
    -a user:  将user 添加至指定组中
    -d user:  从指定组中移除用户user
    -A user1,user2,...:  设置有管理权限的用户列表
newgrp 命令:临时切换主组如果用户本不属于此组,则需要组密码

更改查看组成员:

groupmems [options] [action]

options: :
    -g, --group groupname 组 更改为指定组 ( 只有root)
Actions:
    -a, --add username 指定用户加入组
    -d, --delete username 从组中删除用户
    -p, --purge 从组中清除所有成员
    -l, --list 显示组成员列表
groups  [OPTION].[USERNAME]...查看用户所属组列表

修改文件的属主和属组:
修改文件的属主:chown

chown [OPTION]... [OWNER][:[GROUP]] FILE...
用法:命令中的冒号可用. 替换
-R:  递归
chown [OPTION]... --reference=RFILE FILE...

修改文件的属组:chgrp

chgrp [OPTION]... GROUP FILE...
chgrp [OPTION]... --reference=RFILE FILE...
-R 递归

你可能感兴趣的:(用户和用户组的管理)