Linux基础命令——用户组相关

记得风吹起的零散记忆 ,堆砌着巧克力般的幸福甜蜜,那时一起走过的青草绿地 ,留下了锦瑟音里的万千思绪

  • 搜狗截图20180410222542
  • useradd创建用户(创建一个新用户or更新默认新用户信息)
    • -u|–uidUID:指定用户的UID(从最大的已用ID号后加一)定义在/etc/login.defs
    • -o配合-u:不检查UID的唯一性
      • 例:说明Linux中只看用户的ID号,不看姓名,事先创建了5000的用户wangcai,其主组也是5000,后来用-o创建了5000的xiaoqiang,因为系统只看UID来识别用户,所以id xiaoqiang时,显示的是先创建的5000 的wangcai,xiaoqiang的主组为5000+1的组,查看他们家目录的时候,xiaoqiang的属主是wangcai,说明同样UID的用户只显示先前创建的,他们有各自的家目录且对相同的资源有一样的权限
      • 图片1
    • -g| –gid GID:指明用户所属基本组,可为组名,也可以GID(前提该组存在)
    • 图片1
    • -G|–groupsGROUP1[,GROUP2,…]:指定附加组(可以有多个,逗号隔开前提该组存在)
    • 图片1
    • -N:不创建私用组做主组,使用系统的默认的users组做主组
    • -d|–homeHOME_DIR:指定某个目录作为家目录(该目录必须事先不存在)
    • -c,–comment:注释说明
    • -sSHELL:指定用户使用的shell(跟shell的路径),环境变量(查看当前用户的shell):$SHELL
    • -m:给用户创建家目录 -k:将/etc/skel下的所有文件复制到用户家目录下,默认自带-m-k,有些时候需要强制-m-k
    • -M:不建立家目录,即使/etc/login.defs设定要建立家目录。
    • -r,–system:创建系统用户(不创建家目录,即使加上-d也必须手工创建,id号为系统用户id)
    • -D:使用命令修改或显示配置文件/etc/default/useradd里的值
      • useradd –D -s SHELL
      • useradd –D –b BASE_DIR,修改HOME
  • 在创建用户时都会自动对该用户生成一些默认的属性,其配置文件为:/etc/default/useradd
    • GROUP:默认的系统组为user,id为100
    • /etc/skel:shell的配置文件,当创建一个用户的时候,会自动将该目录下的所有文件复制到该家目录下
    • 图片1
    • CREATE_MAIL_SPOOL,是否创建邮箱,系统用户不会创建邮箱
  • /etc/login.defs:用户配置信息的设定文件
    • MAIL_DIR /var/spool/mail 默认给用户创建邮箱的位置
    • PASS_MAX_DAYS 99999
    • PASS_MIN_DAYS 0
    • PASS_MIN_LEN 5
    • PASS_WARN_AGE 7
    • UID_MIN                  1000
    • UID_MAX                 60000
    • ….
  • 实例:批量创建用户,将老机器上的普通用户导入到新机上
    • 首先创建一个和passwd文件一样格式的文本文件,删除系统用户
      • getent passwd > user.txt
    • 批量生成用户:newusers  user.txt
    • 这样生成的用户,邮箱没有,家目录有,但家目录里的隐藏文件没有,密码也没有
    • 批量创建密码,也需要一个特定格式的文件,使用命令chpasswd
    • 图片1
  • userdel:删除用户,只删除用户和他同名的主组,其数据不会删除
    • -r:级联删除用户的家目录,邮箱等数据
  • usermod:修改用户帐号信息:
    • -uUID:指定用户的UID,修改用户UID
    • -gGID:修改用户的基本组
    • -G:如果不加-a覆盖原来附加组,加上-a追加附加组,
      • 删除附加组:usermod -G ‘’USERNAME
    • -d:指定新的家目录,原来的家目录文件无法修改,加上-m(-m只能与-d一同使用)移动原来家目录(包括目录中的所有文件)到新的位置
    • 图片1
    • -l:修改用户登录名
      • usermod -l NEWUSERNAME OLDUSERNAME
    • -s:修改用户的默认shell
    • -c ‘COMMENT’:新的注释信息
    • -L:锁定帐号,即在/etc/shadow用户密码字符串之前加一个“!”
    • -U:解锁帐号,将/etc/shadow密码栏的!去掉
    • -e YYYY-MM-DD: 指明用户账号过期日期
    • -f INACTIVE: 设定非活动期限
  • id:打印用户和用户组的信息,格式:id [OPTION] USERNAME
    • -u:仅显示有效的UID
    • -g:仅显示用户的基本组ID
    • -G:仅显示用户所属的所有组ID
    • -n:显示以上选项的名字而非ID,必须和以上选项配合使用
  • passwd:修改密码
    • -l,-u:锁定和解锁用户
    • -d:删除密码
    • -e :强制用户下次登录修改密码
    • -i DAYS:非活动期限
    • -n DAYS:密码的最短使用期限
    • -x DAYS:密码的最长使用期限
    • -w DAYS:警告期限
    • –stdin:从标准输入接收用户密码 (root only)
      • 例:# echo “123456” | passwd –stdin user1
  • chage(change age):更改用户时间的命令
    • chage USERNAME:更改用户密码的各个期限
    • -d LAST_DAY:只更改用户的
    • -E –expiredate EXPIRE_DATE
    • -I –inactive INACTIVE
    • -m –mindays MIN_DAYS
    • -M –maxdays MAX_DAYS
    • -W –warndays WARN_DAYS
    • -l:查看指定用户密码的各个期限,chage -l USERNAME
    • 图片1
  • 示例:
    • chage -d 0 tom 下一次登录强制重设密码
    • chage -m 0 –M 42 –W 14 –I 7 tom
    • chage -E 2016-09-10 tom
  • chfn USERNAME:指定个人信息
  • finger USERNAME:查询用户描述信息
  • groupadd :创建组
    • 格式:groupadd [OPTION]… group_name
    • -g GID:指定GID,不指定默认是上一个组的GID+1
    • -r:创建系统组
  • groupmod:修改组
    • -g GID:指定组的ID
    • -n newgroupname:修改组的名字
  • groupdel:删除组(不能直接删除用户的主组)
    • groupdel groupname
  • gpasswd:给组添加密码,给用户添加附加组,组的密码在/etc/gshadow
    • 格式:gpasswd [OPTION] GROUP
    • -a USERNAME:给用户添加附加组,gpasswd -a USERNAME GROUPNAME
    • -d USERNAME:把用户的附加组删除,gpasswd -d USERNAME GROUPNAME
    • -A user1,user2,…: 设置有管理权限的用户列表

 

  • groupmems:更改和查看组成员(附加组):
    • 格式:groupmems [options] [action]
    • options:
      • -g, –group groupname 指定组 (只有root),指定组后再做以下的动作
    • action:
      • -a, –add username 指定用户加入组
      • -d, –delete username 从组中删除用户
      • -p, –purge 从组中清除所有成员
      • -l, –list 显示组成员列表
    • 例子:
      • 查看g2里有那些成员:groupmems -g g2 -l
      • 把tom加入g2:groupmems -g g2 -a tom
    • groups:查看用户所属组列表
      • 格式:groups [OPTION].[USERNAME]…
      • groups tom
    • su(switch user):切换用户
      • 格式:su [options…] [-] [user [args…]]
      • 切换用户的方式:
        • su UserName:非登录式切换,即不会读取目标用户的配置文件,不改变当前工作目录
        • su – UserName:登录式切换,会读取目标用户的配置文件,切换至家目录,完全切换
        • 选项:-l | –login
          • su -l UserName 相当于 su – UserName
        • 换个身份执行命令: su [-] UserName -c ‘COMMAND’
          • -c ‘COMMAND’:仅以指定用户的身份运行此处指定的命令,并不切换用户

 

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/95667

发表评论

登录后才能评论

This site uses Akismet to reduce spam. Learn how your comment data is processed.

联系我们

400-080-6560

在线咨询:点击这里给我发消息

邮件:1823388528@qq.com

工作时间:周一至周五,9:30-18:30,节假日同时也值班