Linux用户管理

1.了解用户和组的意义

1.1用户/组概览

  1. 用户(User):用户是系统中的个体,每个用户都有唯一的用户名(Username)和用户标识号(User ID,UID)。用户可以拥有自己的个人目录(Home Directory),并对系统中的资源进行操作。每个用户都可以拥有不同的权限和访问权限,以控制对文件和目录的访问。

  2. 组(Group):组是一组相关用户的集合,每个组都有唯一的组名(Group Name)和组标识号(Group ID,GID)。组可以用于管理用户,将用户分类和授权,以及组织用户之间的协作。每个用户可以同时属于一个或多个组。

在Linux系统中,用户和组的相关信息存储在系统的密码文件(/etc/passwd)和组文件(/etc/group)中。用户信息包括用户名、用户ID、用户组ID、个人目录等,而组信息包括组名、组ID、组成员等。

通过管理用户和组,管理员可以控制系统中用户的访问权限、资源管理和安全性。可以使用各种命令和工具来创建、删除、修改用户和组,以及配置他们的权限和属性。

需要注意的是,Linux系统中还有超级用户(root),超级用户具有系统的最高权限,可以执行所有操作,包括用户和组的管理。

1.2 用户标识:UID与GID

在Linux系统中,每个用户和组都有唯一的标识符,分别是用户标识(User ID,UID)和组标识(Group ID,GID)。

用户标识(UID)是一个数字,用于唯一标识一个用户。在Linux系统中,UID为0的用户是超级用户(root),具有系统的最高权限。其他用户的UID通常是从1开始依次递增分配的。UID也可以是负数,用于表示特殊用户或系统用户。

组标识(GID)也是一个数字,用于唯一标识一个组。在Linux系统中,每个组都有一个唯一的GID。与用户类似,GID为0的组是超级组(root组),具有特殊权限。其他组的GID通常从1开始依次递增分配。

用户和组的标识符在系统中的密码文件(/etc/passwd)和组文件(/etc/group)中进行存储和管理。这些文件中包含了用户和组的相关信息,包括用户名、密码、UID、GID等。

用户和组的标识符对于系统资源的访问和权限管理非常重要。文件和目录的所有权和访问权限是通过用户和组的标识符来控制的。管理员可以根据需要配置用户和组的权限,以确保系统的安全性和资源管理。

1.3用户/组相关文件

在Linux系统中,用户和组的相关信息存储在以下几个文件中:

    1. /etc/passwd:这个文件包含了系统中所有用户的基本信息,每行对应一个用户。每行包含了用户名、加密后的密码(现在通常是存储在/etc/shadow文件中)、UID、GID、用户描述信息、用户家目录和默认shell等。这个文件对于系统的用户管理非常重要。

    2. /etc/shadow:这个文件包含了用户的密码哈希值和其他与密码相关的设置。因为密码是敏感信息,所以通常会将密码存储在这个文件中,并通过权限设置只允许root用户访问。

    3. /etc/group:这个文件包含了系统中所有组的基本信息,每行对应一个组。每行包含了组名、加密后的密码(现在通常是存储在/etc/gshadow文件中)、GID和该组所包含的用户列表。

    4. /etc/gshadow:这个文件包含了与组密码相关的信息,类似于/etc/shadow文件。与密码相关的信息存储在这个文件中,并通过权限设置只允许root用户访问。

这些文件的权限通常设置为只允许root用户读取和修改,以确保系统的安全性。管理员可以使用命令行工具(如useraddusermodgroupaddgroupmod等)或图形界面工具来管理用户和组的相关信息,这些工具会自动更新这些文件。

2.掌握创建、修改与删除用户/组的方法

2.1创建用户/组

1.创建用户:

使用useradd命令可以创建一个新的用户。以下是创建用户的基本语法:

useradd [选项] 用户名

例如,要创建一个名为sgw的用户,可以运行以下命令:

useradd sgw

运行上述命令后,系统将会创建一个新的用户sgw,并为其分配一个默认的用户ID(UID)和组ID(GID),并将其添加到/etc/passwd/etc/shadow文件中。用户的家目录默认会创建在/home目录下,名称为/home/sgw

还可以使用useradd命令的其他选项来自定义用户的属性,如指定用户ID、家目录、默认shell等。可以通过运行man useradd命令来查看更多选项的使用说明。

 

2.创建组:

使用groupadd命令可以创建一个新的组。以下是创建组的基本语法:

groupadd [选项] 组名

例如,要创建一个名为SGW的组,可以运行以下命令:

groupadd SGW

  

运行上述命令后,系统将会创建一个新的组SGW,并为其分配一个组ID(GID),并将其添加到/etc/group/etc/gshadow文件中。

同样,可以使用groupadd命令的其他选项来自定义组的属性,如指定组ID等。可以通过运行man groupadd命令来查看更多选项的使用说明。

2.2 删除用户/组

 

1.删除用户:

使用userdel命令可以删除一个用户。以下是删除用户的基本语法:

 

userdel [选项] 用户名

例如,要删除名为sgw的用户,可以运行以下命令:

userdel sgw

运行上述命令后,系统将会删除用户sgw,并从/etc/passwd/etc/shadow文件中移除对应的条目。

请注意,这个命令只会删除用户,但不会删除与用户相关的文件和目录。

还可以使用userdel命令的其他选项来删除用户时同时删除用户的家目录和邮箱等。可以通过运行man userdel命令来查看更多选项的使用说明。

 

2.删除组:

使用groupdel命令可以删除一个组。以下是删除组的基本语法:

groupdel [选项] 组名

例如,要删除名为SGW的组,可以运行以下命令:

groupdel SGW

运行上述命令后,系统将会删除组SGW,并从/etc/group/etc/gshadow文件中移除对应的条目。

注意,如果组中还有用户存在,则无法直接删除该组。可以通过groupmod命令先将组中的用户移除,然后再使用groupdel命令删除组。可以通过运行man groupdel命令来查看更多选项的使用说明。

在删除用户和组之前,请确保你已经备份了相关的文件和数据,并且在删除之前已经妥善处理了用户和组的权限和关联关系。

2.3修改用户密码

使用passwd命令来修改当前登录用户的密码。以下是修改密码的基本语法:

 
passwd [选项] [用户名]

如果没有指定用户名,则passwd命令将会修改当前登录用户的密码。

例如,要修改当前登录用户的密码,可以运行以下命令:

passwd

运行上述命令后,系统将会要求输入新的密码并进行确认。

 使用passwd命令来修改其他用户的密码。以下是修改密码的基本语法:

passwd [选项] 用户名

例如,要修改名为tyu的用户的密码,可以运行以下命令:

passwd tyu

运行上述命令后,系统将会要求输入新的密码并进行确认。

注意,修改其他用户的密码需要root权限。

2.4安全用户

1.创建新用户:使用useradd命令创建新用户,例如:

sudo useradd -m -s /bin/bash newuser

这将创建一个名为newuser的新用户,并创建一个与用户名相同的主目录。

2.设置用户密码:使用passwd命令设置新用户的密码,例如:

sudo passwd newuser

3.分配用户权限:将新用户添加到适当的用户组中,以授予相应的权限。例如,将新用户添加到sudo用户组,以获得管理员权限:

sudo usermod -aG sudo newuser

4.管理用户权限:使用visudo命令编辑/etc/sudoers文件,以为用户分配特定的sudo权限。例如,将用户newuser添加到sudoers文件中:

sudo visudo

在文件中找到%sudo行,在该行下面添加:

newuser  ALL=(ALL:ALL) ALL

保存并退出文件。

5.禁用不必要的系统账户:禁用不需要的系统账户,以减少系统的攻击面。可以使用usermod命令将账户锁定或设置密码过期。例如,锁定用户账户:

sudo usermod -L username

或者设置密码过期:

sudo chage -E 0 username

请根据实际需求选择适当的方法。

3.熟悉用户相关配置文件

要管理用户配置文件,可以编辑以下文件来自定义用户的设置:

1. `/etc/passwd`:此文件包含系统中所有用户的基本信息,如用户名、用户ID、用户组ID、主目录和默认shell等。

2. `/etc/shadow`:此文件包含用户的密码散列值和密码过期信息。只有`root`用户才能读取和编辑此文件。

3. `/etc/group`:此文件包含系统中所有用户组的信息,如组名、组ID和所属用户列表等。

4. `~/.bashrc`:这是用户的bash配置文件,用于自定义shell的行为。可以在此文件中添加别名、环境变量和其他shell配置。

5. `~/.bash_profile`:这是用户的登录bash shell的配置文件。可以在此文件中设置登录时要执行的命令和脚本。

6. `~/.profile`:这是用户的登录shell的配置文件,通常由`bash`和其他shell使用。可以在此文件中设置登录时要执行的命令和脚本。

7. `~/.ssh/authorized_keys`:如果用户启用了SSH公钥身份验证,则可以将公钥添加到此文件中,以允许特定的私钥访问用户帐户。

注意,在编辑任何系统配置文件之前,务必备份文件,以防止错误的更改导致系统不稳定。同时,对于用户配置文件,只有用户自己或具有适当权限的管理员才能编辑它们。

4.熟悉用户身份切换与提权

当登录到Linux系统时,以一个用户的身份登录。这个用户可能只有有限的权限来执行特定的操作。然而,有时可能需要切换到其他用户的身份,以获得更高的权限来执行某些任务。以下是一些常见的用户身份切换和提权技术:

1. `su`命令:`su`命令用于切换到其他用户账户。默认情况下,它会切换到`root`用户。例如,要切换到`root`用户,可以使用以下命令:

su -

输入`root`用户的密码后,您将切换到`root`用户身份。

2. `sudo`命令:`sudo`命令用于以其他用户的身份执行命令。它允许您在不直接切换用户的情况下以特权身份执行命令。例如,要以`root`用户身份执行命令,可以使用以下命令:

sudo command


您需要输入当前用户的密码来验证授权。

3. `/etc/sudoers`文件:`/etc/sudoers`文件包含`sudo`命令的配置信息。只有具有适当权限的用户可以编辑此文件。通过编辑此文件,您可以为特定用户或用户组提供特定的`sudo`权限。

4. `sudo -i`命令:`sudo -i`命令用于以`root`用户身份启动新的交互式shell会话。它类似于使用`su -`命令切换到`root`用户,但是在`sudo -i`命令中,您需要输入当前用户的密码,而不是`root`用户的密码。

5. `sudo su -`命令:`sudo su -`命令也用于以`root`用户身份启动新的交互式shell会话。它类似于使用`sudo -i`命令,但是在`sudo su -`命令中,您需要输入当前用户的密码,而不是`root`用户的密码。

请注意,在执行特权操作时,务必小心谨慎,以免意外地对系统造成损坏或安全漏洞。只有在必要时才使用特权操作,并确保仅为需要它们的用户授予适当的权限。

学习总结

  用户和组是操作系统中管理和控制用户访问权限的重要概念。用户是系统中的个体,每个用户都有自己的用户名和密码,用于登录系统并访问资源。组是一组用户的集合,可以将一些用户归为同一组,以便更好地管理和分配权限。

  创建用户可以通过命令行工具如useradd或者在系统管理界面中进行操作。用户的基本信息保存在/etc/passwd文件中,包括用户名、用户ID、用户所属组ID、用户家目录等。密码则保存在/etc/shadow文件中,以加密形式存储。

  创建组可以通过命令行工具如groupadd或者在系统管理界面中进行操作。组的基本信息保存在/etc/group文件中,包括组名、组ID、组成员等。

  修改用户/组的属性可以使用命令行工具如usermod或者groupmod来进行操作。可以修改用户名、用户所属组、用户家目录等属性。同样地,也可以使用相应的命令行工具来修改组的属性。

  删除用户/组可以使用命令行工具如userdel或者groupdel来进行操作。删除用户时,需要注意是否还有该用户创建的文件或者进程在运行,以免造成数据丢失或者系统异常。

  用户身份切换是指在一个用户登录的会话中,临时切换到另一个用户的身份,并获取该用户的权限。可以使用命令行工具如su或者sudo来进行用户身份切换。su命令可以切换到其他用户的身份,并要求输入密码;sudo命令可以在当前用户的权限下执行指定用户的命令。

  提权是指将普通用户的权限提升为超级用户(root)权限的过程。可以使用命令行工具如su或者sudo来进行提权操作。su命令可以切换到root用户的身份,并要求输入root用户的密码;sudo命令可以在当前用户的权限下执行root用户的命令,但需要输入当前用户的密码。提权时需要谨慎操作,避免误操作导致系统安全问题。

posted @   唐屿  阅读(79)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示