• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
珂儿吖
博客园    首页    新随笔    联系   管理    订阅  订阅
浅谈用户、组之管理指令
用户和组 四大配置文件 useradd usermod userdel ID su groupadd groupmod groupdel groupmems

  今天呢,我们来聊一聊关于用户和组的管理指令。

一、用户和组的概念

  对于我们的计算机而言,它是不记录名字的,只记录数字,所以,就给每一个用户排了编号,这个编号我们就称之为用户ID。大家都知道,linux系统下,拥有最高权限的用户就是root(超级管理员)了,所以root(超级管理员)的ID就是0,排在了最前面,以彰显它的地位。在我们的linux centos7系统中,系统用户(进程)的ID号是1-999,普通用户的ID号是从1000开始的,在我们创建用户时,系统会自动分配一个ID号,当然我们也可以自己指定,至于如何指定,在下文中小编会给大家介绍的。

  关于组,组就是把若干个用户放在其中,这样一来,就更加方便我们对成员的管理,比如:把公司里一个部门的成员放在一个组里,直接把权限设置到组,这样,这个部门的人都可以访问到他们需要访问的文件,会比一个一个设置快捷方便很多。

二、用户和组的主要配置文件

用户和组的配置文件有很多,主要的文件就是下面的这四个:

1、/etc/passwd:该文件中存储的是用户及其属性信息,包括名称、UID、主组ID等等。

2、/etc/group:顾名思义,这个文件中存储的就是组及其属性信息啦。

3、/etc/shadow:该文件存储的是用户密码及其相关属性。

4、/etc/gshadow:该文件存储的是组密码及其相关属性。

每个文件的具体内容和用法稍后我们也会提到。

三、四大主要文件的格式

1、/etc/passwd

  在linux系统中,想要了解一个文件最简单的方法就是用man啦。

  

  上图就是man出来的结果,红色方块圈出来的就是格式信息啦~我们用cat查看一下/etc/passwd的具体信息,下图就是root具体信息的截图。

  

  图中可以看出,每一部分内容是由":"分隔开来的,每一部分的意思就是上一张图中用红色方块框起来的部分,分别如下:

  登录用户名:密码:UID:GID:用户全名或注解:用户家目录:默认的登陆shell。

2、/etc/group

  同理,我们用man查看一下:

  

  同样的,我们来看一下具体的显示:

  

  分别如下:组名:密码:GID号:组成员列表

在这里,需要说明的是:组成员列表显示的是将该组作为辅助组的成员列表。(很重要很重要很重要!!!)那么问题来了,如果我们将组成员列表中的某用户主组更改为这个组,还会显示吗?我们就用gentoo这个用户来试一下:

              

  从图中,我们可以看出,当成员先把改组当做辅助组,再转成主要组时,显示内容是不变的~

3、/etc/shadow

  我们来man一下该指令:

  

  接下来我们看一下root用户的具体信息:

  

  每一块的具体说明,在上一张图中已经标示过了。

  在这里,我们要介绍一个命令——chage

  Chage -l username显示帐户的密码信息

    -d 指定密码的上次修改时间(yyyy-mm-dd)

     -d 0 则强制用户下次登录时必须修改密码

     -E 指定账户的过期时间

     -I 密码过期之后多少天帐户过期

     -m 设置最小存活时间

        -M 设置最大存活时间

     -W 设置密码过期前的提醒时间

  chage username交互式修改用户的密码策略

  可能有人会问,什么是交互式修改用户的密码呢?下面我们就来演示一下:

  

  当我们输入chage weichen指令后,就会依次弹出图中信息,我们挨个填一下就好。这样是不是很方便呢~修改过后我们来查询一下weichen的信息:

  

  图中我们可以看出,已经按照我们设定的修改过啦~

4、/etc/gshadow

  Gshadow一共显示四部分信息,同样以root为例:

  

  分别为:组名:组密码位:管理员:组成员

  一样的,该处显示的组成员也是将该组作为辅助组的成员列表。

  上图中我们可以看出,组密码位和管理员都是空的,那么如何设置呢?

  设置组密码: gpasswd groupname

  关于管理员,我们要说的命令会详细一些:

  任命管理员 gpasswd -A xiaoqiao,luren admin

  撤消所有管理员 gpasswd -A "" admin

  gpasswd -a libai admin往组中增加用户

  gpasswd -d libai admin将用户从组中删除

  gpasswd -r admin删除组密码

  gpasswd -R admin限制非辅助组用户可以通过newgrp admin获取主组权限。当前密码被删除替换为!

  gpasswd -M redhat,libai admin设置辅助组的成员列表。

  重点来了!管理员只能由root来任命或者撤销,可以同时有多名一起,中间用","隔开。身为管理员,当然有不一样的权力啦:管理员可以修改组密码,同时也可以将用户从该组(辅助组)当中添加或者删除!

四、用户和组的管理命令

  千呼万唤使出来,我们终于说到了最重要的部分。

1、用户管理命令:

(1)用户创建之useradd

  useradd

  -u uid username 创建用户时指定uid(如不指定则Centos:500-60000, Centos7: 1000-60000)

  -o -u uid username 创建用户时指定uid(可以与已存在用户的uid相同)

  -g groupname username 创建用户时指定主组为某个已存在的组。(将不会再创建与用户同名的组)

  -c ... username 创建用户时指定描述信息。相当于chfn ... username

  -d path username 指定用户的家目录(确保指定的家目录所在的上级目录要存在,且家目录本身不能存在)

  -s /sbin/nologin username指定用户的默认shell

  -G group1[,group2] username指定用户的辅助组

  -N username 设置用户的主要组为默认组(users,uid=100)

  -r username 创建系统用户

  -p 密码  创建用户时设置密码

(2)用户属性修改之usermod

  usermod

  -u newuid username         修改用户的UID

  -o -u newuid username 修改用户的uid(可以与已存在用户的uid相同)                        

  -aG 加组名,可以追加辅助组而不用覆盖之前的组

  -G "" username 或 usermod -G primarygroup username 清空用户所有的辅助组

  -g groupname username 修改用户的主组

  -s /sbin/nologin username修改用户的默认shell

  -c ... username 修改用户时指定描述信息。相当于chfn ... username

  -d /.../path username 修改用户的家目录(不会创建,只修改/etc/passwd当中的家目录信息)

  -m -d /.../path username修改用户的家目录信息,并将家目录移动到目的目录并改名。

  -l newname oldname 修改用户名

  -L 给用户/etc/shadow中的密码位加!使用户被锁定

  -U 把!拿掉。

  -e yyyy-mm-dd 设置一个帐户过期时间

  -f days 指定密码过期之后多少天帐户过期

(3)删除用户之userdel

  Userdel的用法很简单,后面加上用户名即可。需要说明的一点是,如果你想在删除用户的时候,连同他的家目录和邮件等信息一同删除,则需要加上-r,如图所示:

  

  这样过就可以把用户李白的所有信息都删除了。

(4)查看用户信息之ID

id username 查看每一用户的信息

id –u 查看当前登录用户的UID

id –un 查看当前登录用户的用户名

id –g 查看当前登录用户的GID

id –gn 查看当前登录用户的主组名字

(5)切换用户之su

su (switch user)

su username 非登录式切换,即不会读取目标用户的配置文件,不改变当前工作目录

su - username 登录式切换,会读取目标用户的配置文件,切换至家目录,完全切换

-c 'command' 以用户的身份执行命令而不登录

2、组管理命令

(1)创建组之groupadd

groupadd -g gid groupname 创建指定gid的组

 -r groupname 创建系统组

(2)修改组属性之groupmod

groupmod

-n newgrpname oldgrpname 修改组名

-g newgid groupname 修改gid

(3)删除组之groupdel

groupdel groupname 删除组

(4)更改及查看组成员之groupmems

groupmems -g admin -a libai (仅能一次加一个用户到组中)

groupmems -g admin -d libai 将指定成员从组中删除

groupmems -g admin -l 列出指定组的成员列表(辅助组)

groupmems -g admin -p 清空指定组的所有成员(辅助组)。

  

  

  

  

  以上,就是我对用户和组管理的小结,如有不足之处,还请大家多多指教诺~

作者:珂儿吖

出处:http://www.cnblogs.com/keerya/

本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
大家写文都不容易,希望尊重劳动成果哟~

posted on 2017-07-22 14:36  珂儿吖  阅读(504)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3