LInux用户和组管理详解

一、用户和组的概念

Linux系统是多任务、多用户的分时操作系统。用户要使用系统资源,需要向管理员验证身份,由管理员进行认证和授权,并对用户的行为进行追踪和审计,以保障系统资源的合理分配以及系统的安全。

要达到账号管理的目的,需要对用户和用户组进行管理。下面分别来介绍用户管理和用户组管理。

每个用户都有唯一的一个编号来标识,这个标识号叫Uid,每个用户至少属于一个用户组,用户组使用Gid来进行标识

Linux用户信息按Username/ UID分两类:

       管理员:root,0。管理员具有系统的超级权限,可以进行绝大多数的系统操作。有“管理员即上帝”的说法。所以,在使用管理员进行操作时,对于可能造成系统破坏的操作应加倍小心。

       普通用户:Uid范围是1-65535,普通用户又可以划分为系统用户和登录用户。

            系统用户对守护进程获取资源进行权限分配。

            登录用户采用交互式登录方式登录系统。

            在CentOS6和CentOS7上具体的的划分又有所区别

                     CentOS6:

                            系统用户:1-499

                            登录用户:500+

                     CentOS7:

                            系统用户:1-999

                            登录用户:1000+

Linux组的划分:Groupname/GID

       组的划分与用户的划分相对应。

       管理员组:root,0

       普通组:

              系统组:1-499(centos6);1-999(centos7)

              普通组:500+(centos6);1000+(centos7)

组对系统用户来说,又可以划分问用户的基本组和附加组。用户必须属于一个且只能有一个基本组,组名同用户名。一个用户可以属于0个或多个附加组。

 二、用户和组的配置文件详解

Linux用户的主要配置文件有/etc/passwd、/etc/shadow,其中

/etc/passwd  存放用户的用户名及其属性信息(包含uid、基本组id等)

/etc/shadow  存放用户密码及其相关属性

下面来解释一下/etc/passwd文件的格式

blob.png

每行为一个用户的信息,用“:”作分割,分别对应

root        x                   0        0            root             /root           /bin/bash

用户名  密码信息       UID    GID     用户描述    用户家目录    用户登录时的默认shell

        为什么密码信息显示为x呢,因为所有用户都可以访问/etc/passwd文件,这是很不安全的,所以,密码另存在/etc/shadow文件中

/etc/shadow文件的格式:

blob.png

同样也是使用”:”做分隔符

  bin         *             15980      0              99999                         7               第七列          第八列

用户名  用户密码  密码最近  密码最小    密码最大   密码过期     密码锁定  账号过期时间    账号过期             

                           修改时间  修改时间    修改时间   提醒时间        时间                                 时间

第七列和第八列因为没有设置,所以没有显示

 解释:

用户密码:      经加密算法加密后的密文

密码最近修改时间:从1970年1月1日起到密码最近一次被更改的时间

密码最小修改时间: 密码再过几天可以被变更( 0表示随时可被变更)

密码最大修改时间:密码再过几天必须被变更( 99999表示永不过期)

密码过期提醒时间:密码过期前几天系统提醒用户(默认为一周)

密码锁定时间:密码过期几天后帐号会被锁定

账号过期时间:从1970年1月1日算起,多少天后帐号失效。

用图表来表示:

blob.png

 

组的相关信息保存在/etc/group和/etc/gshadow文件中,来看看两个文件的结构:

查看/etc/group

blob.png

从左至右分别对应:组名、组密码(通常不设定)、组id(GID)、组成员列表

 

查看/etc/shadow

blob.png

从左至右分别对应:组名、组密码、组管理员列表、以本组问附加组的成员列表

 

三、用户管理

       创建用户、管理用户、删除用户

1、创建用户:使用useradd命令 

useradd  [options]  username

常用选项

-u UID: 指定用户UID

-o 配合-u 选项,不检查UID的唯一性。一般来说,用户名和UID是一一对应的。在创建用户时如果为用户指定已使用的UID,会报错。

例:12346UID已使用,

blob.png

-g GID:指明用户所属基本组,可为组名,也可以GID

-c "COMMENT":用户的注释信息

-d HOME_DIR: 以指定的路径(不存在)为家目录

-s SHELL: 指明用户的默认shell程序;可用列表在/etc/shells文件中

-G GROUP1[,GROUP2,…]:为用户指明附加组,组必须事先存在

-N  不创建私用组做主组,使用users组做主组

-r: 创建系统用户 

示例:创建用户hadoop,附加组为bin和root,默认shell为/bin/csh,注释信息为”Hadoop,I’m coming "

blob.png

注:多个附加组以”,”逗号分隔

2、查看用户相关信息:

       id  [options]  usename

              -u UID:查看用户的UID

              -g GID:查看用户的GID

              -G Groups:查看的所有组信息,以GID的形式展现

3、设定密码:管理员可为所有设定密码,普通用户只能为自己设定密码

       passwd

       passwd  [OPTIONS]  UserName

 

4、管理用户

创建用户之后想修改用户的配置,使用usermod命令

usermod  [OPTION]  username

-u UID: 指定新UID

-g GID: 指定新基本组

-G GROUP1[,GROUP2,…[,GROUPN]]]:新附加组,原来的附加组将会被覆盖;若保留原有,则要同时使用-a选项,表示append(追加);

-s SHELL:新的默认SHELL;

-c 'COMMENT':新的注释信息;

-d HOME: 新家目录不会自动创建,原家目录中的文件不会同时移动至新的家目录;若要创建新家目录并移动原家数据,同时使用-m选项

-l login_name: 新的名字;

-L: lock指定用户,在/etc/shadow 密码栏的增加 !;此时用户将不可登录系统

-U: unlock指定用户,将 /etc/shadow 密码栏的 ! 拿掉,即解锁

-e YYYY-MM-DD: 指明用户账号过期日期

 

5、删除用户:

       userdel 命令

       userdel  [OPTION]…  username

              -r 删除用户及其家目录

四、组管理:

       创建、修改、删除

1、创建组

groupadd  [OPTION]…  group_name

       -g GID: 指明GID号

-r: 创建系统组

2、查看组成员或增加、删除组成员

groups  [OPTION]. [USERNAME]… 查看用户所属组列表

groupmems  [options]  [action] 查看或增加、删除组成员

options:

-g, –group groupname 更改为指定组 (只有root)

Actions:

-a, –add username 指定用户加入组

-d, –delete username 从组中删除用户

-p, –purge 从组中清除所有成员

-l, –list 显示组成员列表

例:

       删除bin组里面的成员wobushikaqiusha

blob.png

3、组属性修改: groupmod

groupmod [OPTION]… group

-n group_name: 新名字

-g GID: 新的GID;

4、组删除: groupdel

groupdel GROU

原创文章,作者:M20-1钟明波,如若转载,请注明出处:http://www.178linux.com/27155

(0)
M20-1钟明波M20-1钟明波
上一篇 2016-08-02
下一篇 2016-08-02

相关推荐

  • 文本处理、正则表达式、cut、grep、egrep、fgrep

    文本处理、正则表达式、cut、grep、egrep、fgrep Linux中文本处理工具最常用的就是文本处理三剑客grep、sed、awk再配合正则表达式,可以实现足够多的文本处理功能。工具的强大之处是因为使用它的人,如何才能发挥文本处理工具的作用呢?答案就是正则表达式,其实正则表达式,只是一种思想,一种表示方法,只要我们使用的工具支持表示这种思想那么这个工…

    Linux干货 2016-08-07
  • Java构造时成员初始化的陷阱

    让我们先来看两个类:Base和Derived类。注意其中的whenAmISet成员变量,和方法preProcess() public class Base {     Base() {         preP…

    Linux干货 2015-04-03
  • 文本编辑器sed和vim的用法集锦

    8月8号,主要学习内容为: 一、文本处理工具sed 二、vim编辑器 一、文本处理工具sed 1)简介    sed是一种流编辑器,它一次处理一行内容。处理时,把 当前处理的行存储在临时缓冲区中,称为“模式空间”( pattern space),接着用sed命令处理缓冲区中的内容 ,处理完成后,把缓冲区的内容送往屏幕。接着处理下…

    Linux干货 2016-08-12
  • 第九周作业

    1. 写一个脚本,判断当前系统上所有用户的shell是否为可登录shell(即用户的shell不是/sbin/nologin);分别这两类用户的个数;通过字符串比较来实现; # awk -F: ‘{if($7!=”/sbin/nologin”) {printf “Logined user %s\n”…

    Linux干货 2017-03-01
  • linux初步

    1、Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。 文件管理命令 文件管理有哪些命令:ls, cd, pwd, mkdir, rmdir, cp, rm, mv, touch, cat, more, less, head, tail等,下面我们就来详细的说一下(只说常用的,不是命令全部) (1). ls 命令 1 2 3 4 5 6…

    Linux干货 2017-01-22