• Linux使用者管理(1)---用户账号


    linux很重要的应用就是作为服务器的操作系统。服务器的作用是给多用户提供各种“服务”(可能是读服务器上的文件,或者是利用服务器进行数值计算)那么如果多用户共同拥有一台服务器,就需要对服务器上的用户进行管理。

    账号和密码

    用户指的就是服务器上的id,例如我自己的id:stark。每个用户账号里应该有些什么东西呢?显然最重要的,密码,用户所在组别,用户信息说明,用户主文件夹,还有用户所使用的shell.
    以我自己的id为例:

    stark@Jurvis:~$ grep “stark” /etc/passwd
    stark : x : 1000:1000: stark,,, :/home/stark :/bin/bash
    用户名 : 密码 : UID : GID : 用户信息 : 用户主文件夹 : shell

    这里是利用管道命令grap在/etc/passwd文件中读取了和stark有关的信息,stark用户信息。这些信息都保存在/etc/passwd文件夹中。
    值得注意的是这里的密码用 x 隐藏了起来,这样做的目的是防止密码被暴力破解。因为对于任何一个普通用户,这个文件夹的权限都是644。对于其他人可读。

    密码在/etc/passwd中被隐藏起来,那么它的真身在哪呢。答案是在/etc/shadow里,藏在阴影里呢。
    由于/etc/shadow并不能直接访问其权限如下:

    stark@Jurvis:~$ ls -l /etc/shadow
    -rw-r—– 1 root shadow 1168 4月 28 09:03 /etc/shadow
    该文件属于root用户,所在组为shadow,其他用户的权限是000.

    所以这里用sudo获取root权限,来打开这个文件。

    stark@Jurvis:~$ sudo grep “stark” /etc/shadow
    [sudo] password for stark:
    stark:$6$DEqcBXrS$hD7.A5WTivdc9HGt4aLBFbfp2aVo77QDq5atZU
    IQE4jI4.jujknHf.vvQa9xY8eHID3uIkWg.:16551:0:99999:7:::

    1. 用户名stark

    2. 一长串是加密后的密码

    3. 16511代表的是这个密码最近更改的时间(从1970年1月1日起算的天数)就是2015年3月的某一天。

    4. 创建日期后面所接的0代表密码修改后,多少天之内不允许更改。(基于3)0代表随便改。这个功能主要是为了限制某些用户不停修改密码。

    5. 多少天之内必须修改密码,增强安全性。(基于3)这么多9显然200多年都不用改密码了。

    6. 密码必须更改前n天系统发出警告。(基于5)

    7. 密码过期后宽限的时间(仍可登陆系统,但是一登陆必须修改密码)如果在这个日期内无法修改密码。(基于5)密码就会失效,无法登陆系统

    8. 账号失效日期(基于1970)例如各种会员到期失效。

    这其实说明,在linux下忘记密码不是什么了不起的事情,只要你能够通过安全模式或者恢复模式各种进入系统文件,就可以删除密码(加密),然后你再登陆的时候就没有密码了,重新设过即可。有点像安卓手机,只要能进recovery,I can do anything ~~~

    用户组

    在/etc/passwd下,可以读取到用户的用户组,比如GID,这说明各个用户还有组别之分。之前一直谈的都是用户的账号信息。其实用户组也有。
    用户组信息在/etc/group/这个文件下
    首先看看这个文件的权限

    stark@Jurvis:/etc$ ls -l group
    -rw-r–r– 1 root root 882 4月 26 23:41 group

    没有意外,属于root,root创建时用户组也是root,其他人有读的权限。

    stark@Jurvis:/etc$ grep “stark” /etc/group
    adm:x:4:syslog,stark
    cdrom:x:24:stark
    sudo:x:27:stark
    dip:x:30:stark
    plugdev:x:46:stark
    lpadmin:x:108:stark
    stark:x:1000:
    sambashare:x:124:stark

    这里找到了所有和stark有关的用户组。这些行中。

    1. 用户组名

    2. 用户组密码

    3. 用户组ID,root的ID号一般是0

    4. 用户组成员,逗号分隔。

    可以看出,每个用户可以属于不止一个用户组。

    同样/etc/gshadow记录了用户组的密码信息。

    stark@Jurvis:~$ sudo head -n 5 /etc/gshadow
    [sudo] password for stark:
    root:*::
    daemon:*::
    bin:*::
    sys:*::
    adm:*::syslog,stark

    1. 用户组名

    2. 用户组密码

    3. 用户组管理员账号

    4. 用户组包含成员

    值得注意的是用户组管理员账号和用户组密码,这代表可以创建用户组管理员,管理组内信息和权限。

    用户和用户组

    由于每个用户可以属于多个用户组,那么用户在创建文件时如何判断其所在用户组呢?
    首先用groups查看当前所有用户组

    stark@Jurvis:~$ groups
    stark adm cdrom sudo dip plugdev lpadmin sambashare
    #和前面grep命令在etc/group里找到的是一样的。

    其中,显示的第一个是有效用户组,也就是stark
    不同的用户组之间切换通过命令newgrp ***来进行。例如

    stark@Jurvis:~$ groups
    adm cdrom sudo dip plugdev lpadmin sambashare stark

    这样建立的文件就属于adm用户组了。

    版权声明:本文为博主原创文章,未经博主允许不得转载。

  • 相关阅读:
    201671010131 2016-2017-2 《Java程序设计》逐渐的进步。
    201671010131 2016-2017-2 《Java程序设计》走向核心。
    201671010131 2016-2017-2 《Java程序设计》艰难的旅程.
    201671010131 2016-2017-2 《Java程序设计》第二周 由简入繁的开始。
    201671010131 2016-2017-2 《Java程序设计》初学Java,所感所学总结。
    ajax提交请求数组时,参数名带[]
    天气接口-高德api
    Lambda 表达式在线程中的使用
    Centos7 下安装和配置 MinDoc
    天气接口 乱码问题
  • 原文地址:https://www.cnblogs.com/ironstark/p/4892634.html
Copyright © 2020-2023  润新知