用户与组管理

如何成为linux用户?

    在linux系统中,要想从系统中获取资源、对系统进行管理和控制,就需要向系统申请一个账号,从而实现特定用途,当申请到账号后,要对它设置口令,这样用户账号就申请成功了,然后可以登陆系统,当用户登陆系统时,需要通过系统的认证,认证成功后才给予授权,在用户的使用过程中还会对用户进行审计。

为什么要设置用户组?


    是为了方便对不同类用户进行分组统一管理,例如:把一个公司的员工按职能的不同划分为不同的部门从而实现不同部门进行不同的管理方式是一个道理。

    

linux中的用户类别:

      管理员用户 root UID :0 又称为超级用户,拥有至高无上的权利,可以对linux系统进行任何操作,甚至可以删除系统。

      普通用户:系统用户 UID : 1-499(Centos6版本中),1-999(Centos7版本中)系统用户是维护特定的一些服务运行,对守                 护进程获取资源进行权限分配的账号

                登陆用户 UID :500-60000 (Centos6版本中),1000-60000(Centos7版本中)登陆用户就是可以登陆到系统                 中,完成一些权限内的操作,从而获取所须资源的用户。

linux是如何认识用户名的呢?

   其实系统是通过UID来标识一个用户的,当你输入用户名登陆时,其中进行了名称转换,把用户名转换为了linux能够识别的UID号,名称转换信息保存在/etc/passwd文件中


      UID:UID是每个用户身份标识,就像人的身份证一样

linux中的组类别:

      按用户类型分:

          管理员组:root GID :0

          普通用户组:系统用户组 GID : 1-499(Centos6版本中),1-999(Centos7版本中)

                      登陆用户组 GID :500-60000 (Centos6版本中),1000-60000(Centos7版本中)


       按所属的主从关系来分:

                  基本组

                  附加组

        按私有公有分:

             私有组:组名同用户名,并且只包含一个用户

             公共组:组内包含了多个用户

       GID :每个组的身份标识

       同样,GID也是linux认识这个组的标识,通过/etc/group文件中保存的信息进行组名与UID的解析


与用户相关的文件:

          /etc/passwd文件:保存着用户账号的信息

解释文件内容:

     第一列:登陆的用户名

     第二列:密码占位符

     第三列:UID

     第四列:GID(所在组的)

     第五列:注释描述信息

     第六列:用户家目录

     第七列:用户默认使用的shell

[root@myhost ~]# getent passwd zhangsan

zhangsan:x:501:501::/home/zhangsan:/bin/bash

      /etc/shadow:保存用户的密码信息

解释文件内容:

     第一列:登陆的用户名

     第二列:用户的密码(一般用sha512加密)

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

     第四列:密码的最小有效时间

     第五列:密码的最大有效时间(99999表示永不过期)

     第六列:密码过期前几天提醒

    第七列:密码的非活动期限

    第八列:从1970年1月1日起,多少天后账号失效


[root@myhost ~]# getent shadow zhangsan

zhangsan:$6$y5uABHzk$5RFHTYLHA4cL.WfSW2Gd4tjOoefwJ4DNrvLzE8.shDViZqBe/JcZbLoN672LqEnl48F484pxg/AWFPZhwWM.Y/:17018:0:30:7:5:17383:

与组相关的文件:


   /etc/group文件:保存组的信息

解释文件内容:

        第一列:组名称

        第二列:组密码占位符

        第三列:组的ID

        第四列:以当前组为附加组的用户列表

[root@myhost ~]# getent group mage

mage:x:504:lisi,wangwu,zhangsan

   /etc/gshadow文件:保存组的密码信息

解释文件内容:

         第一列:组名称

         第二列:组密码

         第三列:组管理员列表(组管理员可以更改组密码和族成员)

         第四列:以当前组为附加组的用户名列表(分隔符为逗号)

[root@myhost ~]# getent gshadow mage

mage:$6$5Blhu/UHz8UNGvz$9qj158ot4uvGDngNKUrzFyKB246zqSIK7Eo0JhKaUp1SubjI0of1NfGsRUVySB8xuG32hxwtayvlGG.pKWu1w1:lisi:lisi,wangwu,zhangsan



用户管理命令:           

      useradd命令: 创建用户

      格式: useradd  选项  用户名  

    

      常用选项:

             -u:指定UID

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

             -c:"描述信息"

             -d:指定家目录,指定的家目录可以不存在,但上层目录必须存在

             -g:指定基本组或基本组GID

             -G:指定附加组或GID

             -M:不创建家目录

             -r:创建系统用户

             -s:指定登陆的shell

             -D:查看useradd默认配置文件,可与其他选项陪和,对默认配置进行更改

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

   示例:          

           创建一个hehe用户,UID为3000 家目录为/testdir/hehe  附加组为root组     填写描述信息为 ni hao

QQ截图20160803174545.png

 

       usermod命令:修改用户的属性信息

     用法格式: usermod 选项  用户名

         选项:

               

             -u:修改UID

             -c:修改"描述信息"

             -d:修改家目录

             -g:修改基本组

             -G:修改附加组,原来的附加组会被覆盖

             -a:与-G一同使用,用于为用户追加新的附加组

             -m:只能与-d选项一同使用,用于将原来的目录移动为新的家目录

             -s:修改登陆的shell

             -l:修改登录名

             -e:设置用户账号的失效时间,XXXX-XX-XX

             -L:锁定用户账号密码,禁止登陆(在密码字符前加!)

                -U:解锁用户密码          

  示例:修改hehe用户的UID为5000 再把hehe用户添加附加组bin 设置用户账号在2016年10月1日失效           

[root@localhost ~]# usermod -u 5000 -aG bin -e 2016-10-01 hehe

[root@localhost ~]# tail -1 /etc/passwd

hehe:x:5000:3000:nihao:/testdir/hehe:/bin/bash

[root@localhost ~]# groups hehe

hehe : hehe root bin

[root@localhost ~]# tail -1 /etc/shadow

hehe:!!:17017:0:99999:7::17075:

 

passwd命令:用于设置用户密码,锁定和解锁用户密码

 格式:passwd 用户名

选项:

    -d:清除用户密码,使之可无密码登录

    -l:锁定用户密码

    -u:解锁用户密码

    -S:查看用户密码锁定情况

    -i:非活动期限

    –stdin :从标准输入接收用户密码(在脚本的时候用的比较多)

[root@localhost ~]# passwd hehe

Changing password for user hehe.

New password: 

BAD PASSWORD: it is WAY too short

BAD PASSWORD: is too simple

Retype new password: 

passwd: all authentication tokens updated successfully.

[root@localhost ~]# passwd -l hehe

Locking password for user hehe.

passwd: Success

[root@localhost ~]# passwd -S hehe

hehe LK 2016-08-04 0 99999 7 -1 (Password locked.)

[root@localhost ~]# passwd -u hehe

Unlocking password for user hehe.

passwd: Success

[root@localhost ~]# passwd -S hehe

hehe PS 2016-08-04 0 99999 7 -1 (Password set, SHA512 crypt.

userdel 命令:删除用户

      格式: userdel [选项] 用户名

选项:   -r:删除用户同时删除家目录

[root@localhost ~]# tail -2 /etc/passwd  

sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin

hehe:x:5000:3000:nihao:/testdir/hehe:/bin/bash

[root@localhost ~]# userdel -r hehe

[root@localhost ~]# tail -2 /etc/passwd

postfix:x:89:89::/var/spool/postfix:/sbin/nologin

sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin

组管理命令: 

     groupadd命令:添加新组

  格式:groupadd [选项] 组名

  选项:

    -g:指定GID,默认是上一个组的GID+1

    -r:创建系统用户    

    

示例:创建一个组,组名为zhang GID为5000;

[root@myhost ~]# groupadd -g 5000 zhang

[root@myhost ~]# tail -1 /etc/group

zhang:x:5000:

     groupmod命令:修改组信息

 格式: groupmod [选项] 组名

 选项:

    -g:修改组的GID

    -n:修改组名

示例:把zhang组的GID改为3000,组名改为lisi

 

[root@myhost ~]# groupmod -g 3000 -n lisi zhang

[root@myhost ~]# tail -1 /etc/group

lisi:x:3000:

   

    groupdel命令:删除组

 格式: groupdel 组名

   gpasswd命令:向组中添加、删除用户,给组设置密码

 

 格式1:gpasswd [选项] 用户名  组名  \\添加、删除组成员

 选项:

    -a:向组中添加用户

    -d:把组中的用户移除出去

    -M:刷新组列表(意思是可同是添加多个用户,但原来组里的用户将被移除)

示例:

[root@myhost ~]# useradd zhangsan

[root@myhost ~]# useradd lisi

[root@myhost ~]# useradd wangwu

[root@myhost ~]# groupadd mage

[root@myhost ~]# gpasswd -a lisi mage

Adding user lisi to group mage

[root@myhost ~]# groupmems -l -g mage

lisi 

[root@myhost ~]# gpasswd -M zhangsan,wangwu mage

[root@myhost ~]# groupmems -l -g mage

zhangsan  wangwu 

[root@myhost ~]# gpasswd -d zhangsan mage

Removing user zhangsan from group mage

[root@myhost ~]# groupmems -l -g mage

wangwu 

 格式2:gpasswd 组名   //给组添加密码

给组添加密码的作用是,防止其他人切换到此组。

   其他一些常用命令:

          chage命令:修改用户密码

    格式:chage [选项] 用户名

    选项:

      -d:修改用户最近一次修改密码的时间

        修改为0的时候提醒用户下次登陆修改密码

      -E:设置账号的有效期

      -w:修改密码过期警告时间

      -m:修改密码最小的有效期

      -M:设置密码的最大有效期

      -I:修改用户的非活动期限

示例:把zhangsan用户的账号有效期设置为1年,修改最大密码期限为1个月,修改其飞活动期限为5天

[root@myhost ~]# passwd zhangsan

Changing password for user zhangsan.

New password: 

BAD PASSWORD: it is WAY too short

BAD PASSWORD: is too simple

Retype new password: 

passwd: all authentication tokens updated successfully.

[root@myhost ~]# chage -E 2017-08-05 -M 30 -I 5 zhangsan

[root@myhost ~]# tail -3 /etc/shadow 

zhangsan:$6$y5uABHzk$5RFHTYLHA4cL.WfSW2Gd4tjOoefwJ4DNrvLzE8.shDViZqBe/JcZbLoN672LqEnl48F484pxg/AWFPZhwWM.Y/:17018:0:30:7:5:17383:

lisi:!!:17018:0:99999:7:::

wangwu:!!:17018:0:99999:7:::

    

groupmems命令:查看哪些用户的附加组为此组

  groupmems [选项] [选项]  组名

  选项:

    -g:指定组

    -l:查看组成员 

    -d:删除指定的组成员

    -p:清空组成员

    -a:添加组成员

示例:

[root@myhost ~]# gpasswd -M zhangsan,lisi,wangwu mage

[root@myhost ~]# groupmems -l -g mage

zhangsan  lisi  wangwu 

[root@myhost ~]# groupmems -d zhangsan -g mage

[root@myhost ~]# groupmems -l -g mage

lisi  wangwu 

[root@myhost ~]# groupmems -a zhangsan -g mage

[root@myhost ~]# groupmems -l -g mage

lisi  wangwu  zhangsan 

id命令:显示用户的真实有效的ID

  格式: id [选项] 用户名

  选项:

    -u:仅显示有效的UID

    -g:仅显示用户的基本组GID

    -G:显示用户的所用组GID

    -n:显示名称而非ID

示例:

 

[root@myhost ~]# id wangwu

uid=503(wangwu) gid=503(wangwu) groups=503(wangwu),504(mage)

[root@myhost ~]# id -u wangwu

503

[root@myhost ~]# id -g wangwu

503

[root@myhost ~]# id -G wangwu

503 504

[root@myhost ~]# id -ng wangwu

wangwu

[root@myhost ~]# id -nG wangwu

wangwu mage

      

su命令:切换用户

   格式1: su –  用户名

       登陆式切换,会通过读取目标用户的配置文件俺来重新初始化(用户环境也变化)

   格式2: su  用户名

       非登录式切换,不会读取目标用户的配置文件进行初始化 (用户环境不变)

      -c “命令”:su结合-c命令后面加上要执行的命令,可以实现不切换用户的身份即可运行此处制定的命令

   格式:su – 用户 -c "命令"

   注意:管理员可无密码切换至其他任何用户


chfn命令:给用户添加描述信息

chsh -s /bin/bash 用户名: 给指定用户更改shell环境

getent 文件名 用户名:查看指定用户的指定文件的信息

newgrp命令:临时全换到组(需要组密码)

 格式:newgrp 组名 用户名

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

newusers命令:批量添加用户

格式:newusers 用户名列表文件

chpasswd命令:批量添加密码

格式:cat 密码文件 | chpasswd


注意:批量添加用户以后默认家目录里没有任何文件,需要从/etc/skel/中复制过去

    默认不创建mail文件,给添加额用户发送一个邮件就自动创建了mail文件。


快捷命令:

     vipw = vi /etc/passwd

     vigr = vi /etc/group

pwck:检查修改的passwd 文件

grpk:检查修改了得group文件


     

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

(0)
ZJMZJM
上一篇 2016-08-08
下一篇 2016-08-08

相关推荐

  • N25期第一周作业

    计算机的组成与功能  一台能正常工作的计算机有硬件和软件组成,计算机的硬件就好比人的躯体,计算机的软件就好比人的思想,人的思想控制指挥人的躯体,计算机有了软件才能进行工作。 硬件大致由CPU,内存,输入输出设备,存储设备组成,各个部件的主要作用流程是:由输入设备(例如:键盘)输入数据, 数据暂时出入内存, 而后由内存传到CPU(CPU又由运算器+控…

    Linux干货 2016-12-05
  • N21 第八周 总有刁民想害朕

    1、请描述网桥、集线器、二层交换机、三层交换机、路由器的功能、使用场景与区别。 网桥将两个相似的网络连接起来,并对网络数据的流通进行管理。它工作于数据链路层,不但能扩展网络的距离或范围,而且可提高网络的性能、可靠性和安全性。 集线器的英文称为“Hub”。主要功能是对接收到的信号进行再生整形放大,以扩大网络的传输距离,同时把所有节点集中在以它为中心的节点上。它…

    Linux干货 2016-09-15
  • ansible日常入门指南

    ansible的一些基本用法

    2018-01-24
  • ThirdWeek_SecondDay

    Python学习笔记整理

    Linux干货 2017-10-09
  • sed基础

    sed 是一种流编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space ),接着用sed 命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有改变,除非你使用重定向存储输出。Sed 主要用来自动编辑一个或多个文件, 简化对文件的反复操…

    Linux干货 2017-05-01
  • 萝卜运维记-第二周

    part2–针对文件命令的介绍,使用,演示 Ⅰ Linux文件管理类命令常用方法 Ⅱ bash的工作特性,相关示例 Ⅲ 文件的元数据有哪些,以及所代表的含义。 Ⅳ 相关命令的操作,和结果演示。 ①Linux文件管理命令常用方法 Linux常见文件类型 -:常规文件;即f; d: directory…

    Linux干货 2016-12-12