Linux用户管理— 用户相关文件-passwd文件- shadow文件-其他相关文件

严格的用户权限划分,不是为了防范外部人员的攻击,主要是防范内部人员的操作。
越是重要的数据,就要做严格的用户权限划分。

一、用户相关文件

1、/etc/passwd用户信息文件
内容中每一行就是一个用户。

内容格式:root:x:0:0:root:/root:/bin/bash
每一行是7列,用:隔开。下面说明一下每列的内容。

  • 第一列:用户名。
  • 第二列:密码位。这个位置不是真正的密码,是一个标识位,仅仅只代表这个用户有密码。真正的密码在/etc/shadow文件中。
    (1)为什么要把密码分开到另外一个文件中?
    你查看一下两个文件的权限就可以知道了

/etc/passwd文件是谁都可以查看。
/etc/passwd只有root用户可以查看。
这样更加安全。
(2)这个位置可以省略掉吗?
这个位置有标识,系统才去/etc/shadow文件中去验证密码。如果没有标识,不会验证,所以不能删除。

  • 第三列:用户ID。
    (1)0:超级用户UID,如果用户UID为0,代表这个账号是管理员账号。
    Linux中如何把普通用户升级成为管理员呢?
    就是把其他用户的UID修改为0就可以了,这点和Windows是不同的。
    不过不建议建立多个管理员账号。
    (2)1-499 : 系统用户(伪用户)UID,这些UID账号是系统保留给系统用户的UID。
    也就是说UID是1-499范围内的用户是不能登录系统的,而是用来运行系统或服务的。其中1-99是系统保留的账号,系统自动创建。100-499是预留给用户创建系统账号的。
    nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin除外。
    (3)500-65535 : 普通用户UID,建立的普通用户UID从500开始,最大到65535。这些用户足够使用了,但是如果不够也不用害怕,2.6.x内核以后的Linux系统用户UID,已经可以支持2^32这么多了。
  • 第四列:组ID。GID添加用户时,如果不指定用户所属的初始组,那么会建立和用户名相同的组
    Linux系统的用户组分为:初始组和附加组。
  • 第五列:用户说明。如果新创建的用户,你没有填写说明,这个位置是空的。
  • 第六列:用户家目录位置。
  • 第七列:登录shell(用户登陆后执行的shell,你可以理解为该用户登陆后的权限。)/bin/bash
如何把普通用户变成超级用户: 把用户UID改为0

2、/etc/shadow 影子文件

文件内容:

内容格式:root:$6$uUXT6exYbBm6a7BC$kUSor7FFw48xOwuas8A2cI9hNKN7Izaz1Yd7h8a.otiEL/1LirTD6qDEeFNLgM4bpOswbAm3dh/WoPCXH9lg00:18251:0:99999:7:::
每一行是9列,用:隔开。下面说明一下每列的内容。

  • 第一列:用户名.
  • 第二列:加密密码
    我们可以在密码前,人为的加入*改变加密值让密码暂时失效,使这个用户无法登陆,达到暂时禁止用户登录的效果。
    注意所有伪用户的密码都是!!*,代表没有密码,是不能登录的。
    当然我新创建的用户如果不设定密码,它的密码项也是"!!”,代表这个用户没有密码,不能登录。
    Red Hat 6开始,密码的加密方式为SHA512,Red Hat 6以前用的密码的加密方式为MD5
  • 第三列:密码最近更改时间,1970年1月1日作为标准时间时间截转日期。
    时间显示为时间戳的形式,不是重点,了解即可。
    时间戳转日期
    [root@localhost ~ ] # date -d "1970-01-01 "15775 days"
    2013年03月11日星期一00:00:00 CST
    日期转时间戳
    [root@localhost ~ ] # echo $(($(date-date="2013/03/11"+%s)/86400+1))
    15775
    这个15775表示在1970年1月1日之后的第15775天修改的密码。单位是天。
  • 第四列:两次密码的修改间隔时间(和第3字段相比)。
    默认是0。也就是说当前时间戳是100,第四列数值为10,也就是下一次修改的时间最少也要到时间戳为110的时候才能修改。
    该字段不建议修改。
  • 第五例:密码有效期(和第3字段相比)。
  • 第六列:密码修改到期前的警告天数(和第5字段相比)。
    就是密码到期前多少天开始,该用户每一次登陆,系统都给你提示你的密码快到期了。
  • 第七列:密码过期后的宽限天数(和第5字段相比)。
    默认值没有写,其值就是-1。其意思表示用户是永不过期的,即使密码有效期过了,用户的密码也不会失效,还可以正常使用。
    如果需要用户密码到期之后不能使用,把该位数值改写成0,或者改成正数,宽限几天。
  • 第八列:密码失效时间。
    这里同样要写时间戳,也就是用1970年1月1日进行时间换算。如果超过了失效时间,就算密码没有过期,用户也失效无法使用。(就像是买会员,到期终止了。)
    如果用户的密码失效了,会自动的密码位最前端加上一个,来进行用户登陆失效。
  • 第九列:保留。没有意义,保留位。

3、/etc/group组信息文件

内容格式:root:x:0:root
每一行是9列,用:隔开。下面说明一下每列的内容。

  • 第一列:组名。
  • 第二列:组密码位
    这个也是一个占位标识,具体的密码在/etc/gshadow文件中。
    并不建议给组设置密码。
    组密码是用来做什么的?
    如果我给用户组设定了组管理员,并给该用户组设定了组密码,组密码就保存在这个文件当中。组管理员就可以利用这个密码管理这个用户组了。
    (也就是说,如果需要向一个组添加用户,默认是只有root用户可以添加。而root用户给一个组创建了一个密码,然后给组中的一个用户,该用户就相当于这个组的一个小组长,这个小组长就有权限往这个组里添加用户,或者删除用户。)
    为什么不建议设置组密码?
    因为这样设置会有一定风险,建议还是root用户来干这些事比较安全。
  • 第三列:GID
  • 第四列:此组中支持的其他用户(附加用户),附加组是此组的用户。自己属于初始组,不显示在此列中。
初始组和附加组区别
初始组:每个用户初始组只能且必须有一个,没有初始组这个用户是不能存在的,一般都是和用户名同名的。
附加组:每个用户可以属于多个或者没有附加组。要把一些用户加入组,都是加入附加组。

如果需要把用户改到其他组里,不建议修改初始组,建议修改附加组。

4、组密码文件

/etc/gshadow文件,具体看上边3中介绍。

5、用户的家目录

Linux系统中,每添加一个用户,都会在/home/目录下,生成一个和用户名相同的目录,该目录作为该用户的家目录。如下图:

6、用户邮箱目录

这个邮箱在/var/spool/mail目录当中,
例如:user1用户的邮箱就是/var/spool/mail/user1文件

7、用户模板目录

/etc/skel/目录
我们进入到uesr1的家目录中,这个目录看起来是空的。

[root@localhost ~ ] # cd /home/user1/
[root@localhost user1] # ls
[root@localhost user1] #

其实uesr1的家目录中是有文件的,但都是隐藏文件。

[root@localhost user1] # ls -a
. .. .bash_history .bash_logout .bash_profile .bashrc .gnome2
  • 那这些隐藏文件是哪来的?
    用户的家目录,是执行添加用户useradd user2命令之后自动建立的。所以说这些隐藏文件是自动生成的,这些自动生成的模板,就是/etc/skel/目录中。

我们进入/etc/skel/目录中查看。

[root@localhost user1] # cd /etc/skel/
[root@localhost skel] # ls
[root@localhost skel]# ls -a 
. ..  .bash_logout .bash_profile .bashrc .gnome2

和用户家目录中的隐藏文件是一样的。.bash_history文件是在用户执行命令之后,自动生成的文件。
这个目录一般不用我们动。

  • 那什么时候需要我们对/etc/skel/目录进行改动呢?
    比如说我想给每一个新创建的用户,提供一个警告信息,或这些服务器使用规则的文档。我就可以在/etc/skel/目录下创建一个文档。如下
[root@localhost skel] # vi warining. txt

这样,在之后每一个新创建用户的家目录中,都会有一个warining. txt文件出现。(已经存在的用户的家目录中不会出现。)

总结:添加一个用户,实际上是修改了上边7个文件(用户模板文件,除外)。把上述几个位置的文件进行删除,也可以完全的删除一个用户。

重点:配套学习资料和视频教学

那么在这里我也精心准备了上述大纲的详细资料在下方链接如下

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值