fanlong0212

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

1、用户信息文件:/etc/passwd  

  我们通过 vim /etc/passwd 命令,打开 passwd 文件:

  

2018年 12月 28日 星期五 00:00:00 CST
[root@localhost ~]# vim /etc/passwd

root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
polkitd:x:999:998:User for polkitd:/:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
chrony:x:998:996::/var/lib/chrony:/sbin/nologin
user1:x:1000:1001::/home/user1:/bin/bash

  

  上面的每一行代表一个用户,我们以第一行为例:

 
 root:x:0:0:root:/root:/bin/bash

  上面的root用户通过 : 分隔为 7 个字段。

  ①、第一个字段:root 表示用户名称

  ②、第二个字段:x  表示密码标志,真正的密码是存储在 /etc/shadow 文件中,下面我们会详细讲解。

  ③、第三个字段:UID,用户ID。这里我们需要说明的是在Linux系统中不一定root用户是超级用户,用户id为0的才是超级用户。

        0:表示超级用户,权限最大的用户。

        1-499:表示系统用户(伪用户),伪用户是系统用来启动相关服务和命令的,不能用来登录系统,而且不能删除,删除伪用户会造成一些命令不能使用。

        500-65535:普通用户。Linux内核2.6以后是可以支持232个用户,基本上是不用担心用户不够的。

  ④、第四个字段:GID,用户初始组ID。这里需要理解初始组和用户组的概念,初始组就是指用户一登录就立刻拥有这个用户组的相关权限,每个用户的初始组只能有一个,一般就是和这个用户的用户组相同的组名作为这个用户的初始组。附加组值用户可以加入多个其他的用户组,并拥有这些组的权限,附加组可以有多个。

  ⑤、第五个字段:用户说明

  ⑥、第六个字段:家目录。

        普通用户:/home/用户名/

        超级用户:/root/

  ⑦、第七个字段:登录之后的 shell。shell后面我们会详细介绍,这里简单来说shell就是Linux的命令解释器。

2、用户密码文件:/etc/shadow 

  我们通过 vim /etc/shadow 命令,打开 shadow文件:

  

[root@localhost ~]# vim /etc/shadow

root:$6$pmploiAr$vq8wSRzsNCRFsiVl9frVEEZ0vR5On8W0UVWTwIV/EWVcRNRqM2zMcHZ8hl2k/Ye/JzeV82eXXNdOeQNcTpFvH1:17893:0:99999:7:::
bin:*:17834:0:99999:7:::
daemon:*:17834:0:99999:7:::
adm:*:17834:0:99999:7:::
lp:*:17834:0:99999:7:::
sync:*:17834:0:99999:7:::
shutdown:*:17834:0:99999:7:::
halt:*:17834:0:99999:7:::
mail:*:17834:0:99999:7:::
operator:*:17834:0:99999:7:::
games:*:17834:0:99999:7:::
ftp:*:17834:0:99999:7:::
nobody:*:17834:0:99999:7:::
systemd-network:!!:17875::::::
dbus:!!:17875::::::
polkitd:!!:17875::::::
sshd:!!:17875::::::
postfix:!!:17875::::::
chrony:!!:17875::::::
user1:$6$40UzZHxm$tGF.2ChshKxdbFeDsWLTMKRopCERzBl0aqlhiVIxI6JxJCN.XzbSWJLq7BCEIYSRaFAgRopQTeSzWKRQkZytT0:17884:0:99999:7:::

  

  同理上面的每一行和 passwd 文件一样,都是表示一个用户。passwd描述的是用户信息,shadow文件描述的是用户密码。我们还是以第一行为例:

root:$6$pmploiAr$vq8wSRzsNCRFsiVl9frVEEZ0vR5On8W0UVWTwIV/EWVcRNRqM2zMcHZ8hl2k/Ye/JzeV82eXXNdOeQNcTpFvH1:17893:0:99999:7::: 

 上面的root用户通过 : 分隔为 9 个字段。

  ①、第一个字段:root 表示用户名

  ②、第二个字段:root用户的登录加密密码。

      一、加密算法升级为 SHA512 散列加密算法

      二、如果密码位是“!!”或者“*”代表没有密码,不能登录,基本上伪用户都是没有密码的

nobody:*:17834:0:99999:7:::
systemd-network:!!:17875::::::

  ③、第三个字段:密码的最后一次修改日期。使用1970年1月1日作为标准时间,每过一天时间戳加1.

      root 用户的修改日期是17893。这里我们通过 date -d "1970-01-01 17893 days"进行换算:

[root@localhost mail]# date -d "1970-01-01 17893 days"
2018年 12月 28日 星期五 00:00:00 CST

  ④、第四个字段:两次密码的修改间隔时间(和第三字段相比)

  ⑤、第五个字段:密码有效期(和第三字段相比)

  ⑥、第六个字段:密码修改到期前的警告天数(和第五个字段进行比较)

  ⑦、第七个字段:密码过期后的宽限天数(和第五个字段进行比较)

        0:代表密码过期后立即失效

        -1:代表密码永远不会失效

  ⑧、第八个字段:账号失效时间(要用时间戳表示)

  ⑨、第九个字段:保留字段

 

3、用户组信息文件:/etc/group

  我们通过 vim /etc/group 命令,打开 group文件:

[root@localhost ~]# vim /etc/group

root:x:0:
bin:x:1:
daemon:x:2:
sys:x:3:
adm:x:4:
tty:x:5:
disk:x:6:
lp:x:7:
mem:x:8:
kmem:x:9:
wheel:x:10:
cdrom:x:11:
mail:x:12:postfix
man:x:15:
dialout:x:18:
floppy:x:19:
games:x:20:
tape:x:33:
video:x:39:
ftp:x:50:
lock:x:54:
audio:x:63:
nobody:x:99:
users:x:100:
utmp:x:22:
utempter:x:35:
input:x:999:
systemd-journal:x:190:
systemd-network:x:192:
dbus:x:81:
polkitd:x:998:
ssh_keys:x:997:
sshd:x:74:
postdrop:x:90:

  一般创建一个用户,立即创建一个和用户名相同的用户组,我们还是以第一行 root 为例:

root:x:0:  

  ①、第一个字段:组名

  ②、第二个字段:组密码标志,密码文件存放在 /etc/gshadow 中

  ③、第三个字段:GID,组id

  ④、第四个字段:组中的附加用户

4、用户组密码文件:/etc/gshadow 

  我们通过 vim /etc/gshadow 命令,打开 gshadow 文件:

[root@localhost ~]# vim /etc/gshadow

root:::
bin:::
daemon:::
sys:::
adm:::
tty:::
disk:::
lp:::
mem:::
kmem:::
wheel:::
cdrom:::
mail:::postfix
man:::
dialout:::
floppy:::
games:::
tape:::
video:::
ftp:::
lock:::
audio:::
nobody:::
users:::
utmp:!::
utempter:!::
input:!::
systemd-journal:!::
systemd-network:!::
dbus:!::
polkitd:!::
ssh_keys:!::
sshd:!::
postdrop:!::

  这个文件基本上不会用到

  ①、第一个字段:组名

  ②、第二个字段:组密码

  ③、第三个字段:组管理员用户名

  ④、第四个字段:组中的附加用户

5、用户的家目录 

  ①、普通用户:/home/用户名/,一般创建一个新用户就会自动创建该家目录。所有者和所属组都是此用户,权限是700。

  ②、超级用户:/root/,所有者和所属组都是root用户,权限是550。注意看上去权限是550,其实权限对于超级用户基本上是没有限制的,所以这里给什么权限都没多大区别。

6、用户的邮箱

  目录是:/var/spool/mail/用户名/

[root@localhost mail]# ll /var/spool/mail/
总用量 4
-rw-------. 1 root mail 1358 12月 19 14:43 root
-rw-rw----. 1 user1 mail 0 12月 11 15:07 test
-rw-rw----. 1 user1 mail 0 12月 11 15:21 user1 

7、用户的模板目录

   目录是:/etc/skel

  这个目录是每创建一个新用户,就会在其家目录下自动创建 /etc/skel 目录下的所有文件。

  范例:我们在 /etc/skel 目录下创建一个 hello 文件,然后创建一个新用户 test,进入到 test 用户的家目录/home/test 就会看到有 hello 文件。

 

[root@localhost ~]# cd /etc/skel/
[root@localhost user2]# ls -a
.  ..  .bash_logout  .bash_profile  .bashrc
[root@localhost skel]# touch hello
[root@localhost skel]# useradd user2
[root@localhost skel]# passwd user2
更改用户 user2 的密码 。
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
[root@localhost skel]# cd /home/user2
[root@localhost user2]# ls -a
.  ..  .bash_logout  .bash_profile  .bashrc  hello

 

posted on 2019-01-09 12:07  fanlong0212  阅读(183)  评论(0编辑  收藏  举报