linux-用户管理

在linux系统中,由于root账号的权限过于强大,如果我们安装软件等全部使用root去做,一旦出现软件漏洞或密码泄露,很可能导致整个系统的最高权限落入黑客之手。因此在平时操作时最好使用普通账号,只有当需要root权限时才切换到root,下面我们来了解下linux用户相关的操作。

新建用户 useradd

useradd 选项 用户名

-c comment 指定一段注释性描述

-g 用户组 指定用户所属的用户组


在root权限下,useradd只是创建了一个用户名,如(useradd+用户名),它并没有在/home目录下创建同名文件夹,也没有创建密码,因此利用这个用户登录系统,是登录不了的,为了避免这样的情况出现,可以用(useradd -m +用户名)的方式创建,它会在/home目录下创建同名文件夹,然后利用(passwd + 用户名)为指定的用户名设置密码。

删除账号 userdel

userdel 选项 用户名

常用的选项是-r,它的作用是把用户的主目录一起删除。

修改帐号 usermod

常用的选项包括-c, -d, -m, -g, -G, -s, -u以及-o等,这些选项的意义与useradd命令中的选项一样,可以为用户指定新的资源值。另外,有些系统可以使用如下选项:


-l 新用户名
这个选项指定一个新的账号,即将原来的用户名改为新的用户名。

用户口令的管理 passwd

-l 锁定口令,即禁用账号

-d 使账号无口令

一般直接加用户名即可:passwd 用户名

##增加用户组 groupadd

groupadd 选项 用户组

-g GID 指定新用户组的组标识号(GID)
-o 一般与-g选项同时使用,表示新用户组的GID可以与系统已有用户组的GID相同


一般使用不带参数,直接 groupadd xxx

修改用户组 groupmod

-g, --gid GID The group ID of the given GROUP will be changed to GID.

-n, --new-name NEW_GROUP The name of the group will be changed from GROUP to NEW_GROUP name.

##常见新增用户流程


  1. 新建用户组:groupadd 用户组

  2. 添加用户: useradd -m 用户名 -g 用户组

  3. 设置密码: passwd 用户名

  4. 删除用户: userdel -r 用户名


下面我们来了解下几个配置文件

/etc/passwd

文件中每个用户都有一个对应的记录行,它记录了这个用户的一些基本属性,每行记录又被冒号(:)分隔为7个字段

用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录Shell

  1. 用户名, 通常长度不超过8个字符,并且由大小写字母和/或数字组成。登录名中不能有冒号(?,因为冒号在这里是分隔符。

  2. 口令,存放着加密后的用户口令字。

  3. 用户标识号,是一个整数,系统内部用它来标识用户。

  4. 组标识号,字段记录的是用户所属的用户组。它对应着/etc/group文件中的一条记录

  5. 注释性描述,这个字段并没有什么实际的用途。在不同的Linux系统中,这个字段的格式并没有统一。

  6. 主目录,用户的起始工作目录,它是用户在登录到系统之后所处的目录。

  7. 登录Shell,系统管理员可以根据系统情况和用户习惯为用户指定某个Shell。如果不指定Shell,那么系统使用sh为默认的登录Shell,即这个字段的值为/bin/sh


系统中有一类用户称为伪用户(psuedousers),这些用户在Linux /etc/passwd文件中也占有一条记录,但是不能登录,因为它们的登录Shell为空。它们的存在主要是方便系统管理,满足相应的系统进程对文件属主的要求。如bin

/ect/group

此文件是记录组 ID(GID)和组名相对应的文件。

各用户组中,还是以 “:” 作为字段之间的分隔符,分为 4 个字段,每个字段对应的含义为:

组名:密码:GID:该用户组中的用户列表

  1. 组名,用户组的名称,有字母或数字构成。同 /etc/passwd 中的用户名一样,组名也不能重复。
  2. 组密码,和 /etc/passwd 文件一样,这里的 “x” 仅仅是密码标识,真正加密后的组密码默认保存在 /etc/gshadow 文件中
  3. 组ID (GID),群组的 ID 号,Linux 系统就是通过 GID 来区分用户组的,同用户名一样,组名也只是为了便于管理员记忆。
  4. 组中的用户,该用户组是这个用户的初始组,则该用户不会写入这个字段,可以这么理解,该字段显示的用户都是这个用户组的附加用户。

/etc/shadow

用于存储 Linux 系统中用户的密码信息,又称为“影子文件”,文件只有 root 用户拥有读权限,其他用户没有任何权限,这样就保证了用户密码的安全性。

同 /etc/passwd 文件一样,文件中每行代表一个用户,同样使用 “:” 作为分隔符,不同之处在于,每行用户信息被划分为 9 个字段。每个字段的含义如下:

用户名:加密密码:最后一次修改时间:最小修改时间间隔:密码有效期:密码需要变更前的警告天数:密码过期后的宽限时间:账号失效时间:保留字段

  1. 用户名
  2. 加密密码,目前 Linux 的密码采用的是 SHA512 散列加密算法,所有伪用户的密码都是 “!!” 或 “*”,代表没有密码是不能登录的。当然,新创建的用户如果不设定密码,那么它的密码项也是 “!!”,代表这个用户没有密码,不能登录。
  3. 最后一次修改时间,可以通过date -d "1970-01-01 15775 days" 计算出我们习惯的系统时间。
  4. 最小修改时间间隔,该字段规定了从第 3 字段(最后一次修改密码的日期)起,多长时间之内不能修改密码。如果是 0,则密码可以随时修改
  5. 密码有效期
  6. 密码需要变更前的警告天数
  7. 密码过期后的宽限天数,则在此字段规定的宽限天数内,用户还是可以登录系统的;如果过了宽限天数,系统将不再让此账户登陆,也不会提示账户过期,是完全禁用
  8. 账号失效时间,同第 3 个字段一样,使用自 1970 年 1 月 1 日以来的总天数作为账户的失效时间。该字段表示,账号在此字段规定的时间之外,不论你的密码是否过期,都将无法使用!
  9. 保留

你可能感兴趣的:(linux)