Linux学习笔记之用户账户和组账户管理

项目4 用户账户和组账户管理

4.1 用户账户管理

  • 用户管理:Linux使用用户权限机制对系统进行管理;提供不同用户使用本系统的权限分配,保证用户数据与文件的安全
  • Linux系统中每个登录的成员都要有一个用户账号;登录时,只有输入正确的用户名和口令,才能被允许进入Linux;账号实质上就是一个用户在系统上的标识,系统依据账户来区分每个用户的文件、进程、任务,给每个用户提供特定的工作环境
  • Linux中用户分成三类:超级用户、系统用户和普通用户
    超级用户(root用户):每个Linux系统都必须有,并且只有一个。它拥有最高权限,可以删除、终止任何程序
    系统用户:与系统运行和系统提供的服务密切相关的用户,通常在安装相关的软件包时自动创建并保持默认状态,系统用户不能登录计算机
    普通用户:在系统安装后由超级用户创建的,通常完成指定权限的操作,而且也只能操作自己所拥有权限的文件和目录
  • 用户账户文件/etc/passwd组成
    字段1--用户名:在系统中是唯一的,可以由字母、数字和符号组成
    字段2--口令:此字段用“x”代替,而将口令保存在/etc/shadow文件(用户影子文件)中
    字段3--用户ID(UID--0~1000以上,超级用户UID=0):系统内部用来标识用户且唯一
    字段4--组ID(GID):系统内部用来标识组属性
    字段5--用户相关信息
    字段6--用户主目录(可变更)
    字段7--用户登录环境
  • 用户影子文件/etc/shadow组成(只有root可以访问)
    字段1--用户名
    字段2--口令:存放MD5加密过的口令
    字段3--标识从1970年1月1日到用户最近一次修改口令所经过的天数
    字段4--口令保持有效的最小天数,即口令在多少天内不能被用户修改
    字段5--口令在多少天后需要被修改
    字段6--口令到期前多少天内给用户发出警告
    字段7--口令过期多少天后口令失效
    字段8--账号失效日
    字段9--保留域

创建新用户

  • 格式:useradd [选项] <用户名>
    功能:新建用户账户,只有超级用户才有使用此命令的权限
    选项:
    -u 用户ID:指定用户UID
    -g 组ID或组名:指定新用户的主组
    -G 组ID或组名:指定新用户的附加组
    -d 主目录:指定新用户的主目录
    -s 登录shell:指定新用户使用的shell,默认为/bin/bash
    -e 有效期限:指定用户登录失效时间,例如:11/30/2020
    -f 缓冲天数:设置在密码过期后多少天关闭该账号
    -c 备注:为账户添加备注
    -m 默认主目录:自动创建与用户名同名目录
    -n 取消建立以用户名称为名的组
    -r 建立系统账号
    (新增用户需要同时设置密码,不然无法使用该用户账号登录系统)

设置用户密码

  • 格式:passwd [选项] [用户名]
    功能:设置、修改用户的口令以及口令的属性
    选项:
    -d 删除用户口令,则该用户账号无需口令即可登录
    -l 锁住口令
    -u 恢复禁用用户账户
    -S 显示指定用户账户的状态
    (系统管理员可以设置所有用户的密码,普通用户只能修改自己的密码)

修改用户信息

  • 格式:usermod [选项] <用户名>
    功能:修改用户的属性信息,只有超级用户才可以使用该命令
    选项:
    -g 组ID或组名:指定新用户的主组
    -G 组ID或组名:指定新用户的附加组
    -d 主目录:指定新用户的主目录
    -s 登录shell:指定新用户使用的shell,默认为bash
    -e 有效期限:指定用户的登录失效时间
    -u 用户ID:指定用户UID
    -c 全名:指定用户全称
    -f 缓冲天数:指定口令过期后多久将关闭此账户
    -l 用户名:指定用户的新名称
    -L 用户名:锁定用户密码,使密码无效
    -U 用户名:解除密码锁定
    (usermod命令与useradd命令的区别在于usermod命令可以修改用户名且在禁用和恢复账号功能上,命令usermod不等同于passwd)

删除用户

  • 格式:userdel [选项] <用户名>
    功能:删除指定的用户账号,只有超级用户才能使用该命令
    选项:
    -r 用于删除用户的Home目录和邮件
    -f 强制删除用户登录目录及目录中的所有文件
    (正在使用系统的用户不能被删除,必须先终止该用户的所有进程才能删除该用户)

成批添加用户:newusers

  • 第一步:先建立文本文件:n_user.txt
    201700824101🧑‍🎓701:701:lining:/home/201700824101:/bin/bash
    201700824102🧑‍🎓702:702:chenmeng:/home/201700824102:/bin/bash
    201700824103🧑‍🎓703:703:niuliyue:/home/niuliyue:/bin/bash
    201700824104🧑‍🎓704:704:zhengzhenzhen:/home/zhengzhenzhen:/bin/bash
  • 第二步:执行命令newusers n_user.txt

成批修改口令:chpasswd

  • 第一步:先建立文本文件:n_uspw.txt
    201700824101:824101
    201700824102:824102
    201700824103:824103
    201700824104:824104
  • 第二步:执行命令chpasswd<n_uspw.txt

其他的shell命令

  • id命令:id [选项] [用户名]
    功能:查看一个用户的UID和GID
    选项:
    -g 显示用户的主组的GID
    -G 显示用户所有组的GID
    -u 只显示UID

  • whoami命令:whoami
    功能:用于显示当前用户的名称

  • su命令:su [-] [用户名]
    功能:转换当前用户到指定的用户账号
    选项:

  • 在转换当前用户的同时转换用户工作环境
    用户名 若不指定用户名则转换当前用户到root

4.2 组账户管理

  • 组管理:组是具有相同特性的用户集合;设置的目的主要是便于权限的统一组织和分配;但是需要注意的是组帐号不能登录计算机
  • 组按性质划分为:系统组和私有组账户
    系统组:安装Linux及部分服务性程序时系统自动设置的组
    私有组:系统安装完成后,由超级用户新建的组
  • 组管理文件构成
    组账户文件:/etc/group
    组影子文件:/etc/gshadow
  • group文件组成:
    字段1-组名:组的名称,由字母、数字和符号组成
    字段2-组ID(GID):识别不同组的唯一标识
    字段3-组口令:默认情况下不使用,必须经过特殊设置
    组内用户列表:属于该组的所有用户名表,用“,”间隔
  • gshadow文件组成:组名、组口令、组管理员、组内用户列表
  • 组账户管理命令
    • groupadd命令
      ​ 格式:groupadd [-g GID] <组帐号名>
      ​ 功能:新建组群,只有超级用户才能使用此命令,该指令的执行将在etc/group文件和etc/gshadow文件中分别增加一行记录
      ​ 选项:
      ​ -g:用于指定GID;不加-g选项则使用系统默认GID
      ​ -r:用于创建系统组帐号(GID小于1000)
    • groupmod命令
      ​ 格式:groupmod [参数] <组帐号名>
      ​ 功能:修改指定组群,只有超级用户才能使用此命令,该指令的执行将修改/etc/group文件相应记录的内容
      ​ 选项:
      ​ -g:改变组帐号的GID;组帐号名保持不变
      ​ -n:改变组帐号名
    • groupdel命令:
      ​ 格式:groupdel <组帐号名>
      ​ 功能:删除指定组群,只有超级用户才能使用此命令
      ​ 注意:被删除的组帐号必须存在;当有用户使用组帐号作为私有组时不能删除;与用户名同名的私有组帐号在使用userdel命令删除用户时被同时删除

彩蛋(因后续随笔更新内容,思维图没有及时同步,请读者自行整理


未完,待续 ~

posted @ 2020-03-31 15:13  废材师弟  阅读(608)  评论(0编辑  收藏  举报