Linux中用户创建及授权

本篇主要整理Linux中用户的相关内容,包括创建,授权,删除等

首先熟悉用户管理的相关命令使用。

1、查看用户的信息

  • 查看所有用户列表:cat /etc/passwd
  • 查看特定用户信息:id 用户名
  • 查看用户组信息:getent group 组名

比如使用以下命令:

复制代码
id xx

使用id命令来获取指定用户名的用户信息。执行该命令后,将输出与xx用户相关的信息,包括用户ID(UID)、所属组ID(GID)以及附加组ID(Groups)等。

比如:查看root用户信息;

在大多数基于Linux的系统中,用户信息是存储在/etc/passwd文件中,也可以通过使用cat命令查看系统中的用户配置文件来获取更详细的用户信息。比如可以运行以下命令来查看用户root的详细信息:

复制代码
cat /etc/passwd | grep root
  • root:用户名。
  • x :第二个字段通常包含一个 "x",表示该用户的加密密码存储在 /etc/shadow 文件中。
  • 0:第三个字段表示用户的用户ID(UID)。在此情况下,UID 设置为 0,表示 root 用户。
  • 0:第四个字段表示与用户关联的组ID(GID)。同样,它被设置为 0,表示 root 组。
  • root:第五个字段是用户的全名或描述。
  • /root:第六个字段指定用户的主目录。
  • /bin/bash:第七个字段表示用户的默认 shell。

2、创建用户

使用useradd命令可以创建新的用户账户。

复制代码
useradd [选项] 用户名

常用选项包括:

  • -c, --comment:为用户添加注释,通常是用户的全名或描述。
  • -d, --home:指定用户的家目录路径。
  • -g, --gid:设置用户的主组ID。
  • -G, --groups:指定用户所属的附加组ID列表。
  • -s, --shell:指定用户的默认shell。
  • -m, --create-home:在创建用户时,自动创建用户的家目录。
  • -p, --password:设置用户的密码,需要使用经过加密的密码。
  • -e, --expiredate:设置用户的过期日期,格式为YYYY-MM-DD。

3、设置用户密码

复制代码
passwd username

系统会提示你输入新密码并进行确认。

为了安全起见,建议设置足够长的密码,通常至少包含8个字符,并且要使用各种字符类型(字母、数字和特殊字符)的组合。这样可以增加密码的复杂性,提高密码的安全性。

注意:

假如遇到 "无效的密码:密码未通过字典检查 - 过于简单化/系统化" 错误消息时,这意味着您输入的密码被认为过于简单或符合常见密码模式,因此被系统拒绝。

在创建用户时,Linux系统通常会执行密码策略来确保密码的复杂性和安全性。这些策略可能包括以下要求:

  1. 密码长度要求:密码长度必须达到一定的最小值。
  2. 大小写字母要求:密码中必须包含大写和小写字母。
  3. 数字要求:密码中必须包含数字字符。
  4. 特殊字符要求:密码中必须包含特殊字符(如@$!等)。

如果您的密码不符合这些要求,系统将拒绝接受该密码,并显示类似的错误消息。

为了创建一个有效的密码,建议您采取以下步骤:

  1. 使用至少8个字符的较长密码。
  2. 结合大小写字母、数字和特殊字符,以增加密码的复杂性。
  3. 避免使用常见的字典词汇、姓名、生日等容易猜测的内容。
  4. 尽量避免使用连续字符或重复字符的模式。
  5. 定期更改密码以增强安全性。

4、用户组管理

用户组的管理包括创建、删除和修改组信息。

  • 创建组:groupadd 组名

  • 删除组:groupdel 组名

  • 修改组成员:usermod -aG 组名 用户名

    groupadd [选项] 组名

常见选项包括:

  • -g, --gid:指定用户组的组ID(GID),如果不提供则由系统自动分配。
  • -r, --system:创建一个系统用户组,其GID通常小于1000,并且不会出现在登录界面的用户列表中。
  • -f, --force:即使用户组已经存在,也强制创建该用户组。

5、设定权限

Linux中权限管理主要通过文件和目录的权限设置来实现。使用chmod命令可以更改文件或目录的权限。

复制代码
chmod [选项] 权限 用户/组 文件/目录

权限可以用符号表示法(如u+rwx)或数字表示法(如755)来设置。

示例:

复制代码
chmod u+rwx,g+rx,o+r 文件名

或者使用数字表示法:
chmod 754 文件名

6、用户切换

使用su命令可以切换到另一个用户,或者切换到超级用户(root)。

复制代码
su - 用户名

要切换到root用户,可以使用su命令(即"切换用户")并提供root用户的密码。

复制代码
su -

执行此命令需要输入root用户的密码,并且您必须具有root用户的凭据或相应的权限才能切换到root用户。

7、用户登录与注销(Login and Logout)

用户可以使用login命令登录系统,或者使用logout命令退出当前会话。

8、用户Shell配置文件(Shell Configuration Files)

用户的shell配置文件,如.bashrc.profile,可以在用户登录时自动执行,用于设置环境变量、别名等。

9、示例运用

1.查看系统用户明细:

2.创建用户user3:

3.修改密码:

这里设置user3的密码是:Long0714

4.修改用户信息

修改用户组:

对于用户"user3"的id命令输出进行分析:

  • uid=1003(user3):这表示用户"user3"的用户ID(UID)是1003,并显示用户名为"user3"。
  • gid=1001(group2):这表示用户"user3"所属的主要组ID(GID)是1001,并显示组名为"group2"。
  • 组=1001(group2):这表示用户"user3"还属于其他附加组,其中组ID为1001,组名为"group2"。

综上所述,用户"user3"的相关信息如下:

  • 用户名:user3
  • 用户ID(UID):1003
  • 主要组ID(GID):1001
  • 其他附加组:1001 (group2)

修改密码过期时间:

要查看密码过期时间是否成功修改,您可以使用chage命令来检查用户密码的详细信息。

如果密码过期日期已经成功修改,则输出可能类似于以下内容:

复制代码
Last password change					: Dec 25, 2021
Password expires					: Dec 31, 2022
Password inactive					: never
Account expires						: never
Minimum number of days between password change		: 0
Maximum number of days between password change		: 365
...

5.授权

命令的含义是:

  • u+rwx:给用户(所有者)添加读、写和执行权限。
  • g+rx:给组(所属组)添加读和执行权限。
  • o+r:给其他人添加读权限。

这样一来,用户"user3"拥有者及其所属组的成员以及其他人都能够按照指定的权限读取或操作该文件。

chmod 754 文件名 将产生与上述命令相同的结果。

在执行ls -l /home/user3 命令后的输出显示总用量为0。这表示用户"user3"的家目录(/home/user3)当前为空,没有文件或子目录。

因为ls -l命令用于列出文件和目录的详细信息,而-l选项会显示更多的信息,包括权限、所有者、所属组、文件大小、修改日期等。

仅查看/home就行:

6.用户切换

提前给user3用户的目录下复制一个文件:

切换用户user3:

再切换到root:

如果不想开机后切换用户,可以在xshell终端中直接登录user3:

7.删除用户"user3"

可以使用userdel命令。请按照以下步骤执行:

  1. 以root用户身份登录或使用具有管理员权限的账户。

  2. 执行以下命令来删除用户"user3":

    复制代码
    userdel user3

    这将删除用户"user3"及其相关的用户文件和目录。

    如果您想要同时删除与用户关联的家目录和邮箱,请使用以下命令:

    复制代码
    userdel -r user3

    -r选项会递归删除用户的家目录和邮件目录。

删除用户可能需要管理员权限或root用户身份才能执行。确保在进行此操作之前备份用户数据

相关推荐
无证驾驶梁嗖嗖3 分钟前
ubuntu22鼠键失灵恢复记录笔记chatgpt解决
运维
带鱼吃猫31 分钟前
Linux系统:ext2文件系统的核心概念和结构
linux·运维·服务器
qwer5558836 分钟前
linux-----------------库制作与原理(下)
linux·运维·服务器
m0_5195231040 分钟前
Linux——UDP/TCP协议理论
linux·tcp/ip·udp
vortex51 小时前
Bash fork 炸弹 —— :(){ :|:& };:
运维·服务器·开发语言·网络安全·bash
xmweisi021 小时前
【Linux】ssh命令 – 安全的远程连接服务
linux·安全·ssh
Blossom.1181 小时前
基于区块链技术的供应链溯源系统:重塑信任与透明度
服务器·网络·人工智能·目标检测·机器学习·计算机视觉·区块链
Pacify_The_North1 小时前
【进程控制二】进程替换和bash解释器
linux·c语言·开发语言·算法·ubuntu·centos·bash
ephemerals__1 小时前
【Linux】简易版Shell实现(附源码)
linux·运维·chrome
JeffersonZU1 小时前
【shell】shell和shell脚本简介
linux·ubuntu·bash