用户\组的管理

1、用户的标识符:UID与GID

  每个登录的用户都至少会识别两个ID,那么就是UID与GID(username与groupneme)当我们要显示文件属性时,系统会根据/etc/passwd与/etc/group的内容,找到id对应的账号与组名再显示出来。

/etc/passwd文件结构

  他的每一行都代表一个账号,并且里面许多账号都是系统正常运行所必要的称之为系统账号,切不可随意删除。

用户\组的管理1.png

  我们可以看出,每一行都用:分隔开,每一个行都有七个字段分别是:

  1、账号名称

    就是创建账号的名字用来对应UID

  2、密码

    这里存放的是账号密码,但是由于他能被读取会导致数据窃取,所以后来密码都被加密并放置在/etc/shadow中。

  3、UID

用户\组的管理2.png

  4、GID

    这个跟UID差不多,它用来规定组名与GID的对应关系。

  5、用户信息说明

    相当备注,用来解释账号的作用。

  6、主文件夹

   这里就是用户的家目录,比如root的主文件夹在/root中,所以当root登录后会自动跳转至/root目录里。

  7、Shell

   Shell有很多类型,bush只是其中的其中,在这里我们可以看见对应用户所使用的shell类型。

2、密码

  很多的程序运行跟权限有关,而权限又跟UID/GID有关,早期的密码存放在 /etc/passwd中,所以很容易导致信息泄露,所以大牛们就把密码加密搬家到/etc/shadow中。

用户\组的管理3.png

  如上面一样每一行都用:分隔开,每一个行有九个字段!

    1、账号名称

  密码是要与账号对应的,所以第一个字段就是账号的名字。

    2、密码

  这个字段就是经过加密的密码了

    加密机制:

    加密:明文–> 密文

    解密:密文–> 明文

    单向加密:哈希算法,原文不同,密文必不同 相同算法定长输出,获得密文不可逆推出原始数据

    雪崩效应:初始条件的微小改变,引起结果的巨大改变

    md5: message digest, 128bits

    sha1: secure hash algorithm, 160bits

    sha224: 224bits

    sha256: 256bits

    sha384: 384bits

    sha512: 512bits

    更改加密算法 authconfig –passalgo=sha256 –update

    3、最近密码改动日期

  这个字段记录了密码改动的日期,在linux中,日期时间是以1970年1月1日作为1而累加的。

    4、密码不可被更改的天数

  它表示这个密码被更改后需要多久才可以继续更改密码。

    5、密码需要重新更改的天数

  它表示密码更改之后,多少天后需要再次更改密码,你必须要在这个天数内更改你的用户密码。

    6、密码需要更改期限前的警告天数。

  它是相对于5的,表示需要再次更改密码期限期快到时,在期限期前多少天提醒用户更改密码。

    7、密码过期后的账号宽限日期

  它也是相对于5的,表示密码依旧没有被更改,还能够使用多少天,过了之后系统会强制要求你必须重新设置密码才能够登录继续使用账号。

    8、账号失效日期

  这个日期也需要从1970年来设置,表示这个账号在规定能的日期才能使用。

    9、保留

  最后保留,方便以后加入新功能。

  3、用户组

  Linux组的类别:

    用户的主要组(主组): 用户必须属于一个且只有一个主组 组名同用户名,且仅包含一个用户:

    私有组 用户的附加组(辅助组): 一个用户可以属于零个或多个辅助组。

用户\组的管理4.png

继续介绍这四个字段!

  1、用户组名称

    就是组的名字

  2、用户组密码

    同样移到了/etc/gshadow

  3、GID

    就是用户组的id

  4、这个用户组支持的账号名称

    一个账号可以加入多个组,账号想加入用户组时,在这个字段里添加就好了。

  4、相关用法概念与命令

  介绍完了这些相信对linux用户、用户组也有了一定的了解,但是我们不可能每次添加用户,用户组都去改配置文件,这样不仅出错率高,而且危险。所以接下来,就介绍相关的命令使用方法。

直接更改配置文件检查命令

    vipw和vigr

    vipw=vi /etc/passwd(他会检查格式是否符合要求)

    vigr=vi /etc/group

    pwck和grpck

    pwck (passwd check)检查用户

    grpck (group check)检查组

  用户管理命令

  useradd、usermod、userdel

  组帐号维护命令

  groupadd、groupmod、groupdel

 1、用户相关命令

创建用户

  useradd [options] LOGIN

    -u UID: [UID_MIN, UID_MAX]定义在/etc/login.defs

    -o 配合-u 选项,不检查UID的唯一性

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

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

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

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

    -G GROUP1[,GROUP2,…]:为用户指明附加组,组必须事先存 在 -N 不创建私用组做主组,使用users组做主组

    -r: 创建系统用户 CentOS 6: ID<500,CentOS 7: ID<1000

配置文件

    默认值设定:/etc/default/useradd文件中

    显示或更改默认设置: useradd -D useradd –D -s SHELL

    /etc/default/useradd(保存了创建用户时如果不设置属性的默认项)

    /etc/skel/*(家目录的默认文件)

删除用户

    userdel [OPTION]… login

    -r: 删除用户家目录;

用户属性修改

   usermod [OPTION] login

     -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: 指明用户账号过期日期;

     -f INACTIVE: 设定非活动期限;

更改密码

  passwd [OPTIONS] UserName: 修改指定用户的密码,仅 root用户权限

  passwd: 修改自己的密码;

  常用选项:

    -l:锁定指定用户

    -u:解锁指定用户

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

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

    -x maxdays:最大使用期限

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

    -i inactivedays:非活动期限;

    –stdin:从标准输入接收用户密码; echo "PASSWORD" |

    passwd –stdin USERNAME

更改密码配置

  chage [OPTION]… LOGIN

  选项:

    -d LAST_DAY

    -E, –expiredate EXPIRE_DATE

    -I, –inactive INACTIVE

    -m, –mindays MIN_DAYS

    -M, –maxdays MAX_DAYS

    -W, –warndays WARN_DAYS

    –l,显示密码策略

下一次登录强制重设密码 chage -d 0 tom

  批量创建用户。

    创建一个文件,以用户配置文件中格式写新文件。

    然后使用newusers passwd格式文件 批量创建用户

  批量创建密码

    创建一个文件,以密码配置文件中格式写新文件。

    chpasswd 批量修改用户口令

  切换用户命令

  su [options…] [-] [user [args…]]

  切换用户的方式:

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

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

    root su至其他用户无须密码;非root用户切换时需要密码

  换身份执行命令:

    su [-] UserName -c 'COMMAND'

  选项:-l –login:

    su -l UserName 相当于 su – UserName

 2、组相关命令

  组创建/删除

   创建

    groupadd [OPTION]… group_name

        -g GID: 指明GID号;

        -r: 创建系统组;

   删除

    groupdel groupdel GROUP

   组属性修改:

     groupmod [OPTION]… group

        -n group_name: 新名字

        -g GID: 新的GID;

   组密码

     gpasswd [OPTION] GROUP

        -a user: 将user添加至指定组中;

        -d user: 从指定组中移除用户user

        -A user1,user2,…: 设置有管理权限的用户列表

     newgrp命令:临时切换基本组; 如果用户本不属于此组,则需要组密码

    更改和查看组成员

     groupmems [options] [action] options:

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

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

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

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

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

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

原创文章,作者:502795641,如若转载,请注明出处:http://www.178linux.com/28741

(0)
502795641502795641
上一篇 2016-08-04
下一篇 2016-08-04

相关推荐

  • netstat命令和ss命令

    详解netstat命令和ss命令

    Linux干货 2018-01-01
  • Linux-Centos7编译内核

    编译内核     前提:         (1)准备好开发环境         (2) 获取目标主机上硬件设备的相关信息         (3) 获取目标主机系统功能的相关信息       …

    2017-07-16
  • 自制linux和编译内核

    自制linux:(1)  分区并创建文件系统  fdisk /dev/sdb分两个必要的分区  /dev/sdb1 对应/boot /dev/sdb2 对应根  /mkfs.ext4 /dev/sdb1mkfs.ext4 /dev/sdb2  挂载bootmkdir /mnt/boot 子目录必须为bootm…

    Linux干货 2017-04-02
  • 编译安装LAMP及分离式LAMP平台构建

    前言 LAMP网站架构是目前国际流行的Web框架,该框架包括:Linux操作系统,Apache网站服务器,MySQL数据库,Perl、PHP或者Python编程语言,所有组成产品均是开源软件,是国际上成熟的架构框架,很多流行的商业应用都是采取这个架构,和Java/J2EE架构相比,LAMP具有Web资源丰富、轻量、快速开发等特点,与微软的.NET架构相比,L…

    Linux干货 2015-04-20
  • bash脚本函数和数组

        函数function是由若干条shell命令组成的语句块,实现代码重用和模块化编程。它与shell程序形式上是相似的,不同的是它不是一个单独的进程,不能独立运行,而是shell程序的一部分。    函数和shell程序比较相似,区别在于:  &nbsp…

    Linux干货 2016-08-24
  • 八.Linux博客-2016年8月8日sed、vim

    格式说明: 操作 概念 命令 说明及举例 八.sed、vim sed 文本编辑工具 行编辑器,每次取出一行在内存里处理,处理完成后屏幕打印。完成后再取出一行放到内存里处理,覆盖原来内存中的行,循环。。 sed -n '3d' f1 把文件f1中的第三行删掉并不在屏幕上显示 sed -n&n…

    Linux干货 2016-08-24

评论列表(1条)

  • 马哥教育
    马哥教育 2016-08-04 15:22

    用户和组管理相关的命令都已经总结好了,如果能相应的有些示例说明,就更好了哦。