用户和组管理

目录

1.用户和用户组介绍

2.用户管理

3.组管理

4.用户和组相关文件操作

1.用户和组介绍

在linux中,用户分为管理员和普通用户;管理员为root,普通用户又分为系统用户和登录用户;系统用户是对linux的守护进程进行资源分配的用户,而登录用户就是我们平常登录linux所使用的,都是登录用户自己定义的名字。

实际上,在linux系统中,系统所识别你是什么用户可不是依靠所谓的用户名来实现的,而是依靠UID来实现的,所谓的用户名是为了让我们更方便记忆。UID就是linux系统识别你是什么类型的用户的唯一标识符。root的用户的uid=0,普通用户的uid为1-65535;其中,在CentOS6系统里系统用户为为1-499,登录用户为500以后;而在centos7上,系统用户是1-999,登录用户为1000以后。

组的情况和用户基本一样,也有管理员组和普通组,系统组和登录用户组,且系统识别组也是通过组id的,称为GID,GID的分配方法也是和用户一样。但也有些不同地方,组名和用户名相同且仅仅保护用户自身的组称为私有组;一个用户可以附加到其他组内,这个组称为这个用户的附加组,也就是说,一个用户可以属于零个或多个组。

2.用户管理命令

与用户管理的相关的命令有以下这些,这里会选择常用的选项来详细说下:

useradd;usermod;userdel;id;passwd;chage;chfn;chsh;finger;chpasswd;newusers

1.useradd

useradd:用于创建新用户或更新默认的新用户信息

用法:useradd [选项] username

-u UID:指明新用户的ID

-g GID:指明用户所属主组,可以使用组名,也可以使用GID。

-o:允许使用相同的uid 来创建用户,常与-u配合

-d home_dir:用于所指定的路径为家目录

-c comment:用于指明用户的注释信息

-s shell:指明用户默认shell程序

-G group1[,group2, ...]:指明用户附加组,组必要事先存在

-r:创建系统用户,系统账号一般用于服务。

-N:不创建以用户名命名的私有组,而是用users组作为主组

-D [s,b,g]:输出或更改添加用户时的默认设置

对于新创建的用户,一个用户的默认配置是根据/etc/default/useradd文件来配置的,选项-D就是用来修改这个文件的,你也可以直接修改这个文件里的内容。

上面提到选项-u和-g是决定用户和组id的,你也可以去文件/etc/login.defs中来修改uid和gid可选范围。当然/etc/login.defs文件中还有些其他如邮件地址等配置,你也可以根据需求进行修改。

创建一个新的用户,一般是更改4个文件,分别:是/etc/passwd用于存放用户信息;/etc/shadow用于存放密码信息;/home用于存放用户家目录文件;/var/spool/mail用于存放用户的邮件。

2.usermod

usermod:用于修改用户属性信息

用法:usermod [选项] username

-u UID:指定用户的新的UID

-g GID:指定用户所属新的主组,可以使用组名,也可以使用GID

-G group1[,group2, ...]:指定用户新附加组,组必要事先存在。

-s shell:指定用户新的默认shell程序

-c comment:指定用户的新的注释信息

-d home_dir:指定的路径为新家目录

-l loginname:指定用户登录时新的用户名

-L:锁定用户

-U:解锁被锁定的用户,与-L相反

-e YY-MM-DD:指定用户账号过期日期

-f inactive:设定非活动期限

使用选项-G时需要注意,它会把原来的组给覆盖掉,但你也可以保留原有的组,就需要用-a配合。

使用-d时,若要创建新的家目录并移动原有家数据,则要配合使用-m选项。usermod -c用来修改或添加注释信息,和后面提到的chfn作用一样。usermod -e用来指定用户账号过期日期的,和后面提到的chage作用一样。

对于分别用来锁定和解锁的-L和 -U,实际上是对/etc/shadow文件的修改,锁定是在文件中加密码的那一栏增加了个“!”,解锁就是去掉了那个“!”。

3.userdel

userdel:用于删除用户账号和相关用户相关文件

用法:userdel [选项] username

-r:移除用户家目录和邮件

-f:强制执行删除

删除用户时需要注意一点,就是正在使用的用户是不能删除的,强制执行删除的话会有各种问题,所以建议不要使用强制删除,并且强制删除不一定能够删除掉。

4.id

id:查看用户相关ID信息

用法:id [选项] [username]

-G:显示所有组的id

-g:仅显示有效的组id

-u:仅显示有效的用户id

-n:显示名称,需配合ugG

5.passwd

passwd:设置用户密码

用法:passwd [选项] username

-l:锁定用户

-u:解锁被锁定的用户,与-l相反

-e:强制用户下次登录时修改密码

-n mindays:指定最短使用期限

-x maxdays:指定最长使用期限

-w warndays:指定提前多少天开始警告

-i inactivedays:指定非活动期限

--stdin:从标准输入接收用户密码

选项-l实际上是在/etc/passwd中有关密码那一栏上增加了两个“!!”,解锁的-u选项就是把增加的“!!”给去掉。大家可能发现usermod中锁定和解锁和passwd 的不同,是否可以用usermod来解开passwd命令的锁定,答案是可以的,passwd也可解开usermod的锁定,这样开来增加几个“!”,好像没什么区别。

选项--stdin的用法一般是echo "Password|passwd -stdin Username。passwd -e的作用和chage -d 0`一样,可以相互代替。

6.chage

chage:修改用户密码满期信息

用法:chage [选项] username

-d lastday:设置期满最后时间

-E expiraday:设置期满日期

-I:设置期满后非活动日期

-l,--list:显示用户期满信息

-m:设置min_day

-M:设置max_day

-W:设置warn_day

一般来说,有关密码期满设置,都是设置一个固定配置,就不会再更改了。这个命令的作用就是用来修改/etc/shadow 文件中的配置的,你也可以直接修改这个文件,但不建议,用命令修改会更加保险。

7.chfn

chfn:修改个人用户注释信息

用法:chfn [选项] [username]

-f:更改用户全名

-o:修改office room number

-p:修改office phone number

-h:修改home phone number

chfn用来添加注释信息,作用和useradd -c以及usermod -c相同,但毕竟chfn是专门用来针对个人信息的,功能更加全面。这个命令是修改的是/etc/passwd文件。

8.chsh

chsh:更改用户登录shell

用法:chsh [选项] [username]

-s:指定登录shell

-l,--list:列出/etc/shells的shell内容

chsh指定shell与useradd -s和usermod -s有相同的作用,但还是那句话塑业有专攻,它也是修改的/etc/passwd文件。

9.finger

finger:查看用户信息

用法:finger [-lsmp] [username...] [user@host...]

[-lsmp]都是可以用的选项,man中解释太长了,这里就用例子看下:

10.newusers

newusers:批量创建用户

用法:newusers [选项] [文件]

-r:创建系统账号

[文件]:文件的格式是/etc/passwd的格式:pw_name:pw_passwd:pw_uid:pw_gid:pw_gecos:pw_dir:pw_shell

11.chpasswd

chpasswd:批量创建用户密码

用法 :cat 文件 |chpasswd

文件的格式:user_name:password,且每行一个用户密码。

上述命令中有些选项没有提到,这里只说了下经常用到的,对其他选项有兴趣的可以查看man帮助。

3.组管理

与组管理相关的命令如下,基本上和用户管理命令差不多,这里也是说下常用的选项内容:

groupadd、groupmod、groupdel、gpasswd、newgrp、goupmems、groups

1.groupadd

groupadd:创建新组

用法:groupadd [选项] group

-g GID:指明gid给新用户

-K KEY=VALUE:修改/etc/login.defs中的默认配置

-o:忽略gid的唯一性来创建组

-p password:给新用户添加密码

-r:创建系统账户

2.groupmod

groupmod:修改组的定义信息

用法:groupmod [选项] group

-g GID:修改为新的gid

-n groupname:修改为新的组名

-o:忽略gid的唯一性来修改组

-p password:修改组的密码

3.groupdel

groupdel:删除组

用法:groupdel [hR] group

4.gpasswd

gpasswd:管理/etc/group和/etc/gshadow

用法:gpasswd [选项] group

-a user:添加用户到组

-d user:从组中删除用户

-r:删除组的密码

-R:限制组中的用户

-M user ...:设置组中用户列表,也就是添加多个用到组

-A admin:设置组的管理员,组的管理员权限放在/etc/gshadow中

5.newgrp

newgrp:临时切换主组

用法:newgrp [-] group

切换组时,如果用户本不属于此组,则会需要密码

6.groupmems

groupmems:管理用户组成员,也就是附加组成员

用法:groupmems [选项] [操作]

[选项]:-g groupname:指定所要修改的除root用户组外的组名

[操作]:

-a username·:添加用户到组-d username:从组中删除用-p:从组中清除所有成员-l`:显示所有组成员

groupmems命令实际上也就是修改/etc/groups

7.groups

groups:显示组中用户,或存在一个用户的组

用法:groups [username]

上述命令可以看出其和用户管理命令很相似,实际上命令的执行都是通过修改配置文件来实现的,上述命令主要修改的是:/etc/group用来存放组的信息,也即就是组中用户的列表等;/etc/gshadow用来存放组的密码信息。

说到与用户和组相关的文件,那来看看有关对这些文件操作命令

4.用户和组相关文件操作

操作用户和组相关配置文件的命令有以下这些:

vipw、vigr、pwck、grpck、getent

1.vipw和vigr

vipw,vigr:用于编辑password,group,shadow-password和shadow-group文件

用法:vipw [选项] 、vigr [选项]

vipw编辑的是/etc/passwd文件,vigr编辑的是/etc/group文件。我这里虽说写了出来,但不建议大家用,毕竟是通过直接修改配置文件,文件间的相互关系会出现问题,即使你看起来编辑成功了,但可能出现各种问题,所以特别不建议大家用。

2.pwck和grpck

pwck,grpck:用于检查password文件和group文件的完整性。

用法:pwck [选项] [passwd [shadow] ],grpck [选项] [group [gshadow] ]

-q:仅报告错误

-r:仅显示错误和告警但不修改文件

-s:按照UID进行排序分类

可以看出来pwck是检查/etc/passwd和/etc/shadow文件的,grpck是检查/etc/group和/etc/gshadow文件的。

3.getent

getent:查看数据相关信息

用法:getent datebase [key...]

datebase包含shadow,passwd,group,gshadow...这是打开了相应的/etc/下的配置文件。

你可能发现有好多命令选项有相同的用法,这里就做个总结:

添加用户到组:

useadd -g 主组 -G 附加组... user (创建)

usermod -g mg -G ag... user (修改)

gpasswd -a user ag(添加)

gpasswd -M user... ag (设置)

gpasswd -A user mg (设置) (设置管理员用户)

goupmems -g 组 -a user (添加)

删除组中用户:

gpasswd -d user ag

goupmems -g 组 -d user

给组设置管理员:

gpasswd -A user 主组

指定个人信息:

useradd -c

usermod -c

chfn

指定shell:

useradd -s

usermod -s

chsh -s

以上就是我对用户和组管理的相关认识,这里就不再举例,大家可以多加尝试。有什么写的不对地方,欢迎提出,谢谢~

linux中查看用户组标识符,Linux用户和组管理相关推荐

  1. 请给出linux中查看系统已经登录用户的命令?

    w命令 第一行:当前系统运行了多久和系统负载 谁正在远程登录系统并且在干什么 1 [root@martin ~]# w 2 11:30:33 up 4 days, 18:10, 2 users, lo ...

  2. 在Linux中查看ftp状态,linux中ftp常见操作启动ftp状态,终止ftp会话

    Ftp: 查询ftp 状态:Service vsftpd status 设置目录权限:chmod 777 -R /home/wwwroot/www.xx.com ◆启动ftp会话 open命令用于打开 ...

  3. linux学成之路(四)中 linux用户与组管理

    目录 一.修改属性 一.-d (- -home-dir) 二.  -e  (- - expiredate) 三.  -f  (- - inactive) 四.  -g  (- - gid) 五.-G  ...

  4. Linux中查看jdk版本

    原文地址为: Linux中查看jdk版本 linux查看java jdk安装路径和设置环境变量 windows: set java_home:查看JDK安装路径 java -version:查看JDK ...

  5. Linux中查看socket进程状态

    Linux中查看socket进程状态 Linux中查看socket状态: cat /proc/net/sockstat #(这个是ipv4的) sockets: used 137 TCP: inuse ...

  6. linux学成之路(四)上 linux用户与组管理

    目录 一.什么是用户管理 二.用户概述 一.什么是用户 二.用户类型 三.模板目录 一.为什么称为模板目录 二.运维案例 四.查看历史命令 五.相关文件 六.用户操作 一. shell 二.usera ...

  7. linux学成之路(四) 下 用户和组管理

    目录 前言 一.组管理 一.什么是组 二.组的作用 1.权限管理 2.文件共享 3.简化管理 4.安全性 三.组的操作 1.添加  groupadd [选项] groupName 2. 修改  gro ...

  8. jbpm 和 drools_jBPM和Drools工作台中的用户和组管理

    jbpm 和 drools 介绍 本文讨论了一项新功能,该功能允许使用集成在jBPM和Drools Workbenches中的直观友好的用户界面来管理应用程序的用户和组. 用户和组管理 在安装,设置和 ...

  9. jBPM和Drools工作台中的用户和组管理

    介绍 本文讨论了一项新功能,该功能允许使用集成在jBPM和Drools Workbenches中的直观友好的用户界面来管理应用程序的用户和组. 用户和组管理 在安装,设置和使用此功能之前,本文讨论了一 ...

最新文章

  1. (C++)用upper_bound函数取代自己写的二分查找
  2. [ linq2db ] 使用LoadWith()对外键进行查询
  3. 图解Numpy的tile函数
  4. Linux学习:文件描述符表
  5. EBS DBA指南笔记(一)
  6. Excel催化剂回顾2019年产出(文章合集),展望2020年
  7. 给std::string增加format函数
  8. python正则表达式教程_Python中正则表达式的巧妙使用一文包你必掌握正则,
  9. C语言视频教程-谭浩强版-小甲鱼主讲—P21
  10. PDI(KETTLE)学习笔记
  11. 玩玩Linux云主机-安装MySQL ,The server quit without updating PID file,Linux chown 权限管理
  12. 街机模拟器 WinKawaks 及街机 ROM 下载
  13. H264的NAL单元详解
  14. 大家都是怎么写论文的
  15. 4G模块 EC03-DNC的常用AT指令操作及模块访问内网方法
  16. dat image 微信_微信电脑微信image文件夹下的dat文件怎么打开?
  17. 传奇私服搭建网站的几种方法
  18. 数据压缩作业1之:使用音频分析软件(Audacity)分析浊音、清音爆破音的时域及频域特性。
  19. STL之set map 和multiset multimap理解
  20. 1w存银行一年多少利息_100万存银行,一年利息有多少?

热门文章

  1. sql2008安装包_数据库SQL2008下载与安装图文详解
  2. android源码编译烧鸡,android4.0源码下载 编译 系统体验~图解
  3. TP5的目录常量和路径
  4. 转:PHP 获取今日、昨日、上周、本月的起始时间戳和结束时间戳的方法
  5. PHP中Header函数和PHP_AUTH_USER做用户验证
  6. c++指针引用导出文件
  7. java match正则不生效_[Java教程]正则表达式match()函数
  8. 玄元剑仙服务器列表为空,玄元剑仙3月11日维护更新公告
  9. oracle 多个实例互相切换实例
  10. 语言中能产生汉明窗吗_相声遇见“二次元”观众买账吗?