Linux 用户passwd文件详解

转载地址:https://blog.csdn.net/qq_34556414/article/details/78902662

用户管理有两个最重要的配置文件,一个是保存用户信息的文件/etc/passwd,一个是保存了用户密码的文件/etc/shadow。


超级用户的uid为0,在/etc/passwd里面有很多伪用户,这些用户是不能登入的,他们的uid在1-499之间,安装完系统就缺省的添加了这些用户。

UID为0的用户就是超级用户。

将/etc/passwd test:x:1002:1003::/home/test:/bin/bash将其改为test:x:0:1003::/home/test:/bin/bash

[root@centos oracle]# su - test

上一次登录:一 12月 25 21:22:01 CST 2017pts/0 上

[root@centos ~]#

可以看到test用户变为了超级用户,权限和root一样。

在使用useradd添加的用户是普通用户,在系统安装完毕在/etc/passwd里面就有许多用户,这里面有很多用户并不是真正可以登入系统和使用的。




root@localhost ~]# head  -n 5 /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

oracle:x:1001:1001:/home/oracle:/bin/bash

在/etc/passwd里面保存了每一个用户的信息,可以使用man 5 passwd来查看配置文件帮助。

 (密码文件)里每行一条记录,并且每行有这样的格式:

account:password:UID:GID:GECOS:directory:shell (帐号:密码:用户ID:组ID:一般的信息:目录:shell)

       字段描述如下:

 

              account   使用者在系统中的名字,它不能包含大写字母.

 

              password  加密的用户密码,或者星号。

 

              UID       用户 ID 数。

 

              GID       用户的主要组 ID 数。

 

              GECOS     这字段是可选的,通常为了存放信息目的而设的. 通常,它包含了用户的全名. GECOS 意思是通用电气综合操作系统(General Electric Comprehen‐

                        sive    Operating    System),    当     GE     的大型系统部分割售卖给     Honeywell     时它被改为     GCOS.     Dennis     Ritchie

                        作过报告:"有时我们发送印刷品或批道作业到 GCOS机器时,gcos 字段打断了 $IDENT 卡的信息,不太美观。"

 

              directory 用户的 $HOME 目录.

 

              shell     登录时运行的程序(如果空的,使用 /bin/sh).  如果设为不存在的执行(程序),用户不能通过 login(1) 登录.

在密码位的地方没有存储密码。在linux里面内核只认识数字,不认识密码,


伪用户一般分为两种,一种是与linux系统相关的,一种是与程序服务相关的。比如使用shutdown关机的时候就会调用伪用户的身份。在linux系统里面任何一个进程操作都必须有一个用户身份,这个就通过调用伪用户。比如安装了apache,http的进程,启动以后也要对应一个用户身份,但是不能对应root启动这个进程,如果别人得到这个进程相当于窃取到管理员root的权限,这样很危险,所以都是通过一些伪用户,添加一些服务的伪用户,比如apache,mysql。这些实际上是这些进程启动之后调用的用户身份

所以伪用户最大的作用就是在一些系统操作或一些应用服务的调用的身份而已。

 

用户组是同样类型用户的集合,一个用户可以属于多个用户组,比如有一个用户叫张三,可以让其管理FTP server又可以管理web server,可以让其同时属于这两个组。但是总要有一个缺省的组,UID就是定义缺省组的组id,添加一个一个用户的时候如果不指定缺省组,默认创建一个和用户名称相同的组并且将用户添加进去。

在实际当中,添加一个用户必须指定所在的组。

一个用户属于某个组就拥有这个组的权限。所以用户加入组就是让用户享有这个组的权限。

 

描述信息,这个部分可以写内容也可以不写,就是用来描述用户信息的,建议在添加用户的时候写上用户的描述信息。

 

每一个普通用户必须要有一个宿主目录来存放基本信息,比如环境设置的选项,如果创建用户不指定宿主目录,那么就会在/home下面创建和用户同名的宿主目录。

 

普通用户使用的缺省shell就是bashshell。

 

如果真的要将linux做一个服务器,那么密码最好使用8位或者8位以上的,大小写数字字母的组合来组成密码。Unix最早采用的加密算法是des,但是des识别的密码位只有8位,现在使用的linux大多数时候使用的是des和md5混合使用的,md5是255位的。

Md5进行密码的加密,MD5算法对密码的加密规则,第一个,输入的长度不固定但是输出的长度是固定的,不管输入的密码长度是6位的还是8位的,生成的加密的密码是固定长度的值,单向不可逆的,无法通过输出推算出输入的值。

 

[root@centos oracle]# echo "123456" | md5sum

f447b20a7fcbf53a5d5be013ea0b15af  -

[root@centos oracle]# echo "1" | md5sum

b026324c6904b2a9cb4b88d6d61c81d1  -

可以看到不同长度的密码最终生成的密文都是同等长度的,在设置密码的时候强度要足够同时应该经常修改密码。

 

为什么不在/etc/passwd里面密码位放上用户的加密密码。

因为在/tec/passwd里面保存了用户的信息,有很多命令在使用的过程当中会调用这些信息,调用这些信息就需要/etc/passwd这个文件。所以查看/etc/passwd文件会发现每一个用户对其都有一个读的权限,那么将加密密码放在这里每个人都可以拿到加密过后的密码去尝试破解,这样就危险了。(用户密码是存放在/etc/shadow里面)

[root@centos oracle]# ls -ld /etc/passwd

-rw-r--r--. 1 root root 2459 12月 25 21:25 /etc/passwd





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值