linux用户和组

Posted 我听过

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux用户和组相关的知识,希望对你有一定的参考价值。

1、安全 3A
  资源分派:Authentication:认证
  Authorization:授权
  Accouting|Audition:审计

2、令牌(token):用户一登录成功系统分配令牌 token,用户凭借该令牌访问该令牌可以访问的文件,用户想要得到最新的令牌必须重新登录

3、Linux 用户:Username/UID  Linux 组:Groupname/GID

  用户管理员:root,UID=0
  普通用户UID:1-65535
  系统用户UID:1-499(centos6),1-999(centos7)
    系统用户:对守护进程获取资源进行权限分配
  登录用户:500+(centos6),1000+(centos7)

  组管理员:root,GID=0
  系统组GID:1-499(centos6),1-999(centos7)
  普通组GID:500+(centos6),1000+(centos7)

4、Linux 安全上下文
  运行中的程序:进程(process)
  以进程发起者的身份运行:当用户执行程序的时候,用户的身份是程序的一个发起者即上下文:context(运行此程序的用户身份,用户组身份)
  进程所能访问资源的权限取决于进程的运行者身份

5、组的类别:

  用户账号可以属于组1 组2 组3,权限为三组累加权限
  用户的主要组(primary group)
  用户必须属于一个且只有一个主组
  组名同用户名,且仅包含一个用户,私有组
  用户的附加组(supplementary group)
  一个用户可以属于零个或多个辅助组

6、 Linux 用户和组的主要配置文件:
  1>/etc/default/useradd:与创建用户默认属性值(属于组、配置文件(/etc/skel/)…)有关

  2>/etc/passwd:用户及其属性信息(名称、UID、主组 ID 等)
    用户 :密码 :UID :GID :描述信息 :家目录 :shell 类型
      密码处使用 X 占位,使用命令 pwunconv 显示密码,使用命令 pwconv 占位
      使用命令 chfn 账号名 添加描述信息;使用 finger 账号名 查看用户信息
      如果要更改家目录,不只是要更改家目录还要更改配置,给更改的用户家目录权限 cp -r /etc/skel/.[^.]* /[用户新家目录]
      支持的 shell 类型:/etc/shells;使用 chsh -s /bin/sh 账号名 更改 shell 类型
      /sbin/nologin:不能登录,一般给服务使用

  3>/etc/group:组及其属性信息
    gpasswd [用户名] 设置组口令
    普通用户可以自己加入组(前提:得知道该组的口令) //不建议
    #newgrp [组名] 输入密码,加入该组,加入后加入组临时成为主组,如果已经在该组里面使用 newgrp 暂时切换主组

  4>/etc/shadow:用户密码及其相关属性
    用户名 :加密后的口令 :更改口令的时间 :口令最短更改期 :口令过期日期 :密码警告时间 :密码禁用期 :账户过期日期:保留字段
    在/etc/login.defs 更改默认口令有效期

  5>/etc/gshadow:组密码及其相关属性
    root :口令(!锁定):组长:组成员(和 group 最后一个字段相同)

  6>文件操作:vipw 和 vigr(具有语法检查功能) pwck 和 grpck(检查格式)

  7>用户和组管理命令
    (1)用户管理命令:
      useradd、usermod、userdel(增加 修改 删除)
    (2)组账号维护命令:
      groupadd、groupmod、groupdel(增加 修改 删除)

    getent passwd [用户名]  只显示/etc/passwd 中关于该用户的一行
    useradd -o  //配合-u,不检查 UID 的唯一性
    useradd -g  //GID:指明用户所属基本组,可为组名,也可以为 GID
    useradd -c  //用户的注释信息
    useradd -d  //以指定的路径(不存在)为家目录
    useradd -s  //指明用户的默认 shell 程序
    useradd -G  //为用户指明附加组,组必须事先存在
    useradd -N  //不创建私有组做主组,使用 users 组做主组
    useradd -r   //创建系统用户 CentOS6:ID<500,CentOS7:ID<1000
    useradd -m  //创建家目录,用于系统用户
    useradd -M     //不创建家目录,用于非系统用户

    useradd -D                         显示默认设置
    useradd -D -s shell             更改 shell
    useradd -D -b BASE_DIR  更改 BASE_DIR
    useradd -D -g GROUP    更改 GROUP 

    创建用户默认值设定在:/etc/default/useradd 中

    批量新建用户和批量修改口令:
      批量新建用户:复制/etc/passwd 中的用户信息,追加至users.txt文件里,通过newusers users.txt 批量创建用户(不限终端,跨终端使用scp远程拷贝再批量创建)
      批量修改口令:追加多个"用户名:密码"至passwd.txt文件,cat passwd.txt | chpasswd 批量修改密码

    usermod [OPTION] login
      -u UID:新 UID
      -g GID:新 GID
      -G :新附加组,原来的附加组被覆盖,若要保留同时使用-a 选项
      删除附加组:usermod -G “” login 或 usermod -G login login
      -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:设定非活动期限
      userdel -r login //顺便删除家目录

      切换用户身份:su

    passwd [OPTIONS] login:修改指定用户的密码
      -d:删除指定用户密码
       -l:锁定指定用户
      -u:解锁指定用户
      -e:强制用户下次登录修改密码
      -f:强制操作
      -n mindays:指定最短使用期限
      -x maxdays:最大使用期限
      -w warndays:提前多少天开始警告
      -I inactivedays:非活动期限
      -stdin:从标准输入接收用户密码
        echo “password” | passwd --stdin username

    chage [选项] 登录
    选项:
      -d, --lastday 最近日期 将最近一次密码设置时间设为“最近日期”
      -E, --expiredate 过期日期 将帐户过期时间设为“过期日期”
      -h, --help 显示此帮助信息并推出
      -I(大写 i), --inactive INACITVE 过期 INACTIVE 天数后,设定密码为失效状态
      -l(小写 L), --list 显示帐户年龄信息
      -m, --mindays 最小天数 将两次改变密码之间相距的最小天数设为“最小天数”
      -M, --maxdays 最大天数 将两次改变密码之间相距的最大天数设为“最大天数”
      -R, --root CHROOT_DIR chroot 到的目录
      -W, --warndays 警告天数 将过期警告天数设为“警告天数”
    实例:
      chage -d 0 [用户] //下一次登录强制重设密码
      chage -m 0 -M 42 -W 14 -I 7 [用户]
      chage -E 2020-02-01 [用户]

    创建组:
    groupadd [OPTION]… group_name
      -g GID:指定 GID
      -r 创建系统组(CentOS6:ID<500 CentOS7:ID<1000)

    修改和删除组:
    groupmod [OPTION]… group //修改组
      -n group_name:新名字
      -g GID:新 GID
    groupdel GROUP //删除组(主组不能直接删,附加组可以)

    组密码:gpasswd
    gpasswd [OPTION] GROUP
      -a user 将 user 添加至指定组中
      -d user 从指定组中移除用户 user
      -A user1,user2,… 设置有管理权限的用户列表

    newgrp:临时切换主组,如果用户不属于此组,则需要组密码

    groupmems -l -g 组名 //查看组成员
    groupmems -a 用户名 -g 组名 //往组里添加用户(删除-d 全清-p)
    groups 用户名 //查用户属于哪个组

7、 密码加密
  加密机制:加密:明文→密文 解密:密文→明文
  单项加密:哈希算法,原文不同,密文必不同
  相同算法定长输出,获得密文不可逆推出原始数据
  雪崩效应:初始条件的微小改变,引起结果的巨大改变
  加密算法:md5、sha1、sha224、sha256、sha384、sha512
  更改加密算法:authconfig –passalgo=sha256 –update //其实更改了/etc/login.defs
  密码的复杂性策略,生产中使用

以上是关于linux用户和组的主要内容,如果未能解决你的问题,请参考以下文章

用户和组管理用户和组管理

Linux用户和组管理

Linux系统管理之用户和组配置文件

linux系统下怎么修改文件所属用户和组?

Linux 用户和组

linux系统用户和组管理