Linux 添加用户 ,帐号管理 ,群组管理 详解

时间:2021-04-01 06:38:32

   一、 单个账户管理


    先说说账号的组成。每一个帐户都有拥有人和拥有组群两个属性,所以每个登陆的使用者至少有两个ID,即UID(User ID)和GID(Group ID)。所有用户的ID都存放在/etc/passwd 中 例如 

    fsy:x:500:500:Fedora:/home/fsy:/bin/bash

    信息内容依次为:用户名、密码(一个形式)、UID(UID为0时为root权限)、GID、用户信息说明栏、家目录、Shell。用户登陆的过程是这样的:首先在/etc/passwd中寻找是否有相应的帐号,如果没有则跳出,如果有的话则将该账号对应的UID 与GID 读出来,另外,该账号的家目录与shell 设定也一并读出。然后核对在/etc/shadow对应帐号的密码。最终进入shall。shadow的文件内容是这样:

fsy:$1$giEMo6.Y$rY2i/S7K2UXHTvxJ.VuEL.:15201:0:99999:7:::

   其中前两项为帐户名和密码。在这有这样一个技巧:root密码忘记,不需要重装系统的,可以重新启动,进入单人维护模式,删掉第二个值,保存再重启root就可以不用密码登陆了,然后通过passwd指令设置root密码即可。

 

二、群组管理


   当用户登陆时可以用groups命令查询自己的所属的群组。群组的信息存储在两个文件,即/etc/group 与 /etc/gshadow 中。先看下group的文件结构吧:

root:x:0:root,admin

fsy:x:500: 

  字段的含义依次为:组名、群组密码(形式上的)、GID(与/etc/passwd相对应)、此群组组员的帐号(不能有空格)。每一个用户都有GID也就意味着每一个用户都能有一个群组。

   gshadow文件结构大体如下:

root:::root

fsy:!::

  字段含义依次为:组名、密码栏(开头为!表示无合法密码,所以无群组管理员)、群组管理员帐号、在群组组员帐号(与/etc/group内容相同)。从系统管理员的角度说,gshadow最大的功能就是建立群组管理员了。


三、帐号的管理


  1、新增用户:我们登入系统时会输入账号和密码, 所以建立一个可用的账号同样也需要这两个数据。账号可以使用 useradd 来新建用户,密码可以使用 passwd 这个命令。

            新建一个帐号abc,并设置密码

[root@localhost etc]# useradd abc
[root@localhost etc]# ll -d /home/abc
drwx------. 4 abc abc 4096  8月 18 21:01 /home/abc
[root@localhost etc]# grep abc /etc/passwd /etc/shadow /etc/group
/etc/passwd:abc:x:502:502::/home/abc:/bin/bash
/etc/shadow:abc:!!:15204:0:99999:7:::
/etc/group:abc:x:502:
[root@localhost etc]# passwd abc
更改用户 abc 的密码 。
新的 密码:
重新输入新的 密码:
passwd: 所有的身份验证令牌已经成功更新。
[root@localhost etc]# grep abc /etc/passwd /etc/shadow /etc/group
/etc/passwd:abc:x:502:502::/home/abc:/bin/bash
/etc/shadow:abc:$1$j45I2Azy$IrVJH7.c0meZ8jT1OK0WO0:15204:0:99999:7:::
/etc/group:abc:x:502:

[root@localhost etc]#

2、删除用户 :

[root@localhost etc]# userdel -r abc

3、更改用户:

           更改abc的说明栏,加上”I'm abc"

[root@localhost etc]# usermod -c "I'm abc" abc
[root@localhost etc]# grep abc /etc/passwd
abc:x:502:502:I'm abc:/home/abc:/bin/bash
[root@localhost etc]#

4、新增群组:

           新建一个名为“group"的群组

[root@localhost etc]# groupadd group1
[root@localhost etc]# grep group1 /etc/group /etc/gshadow
/etc/group:group1:x:503:
/etc/gshadow:group1:!::
[root@localhost etc]# 

5、更改群组:

           将刚才建立的group1名称改为 mygroup ,GID为205

 [root@localhost etc]# groupmod -g 205 -n mygroup group1
[root@localhost etc]# grep mygroup /etc/group /etc/gshadow
/etc/group:mygroup:x:205:
/etc/gshadow:mygroup:!::
[root@localhost etc]# 

6、删除群组:

[root@localhost etc]# groupdel mygroup

7、创建群组管理员:

         建立一个群组名为“testgroup",设置"abc"为管理员

[root@localhost fsy]# groupadd testgroup
[root@localhost fsy]# gpasswd testgroup
Changing the password for group testgroup
New Password:
Re-enter new password:
[root@localhost fsy]# gpasswd -A abc testgroup
[root@localhost fsy]# grep testgroup /etc/group /etc/gshadow
/etc/group:testgroup:x:503:
/etc/gshadow:testgroup:$1$CMO704v6$30Zuj9iYxKu9gd5TrmUWs/:abc:
[root@localhost fsy]# 

8、管理员添加组成员:

          以abc登陆,加zbw进入testgroup组

[zbw@localhost fsy]$ su abc
[abc@localhost fsy]$ gpasswd -a zbw testgroup
Adding user zbw to group testgroup
[abc@localhost fsy]$ grep testgroup /etc/group
testgroup:x:503:zbw
[abc@localhost fsy]$