用户和组的管理命令

(一)Linux用户和组管理

  • 安全上下文模型
    • 进程以其发起者的身份运行:进程对文件的访问权限,取决于发起此进程的用户的权限
  • 系统用户:为了能够让那些后台进程或服务类进程以非管理员的身份运行,通常需要为此创建多个普通用户,此类用户从来不用登陆系统,仅仅需要他们的权限给进程
  • groupadd:添加组
    • groupadd [选项] group_name
    • -g GID:自定义GID,默认是上一个组的GID加1
    • -r:创建系统组
  • groupmod:修改组
    • groupmod [选项] group_name
    • -g GID:修改GID
    • -n New_Name:修改组名
  • groupdel:删除组
    • groupdel [选项] group_name
  • useradd:创建用户
    • file 'which adduser',发现adduser是useradd的符号链接
    • useradd [选项] User_Name
    • -u/--uid UID:自定义UID,默认使用上一个用户的UID加1
    • -g/--gid Group:自定义基本组,此组必须事先存在,否则会出错;注:Group应该是指组的名字,不是GID??
    • -G/--groups Group1[,Group2...[,GroupN]]:指明用户所属的附加组,多个组之间用逗号分隔
    • -c/--comment Comment:指明注释信息
    • -d/--home home_dir:自定义用户家目录
      • 家目录的创建过程是复制/etc/skel,然后重命名
      • 指定的家目录路径如果事先存在,则不会为用户复制环境配置文件
    • -s/--shell Shell:指定用户的默认shell。
      • 可用的所有shell列表存储在/etc/shells文件
    • -r/--system:创建系统用户
    • 创建用户时的诸多默认设定配置文件为 /etc/login.defs
    • useradd -D:用于显示创建用户的默认配置
    • useadd -D 选项:修改默认选项的值
      • 修改的结果保存于/etc/default/useradd文件中,也可以直接编辑此文件
  • usermod:修改用户属性
    • -u/--uid UID:修改用户的UID
    • -g/--group Group:修改用户的基本组,这个组事先必须存在
    • -G/--groups Group1[,Group2...[,GroupN]]:修改用户的附加组,原来的附加组会被覆盖
    • -a/--append:追加附加组,和-G一起使用
    • -c/--comment Comment:修改注释信息
    • -d/--home home_dir:修改用户家目录,用户原有的文件不会被转移至新位置
    • -m/--move-home:移动家目录到新位置,只有与-d结合使用才有效
    • -l/--login New_Name:修改用户名
    • -s/--shell Shell:修改用户的默认shell
    • -L/--lock:锁定用户密码,禁止用户登陆,即在用户原来的密码字符串之前添加一个“!”
    • -U/--unlock:解锁用户密码
    • 注:比较常用的是-a -G结合使用
  • userdel:删除用户
    • userdel [选项] User_Name
    • -r:删除用户时,一并删除其家目录,默认不删除
  • passwd:修改密码
    • 单独使用表示修改用户自己的密码
    • passwd UserName:修改指定用户的密码,默认情况下,仅root用户有此权限。root用户修改别人密码的时候,不需要知道原密码。
    • -l/-u:锁定和解锁用户
    • -d:清除用户密码
    • -e Date:过期期限,日期
    • -i Days:非活动期限,密码过期以后还能活动几天
    • -n Days:修改密码的最小间隔
    • -x Days:修改密码的最长使用期限
    • -w Days:警告期限
    • echo "Mage" | passwd --stdin docker,在脚本中通常如此使用
  • gpasswd:修改组密码,或者添加删除用户
    • -a UserName:向组中添加用户,用户将以此组为附加组
    • -d UserName:从组中移除用户,用户将不再以此组为附加组
    • 给组添加密码的作用
      • 如果组没有密码,其他人无法把主组切换为此组
      • 如果组有密码,如果其他人的附加组包括该组,切换过来不需要密码
      • 如果组有密码,如果其他人的附加组不包括该组,切换过来需要密码
      • 设置密码的方法是:gpasswd GroupName,之后便会提示输入两次密码
  • newgrp:临时切换指定的组为基本组
    • -:加横行表示模拟用户重新登陆,重新初始化其工作环境
    • exit退出
  • chage:修改密码的过期信息,选项和上面一样
  • id:显示用户的真实和有效ID信息
    • 直接用表示显示自己的
    • id UserName:显示别人的
    • -u:仅显示有效的UID
    • -g:仅显示基本组id,不显示附加组的
    • -G:显示所有组的,基本组和附加组
    • -n:显示名字而非Id,可以和上面的选项结合使用
  • su:switch user/切换用户
    • 登陆式切换/完全切换:仿佛重新登陆,重新初始化用户的工作环境,su - UserName或者su -l UserName
    • 非登录式切换/半切换:不会重新初始化用户的工作环境,su UserName
    • root用户切换至其它任何用户不需要密码,非root用户需要给出目标用户的密码
    • -c:不切换用户,仅以用户身份执行命令,例如:su - docker -c 'whoami'
    • exit退出
  • 其它几个命令:
    • chsh:修改shell
    • chfn:修改用户信息
    • finger:显示用户信息
    • pwck:检查用户有没有什么问题
    • grpck:检查组有没有什么问题
原文地址:https://www.cnblogs.com/jacky1982/p/7624260.html