美文网首页简单易懂的Linux笔记
【小白几分钟】几分钟了解Linux系统用户和用户组的管理

【小白几分钟】几分钟了解Linux系统用户和用户组的管理

作者: Angry_bear | 来源:发表于2018-07-11 09:12 被阅读0次

Linux用户和用户组

  Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统。
  用户的账号一方面可以帮助系统管理员对使用系统的用户进行跟踪,并控制他们对系统资源的访问;另一方面也可以帮助用户组织文件,并为用户提供安全性保护。
  每个用户账号都拥有一个惟一的用户名和各自的密码。
  用户在登录时键入正确的用户名和密码后,就能够进入系统和自己的主目录。

 
实现用户账号的管理,要完成的工作主要有如下几个方面:

  • 用户账号的添加、删除与修改。
  • 用户密码的管理。
  • 用户组的管理。

相关三个重要文件(均可使用vim进行查看编辑)

  • /etc/passwd :存储用户的关键信息
root:x:0:0:root:/root:/bin/bash

该行由7段组成,每段间以:分隔,每段含义如下

用户名 用户密码 用户ID 组ID 备注 家目录 启动shell
root x 0 0 root /root /bin/bash

详细说明:
①用户密码均显示为“x”,实际密码加密后将加密值储存在/etc/shadow
②用户ID必须为非负数,0为root用户,1499为系统保留用户,50065535为普通用户
③备注为一行不含空格的字符串,用于简述用户信息
④启动shell为从该用户登录系统后所使用的shell程序,常用的shell有sh csh ksh tcsh bash等等,默认情况下为/bin/sh
 

  • /etc/group:存储用户组的关键信息
root:x:0:

该行由4段组成,每一段间以:区分,每段含义如下

组名称 组密码 组ID 组成员
root x 0

详细说明:
①组密码均显示为“x”,和用户密码一样加密储存在/etc/gshadow,一般情况下不会给用户组设置密码
②组成员如果显示空缺则该组只有一个用户且用户名与组名相同,如果该组有多个用户,则该字段显示所有的用户名,中间以,隔开
 

  • /etc/shadow:存储用户密码的关键信息
root:$id$salt$encrtpted:17051:0:99999:7:::

该行由9段组成,每一段间以:区分,每段含义如下

用户名 加密值 最近密码修改时间 密码最短使用天数 密码最长使用天数 n天前提示密码即将过期 密码过期后宽限天数 账号失效时间 保留字段
root $id$salt$encrtpted 17051 0 99999 7

详细说明:
①加密值显示!表示被锁定,显示!!表示没有密码
②最近密码修改时间,是从1970年1月1日开始计算一共经历了多少天
③最短密码使用天数设置为0,表示无限制
④最长密码使用天使设置为99999表示无限制
⑤密码过期后宽限天数设置为0表示过期立即锁定,设置为-1表示永不锁定

二、用户账号管理

  • useradd
    功能描述:添加用户
    常用语法:useradd [选项] [用户名]
    常用选项:
         -g 指定用户组
         -G 指定用户附加组
         -u 指定用户的用户编号
    示例:
[root@vultr ~]# useradd test1          //不加任何选项直接添加用户“test1”
[root@vultr ~]# ls /home/             //验证家目录下是否有“test1”,有表示创建成功
test1
[root@vultr ~]# tail -1 /etc/passwd  //验证“passwd”文件最后是否有“test1”用户信息,有表示创建成功
test1:x:1002:1002::/home/test1:/bin/bash

[root@vultr ~]# useradd -g 1002 -G 1001 -u 888 test2    //添加用户“test2”指定用户组为“1002”,附加用户组为“1001”,用户ID为“888”
[root@vultr ~]# tail -1 /etc/passwd     //查看“/etc/passwd”有“test2”用户信息,并且指定用户ID和用户组成功
test2:x:888:1002::/home/test2:/bin/bash
[root@vultr ~]# tail -2 /etc/group     //在“/etc/passwd”文件夹下看到,“test2”用户属于“1001”附加组中
mysql:x:1001:test2
test1:x:1002:

 

  • usermod
    功能描述:修改用户
    常用语法:usermod [选项] [用户名]
    常用选项:
         -g 修改用户组
         -G 修改用户附加组
         -u 修改用户的用户编号
         -l 修改用户名
    示例:
[root@vultr home]# useradd test1             //添加一个“test1”
[root@vultr home]# tail -1 /etc/passwd      
test1:x:1002:1002::/home/test1:/bin/bash   //“test1”用户组ID为“1002”
[root@vultr home]# usermod -g 1000 -G 1001 test1    //修改“test1”的用户组ID为“1000”,附加组ID为“1001”
[root@vultr home]# tail -1 /etc/passwd
test1:x:1002:1000::/home/test1:/bin/bash   //用户组ID已修改
[root@vultr home]# tail -3 /etc/group
www:x:1000:
mysql:x:1001:test1            //“1001”附加组成员有用户“test1”
test1:x:1002:

[root@vultr home]# usermod -l baba test1     //修改“test1”的用户名为“baba”
[root@vultr home]# tail -1 /etc/passwd
baba:x:1002:1000::/home/test1:/bin/bash   //修改成功

 

  • passwd
    功能描述:修改密码
    常用语法:passwd [用户名]
[root@vultr ~]# tail -1 /etc/shadow              //查询“shadow”文件发现“test1”用户密码字段显示“!!”表示没有密码
test1:!!:17722:0:99999:7:::
[root@vultr ~]# passwd test1                     //给“test1”用户修改/新增密码
Changing password for user test1.
New password:                                    //输入新密码
Retype new password:                            //再次输入新密码
passwd: all authentication tokens updated successfully.  //提示密码设置成功
[root@vultr ~]# tail -1 /etc/shadow            //此时再次查询“shadow”文件,发现有了加密值
test1:$1$pMEfQ0PW$tKUwcMa50ZGeoCKjx7gdB1:17723:0:99999:7:::

 

  • su
    功能描述:用于切换用户登录
    常用语法:su [用户名](若不写用户名则表示切换为管理员)
    示例:
[root@vultr ~]# su test1             //切换到test1用户
[test1@vultr root]$ su               //切换成功,并切换回root用户
Password:                           //普通用户切换到root用户时要输入root用户密码
[root@vultr ~]#                    //成功切换回root用户

 

  • userdel
    功能描述:删除用户
    常用语法:userdel [选项] [用户名]
    常用选项:
         -r 删除同时删除其家目录
[root@vultr ~]# userdel -r test1            //删除“test1”用户及其家目录
[root@vultr ~]
[root@vultr ~]# tail -3 /etc/passwd       //查询“passwd”文件,“test1”已被删除
chrony:x:998:996::/var/lib/chrony:/sbin/nologin
www:x:1000:1000::/home/www:/sbin/nologin
mysql:x:1001:1001::/home/mysql:/sbin/nologin:
[root@vultr ~]# ls /home/                    //查询家目录,没有“test1”
[root@vultr ~]# 

 

二、用户账号管理

  • groupadd
    功能描述:添加用户组
    常用语法:groupadd [选项] [用户组名]
    常用选项:
         -g 指定用户组ID,如果不指定用户组ID则默认从500后递增

示例:

[root@vultr ~]# groupadd -g 888 baba         //创建用户组“baba”,指定用户组ID为“888”
[root@vultr ~]# tail -1 /etc/group          //查询“/etc/group”表示创建成功
baba:x:888:

 

  • groupmod
    功能描述:编辑用户组
    常用语法:groupadd [选项] [用户组名]
    常用选项:
         -g 修改用户组ID
         -n 修改用户组名
    示例:
[root@vultr ~]# tail -1 /etc/group                        //查询“/etc/group”用户组“baba”的信息
baba:x:888:
[root@vultr ~]# groupmod -g 666 -n yeye baba              //修改用户组“baba”的组ID为“666”,组名为“yeye”
[root@vultr ~]# tail -1 /etc/group                        //查询“/etc/group”表示修改成功
yeye:x:666:

 

  • groupdel
    功能描述:删除用户组
    常用语法:groupdel [用户组名]
    常用选项:
[root@vultr ~]# tail -1 /etc/group       //查询用户组“yeye”
yeye:x:666:
[root@vultr ~]# groupdel yeye            //删除用户组“yeye”
[root@vultr ~]# tail -1 /etc/group       //用户组“yeye”删除成功
mysql:x:1001:

 


写在最后

  本篇主要让大家了解下用户和用户组关系,及管理方式,说到管理方式,无非就是“增”“删”“改”嘛。依旧希望大家通过多敲命令的方式去熟悉并且牢记,还是那句话,看得再多,不如自己做遍~
  好啦,鸡汤还是不能忘的~

 

《dead aid》

相关文章

网友评论

    本文标题:【小白几分钟】几分钟了解Linux系统用户和用户组的管理

    本文链接:https://www.haomeiwen.com/subject/wtzxpftx.html