Linux 用户和组管理命令

Linux 用户和组管理命令详解

一、查看用户信息

  1. 使用命令cat /etc/passwd每一行代表一个用户账户,其格式为:
    username:password:UID:GID:user_info:home_directory:shell

image.png

  • 用户名:用户登录系统时使用的名称。
  • 密码:在现代的 Linux 系统中,这个字段通常存储一个 x 或者其他占位符,实际的密码加密后存储在 /etc/shadow 文件中。
  • 用户 ID(UID):一个数字,用于唯一标识用户。通常,普通用户的 UID 从 1000 开始,系统用户的 UID 较低。例如,root 用户的 UID 通常为 0。
  • 用户组 ID(GID):一个数字,指定用户所属的主用户组。与用户组信息存储在 /etc/group 文件中相对应。
  • 用户信息说明:通常包含用户的全名、联系方式或其他描述信息。这个字段可以为空。
  • 用户主目录:用户登录系统后所在的默认目录。例如,/home/username
  • 用户登录 shell:指定用户登录系统后使用的命令解释器。常见的有 /bin/bash(Bash shell)、/bin/sh(Bourne shell)等。如果这个字段是 /sbin/nologin/bin/false,表示该用户不能直接登录系统。
  1. 密码信息

​ 使用命令cat /etc/shadow

image.png
每行通常包含以下字段:

  • 用户名(Login Name):与/etc/passwd中的用户名相对应。
  • 加密后的密码(Encrypted Password):存储用户密码的加密形式。使用单向加密算法进行加密,确保密码的安全性。即使攻击者获取了/etc/shadow文件,也很难破解出原始密码。
  • 密码最后一次修改的日期(Date of Last Password Change):以从 1970 年 1 月 1 日以来的天数表示。这个字段用于确定密码的有效期和强制用户定期更改密码。
  • 密码最短使用期限(Minimum Password Age):表示密码在多少天内不能被修改。用于防止用户频繁更改密码以逃避密码复杂度要求等安全策略。
  • 密码最长使用期限(Maximum Password Age):规定密码在多少天后必须被更改。有助于确保密码的安全性,避免长期使用相同的密码。
  • 密码警告期限(Password Warning Period):在密码过期前多少天开始向用户发出警告。提醒用户及时更改密码,以避免密码过期导致账户锁定。
  • 密码过期后的宽限天数(Password Inactivity Period):密码过期后,用户在多少天内仍然可以登录系统,但会被要求更改密码。超过这个期限,账户可能会被锁定。
  • 账户过期日期(Account Expiration Date):以从 1970 年 1 月 1 日以来的天数表示。设定账户的过期时间,超过这个日期,账户将无法登录。
  • 保留字段(Reserved Field):目前未被定义具体用途,通常留作将来扩展使用。

二、查看组信息

  1. 使用命令cat /etc/group每一行代表一个用户组,其格式为:

group_name:password:GID:user_list

  • group_name:用户组的名称。
  • password:用户组的密码,通常是 “x” 或者被存储在 /etc/gshadow文件中,现在很少使用这个字段设置密码。
  • GID:用户组的唯一标识符(Group ID)。
  • user_list:属于该用户组的用户名列表,多个用户之间用逗号分隔。如果该字段为空,表示没有用户属于这个组。
  1. 组密码及相关管理信息
  • 使用命令cat /etc/gshadow每一行代表一个用户组,其格式为:
group_name:password:administrators:members

image.png
- group_name:用户组的名称。

- password:用户组的密码。这个密码通常是加密存储的,并且很少被直接使用。现在大多数系统中,用户组密码的管理通常通过专门的工具或命令来进行,而不是直接在这个文件中设置密码。

- administrators:可以管理该用户组的用户列表,多个用户之间用逗号分隔。这些用户通常具有对该用户组进行管理的权限,例如添加或删除组成员等。

- members:属于该用户组的用户列表,与/etc/group文件中的user_list类似。多个用户之间也用逗号分隔。如果该字段为空,表示没有用户属于这个组。

三、添加用户相关命令

在 Linux 系统中,useradd命令用于创建新的用户账户。

(一)基本语法

useradd [选项] 用户名

(二)主要功能

  1. 创建用户账户
    • useradd会在系统中创建一个新的用户,为其分配一个唯一的用户 ID(UID)。
    • 同时,根据系统的默认设置或指定的选项,为用户创建主目录、设置默认的 shell 等。
  2. 配置用户属性
    • 可以通过选项来指定用户的主组(-g选项)、附加组(-G选项)、用户说明(-c选项)等属性。
    • 例如,可以将新用户添加到特定的用户组中,以便控制其对系统资源的访问权限。
  3. 设置密码策略
    • 虽然useradd本身不设置用户密码,但可以结合passwd命令为新用户设置密码。
    • 可以通过系统的密码策略配置来限制密码的复杂度、有效期等。

(三)常用选项

  1. -u UID:指定用户的 UID。如果不指定,系统会自动分配一个未被使用的 UID。
  2. -g group:指定用户的主组。可以是组名或 GID。
  3. -G groups:指定用户的附加组,可以是多个组名或 GID,用逗号分隔。
  4. -d home_directory:指定用户的主目录。如果不指定,系统会根据默认规则创建主目录。
  5. -s shell:指定用户的默认 shell。例如,/bin/bash/bin/sh等。
  6. -c comment:为用户添加注释信息,通常用于描述用户的用途或身份。

(四)示例用法

  1. 创建一个名为newuser的用户,使用默认设置:
    • useradd newuser
    • 这将创建一个新用户,系统会自动分配 UID、主目录和默认 shell。
  2. 创建一个用户并指定主组和附加组:
    • useradd -g group1 -G group2,group3 newuser2
    • 这个命令将创建一个名为newuser2的用户,主组为group1,附加组为group2group3
  3. 创建一个用户并指定主目录和 shell:
    • useradd -d /home/customdir -s /bin/zsh newuser3
    • 此命令创建一个名为newuser3的用户,主目录为/home/customdir,默认 shell 为/bin/zsh

四、组相关命令

在 Linux 系统中,groupadd命令用于创建新的用户组。

(一)基本语法

groupadd [选项] 组名

(二)主要功能

  1. 创建用户组
    • groupadd命令在系统中创建一个新的用户组,并为其分配一个唯一的组 ID(GID)。
    • 新创建的用户组可以用于将多个用户组织在一起,以便进行权限管理和资源共享。
  2. 配置用户组属性
    • 可以通过选项来指定用户组的 GID(-g选项)。如果不指定,系统会自动分配一个未被使用的 GID。
    • 还可以使用-r选项创建系统用户组,通常用于系统服务和进程。

(三)常用选项

1.-g GID:指定用户组的 GID。如果不指定,系统会自动分配一个 GID。
2.-r:创建系统用户组。系统用户组的 GID 通常在一个特定的范围内,用于系统服务和进程,而不是普通用户。
3.-f:如果指定的用户组已经存在,此选项可以强制不显示错误信息,并且如果指定了-g选项,会更改已存在用户组的 GID。

(四)示例用法

  1. 创建一个名为newgroup的用户组:
    • groupadd newgroup
    • 这将在系统中创建一个名为newgroup的用户组,系统会自动分配一个 GID。
  2. 创建一个用户组并指定 GID:
    • groupadd -g 1234 mygroup
    • 这个命令将创建一个名为mygroup的用户组,其 GID 为 1234。
  3. 创建一个系统用户组:
    • groupadd -r sysgroup
    • 此命令创建一个名为sysgroup的系统用户组,系统会为其分配一个在系统用户组范围内的 GID。

五、修改组群、修改 gid、修改组群名称

在 Linux 系统中,可以使用groupmod命令来修改组群信息,包括修改 GID、修改组群名称等。

(一)语法

groupmod [选项] 组名

(二)主要功能

  1. 修改组群 GID:使用-g选项可以指定新的 GID。
  2. 修改组群名称:使用-n选项可以指定新的组群名称。

(三)常用选项

  1. -g GID:将组群的 GID 修改为指定的新 GID。
  2. -n new_group_name:将组群名称修改为指定的新名称。

(四)示例用法

  1. 修改组群 GID:
    • groupmod -g 5555 old_group_name
    • 这个命令将组群old_group_name的 GID 修改为 5555。
  2. 修改组群名称:
    • groupmod -n new_group_name old_group_name
    • 此命令将组群old_group_name的名称修改为new_group_name

版权声明:
作者:Gweek
链接:https://bbs.geek.nyc.mn/archives/48
来源:Gweek postHub
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
< <上一篇
下一篇>>
文章目录
关闭
目 录