返回介绍

3.1. Linux 用户管理

发布于 2024-05-13 12:41:58 字数 4263 浏览 0 评论 0 收藏 0

3.1.1. Linux User & Group

// 新增一个用户
$ sudo useradd test
// 新建一个用户,指定默认值或默认行为
$ sudo useradd -u 666 -G root,bin -c "test user" -d /home/test -s /bin/bash test
// 删除用户
// 注意:默认情况下,userdel 命令只会删除/etc/passwd 文件中的用户信息,而不会删除系统中属于该账户的任何文件。
$ userdel -r test
// 加上 -r 参数,userdel 会删除用户的 HOME 目录以及邮件目录,但必须在删除之前检查清楚(比如是否存放了其他用户或其他程序的重要文件)。
// 修改用户信息
Table 13: 用户账户修改工具
命令描述
usermod修改用户账户的字段,指定主要组以及附加组的所属关系
passwd修改已有用户的密码
chpasswd从文件中读取登录名密码对,并更新密码
chage修改密码的过期时间
chfn修改用户账户的备注信息
chsh修改用户账户的默认登录 shell
// 修改用户密码
  • -S 查询用户密码的状态,仅 root 用户可用。
  • -l 暂时锁定用户。仅 root 用户可用。
  • -u 解锁用户。仅 root 用户可用。
  • –stdin 通过管道符输出的数据作为用户的密码。
// 显示用户最近登录信息
last,lastlog
// 列出目前/过去登入系统的用户信息
last, lastb
// 创建、修改和删除组
$ sudo groupadd shared
$ sudo groupmod -n sharing shared
$ sudo groupdel shared
// 加入组和从组里删除
$ sudo gpasswd -a test tests
$ sudo gpasswd -d test tests   

3.1.2. 扩展阅读:user/group 文件

  1. /etc/passwd
    $ cat /etc/passwd
    
    root:x:0:0:root:/root:/bin/bash
    daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
    bin:x:2:2:bin:/bin:/usr/sbin/nologin
    # ...
    zrg:x:1000:1000:zrg,,,:/home/zrg:/bin/bash
    

    /etc/passwd 字段信息

    • 登录用户名
    • 用户密码
    • UID
    • Group ID
    • 描述
    • HOME 目录位置
    • 默认 shell

    特别说明

    • /etc/passwd 文件中的密码字段都被设置成了 x,多数 Linux 系统都将用户密码保存在 /etc/shadow 文件中,只有特定的程序(比如登录程序)才能访问这个文件。
    • 一般情况下,不建议直接手动在 /etc/passwd 文件里进行用户管理(比如添加、修改或删除用户账户)。用标准的 Linux 用户管理工具去执行这些操作就会安全许多。
  2. /etc/shadow
    /etc/shadow 字段信息
    • 与/etc/passwd 文件对应的登录名
    • 加密后的密码
    • 自上次修改密码后过去的天数密码(自 1970 年 1 月 1 日开始计算)
    • 多少天后才能更改密码
    • 多少天后必须更改密码
    • 密码过期前提前多少天提醒用户更改密码
    • 密码过期后多少天禁用用户帐目
    • 用户账户被禁用的日期(用自 1970 年 1 月 1 日到当天的天数表示)
    • 预留字段给将来使用
  3. /etc/default/useradd
    // See below, the subsection "Changing the default values".
    $ sudo useradd -D
    or
    $ sudo less /etc/default/useradd
    
    GROUP=100 //用户默认组,新用户被添加到 GID 为 100 的公共组
    HOME=/home //HOME 目录位置
    INACTIVE=-1 //密码过期宽限天数,密码过期后不会被禁用
    EXPIRE= //密码失效时间,未被设置过期日期,密码失效与 /etc/login.defs 默认文件相关。
    SHELL=/bin/sh //将 sh 作为默认 shell
    SKEL=/etc/skel //模板目录,会将/etc/skel 目录下的内容复制到用户的 HOME 目录下
    CREATE_MAIL_SPOOL=no //是否为该用户账户在 mail 目录下创建一个用于接收邮件的文件
    
  4. /etc/group
    字段信息
    • 组名
    • 组密码
    • GID
    • 属于该组的用户列表,当一个用户在/etc/passwd 文件中指定某个组作为默认组时,用户账户不会作为该组成员再出现在/etc/group 文件中。
  5. /etc/gshadow
    • /etc/group 的加密资讯文件,比如用户组(Group)管理密码就是存放在这个文件。
    • /etc/gshadow 和/etc/group 是互补的两个文件;对于大型服务器,针对很多用户和组,定制一些关系结构比较复杂的权限模型,设置用户组密码是极有必要的。比如我们不想让一些非用户组成员永久拥有用户组的权限和特性,这时我们可以通过密码验证的方式来让某些用户临时拥有一些用户组特性,这时就要用到用户组密码。

    字段信息

    $ sudo less /etc/gshadow
    组名:用户组的名称,由字母或数字构成。
    口令:用户组密码,这个段可以是空的或!,如果是空的或有!,表示没有密码。
    组管理者:这个字段也可为空,如果有多个用户组管理者,用,号分割。
    组内用户列表:如果有多个成员,用,号分割 ;
    
  6. 其他文件
    Home 目录
    超级用户:/root/
    普通用户:/home/zrg/
    
    用户邮箱目录
    /var/spool/mail/zrg/
    
    在创建用户时,默认复制该目录下的文件到用户的家目录。
    /etc/skel
    

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文