管理本地用户和组

管理本地用户和组

概念

  1. 用户只能有一个主组,但可以有多个副组。
  2. root用户是Linux系统的超级管理员用户,拥有最大权限。
  3. 推荐以普通用户登录到系统,再使用su切换用户,或使用sudo临时提高权限执行维
    护操作。
  4. 当使用者执行sudo时:
    • 系统在/etc/sudoers档案中搜寻该使用者是否有执行sudo的权限。
    • 如果有权限,会让使用者输入自己的密码来确认
    • 如密码输入成功,便开始执行sudo后面接的命令。
  5. 使用visudo命令编辑/etc/sudoers。sudoers的配置项为:
    使用者账号 登录者的来源主机名称=(可切换的身份) 可下达的命令
    root ALL=(ALL) ALL
  6. 不能登录到系统,但能使用系统资源的账号,我们称之为系统账号,并为这种账号
    设置shell为/sbin/nologin
  7. PolicyKit提供了类似于Windows的UAC功能。
  8. redhat7中 wheel用户组的用户将得到完整的sudo权限。
  9. 当dmtsai账号同时支持dmtsai与users这两个群组,因此在读取/写入/执行档案时,
    针对群组部分,只要是users与dmtsai这两个群组拥有的功能,dmtsai这个使用者都
    能够拥有。不过如果以dmtsai账号新建一个档案或目录,新档案的群组是dmtsai还
    是users?这需要检查当时的有效群组(effective group)了。
  10. 使用newgrp groupname可以切换有效群组。
  11. 如果root用户太忙,当有使用者想要加入某些群组时,root或许会没有空管理。此
    时如果能够建立群组管理员的话,那么该群组管理员就能够将那个账号加入自己管
    理的群组中。
  12. 群组必须设置密码后,才能设置群组管理员。群组管理员有权将某用户加入到群组
    中。
  13. 群组管理员可以有多个。
  14. 使用useradd建立账号时会参考:
    • /etc/default/useradd
    • /etc/login.defs
    • /etc/skel/*
  15. 如果要删除某个群组,必须要确认/etc/passwd内的账号没有任何人使用该群组作
    为初始群组(initial group)。

相关文件

  • /etc/passwd: 用户信息
  • /etc/shadow: 用户密码信息
  • /etc/group: 组信息
  • /etc/sudoers: sudo用户设置

常用命令

  • id: 查看当前登录的用户信息。
  • su - username: 切换到用户username。
  • sudo command: 以root权限执行command命令。
  • sudo -u user command: 以user权限执行command命令。
  • visudo: 带有安全校验的编辑 /etc/sudoers 文件。

用户维护

  • useradd: 创建用户
  • useradd -D: 查看用户预设
  • usermod: 修改现有用户
  • userdel: 删除用户
  • passwd: 设置密码
  • chage: 改变用户密码过期信息
  • chsh -s /bin/bash username: 修改用户的shell。

删除用户后,可能会在系统上存在该用户创建的遗留文件,使用以下命令删除无主文件:
find / -nouser -nogroup 2> /dev/null

UID安排

  • UID 0 是超级管理员用户root
  • UID 1-200 系统用户
  • UID 201-999 服务用户
  • UID 1000+ 常规用户

用户组维护

  • groups: 查看当前用户支持的群组,第一个组为用户的有效群组。
  • newgrp groupname: 切换有效群组为groupname。具体的方法是通过新建一个shell,并设置groupname
    为有效群组,退出使用命令exit。
  • groupadd: 添加用户组
  • groupmod: 修改现有用户组
  • groupdel: 删除用户组
  • usermod -g groupname: 修改用户的的主组
  • usermod -aG groupname username: 修改用户的副组
  • gpasswd groupname: 为某个群组设置密码。
  • gpasswd -A username groupname: 为groupname群组设置群组管理员为username。
  • gpasswd -a username groupname: 将username加入到groupname群组中,执行者必须是群组管理员才有该权限。
  • gpasswd -d username groupname: 将username从groupname群组中移除。

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