前言:
Linux用户管理是指对Linux系统中的用户进行管理和控制的一系列操作和命令。它是Linux系统管理的重要组成部分,决定了系统中的用户可以访问哪些资源,以及对这些资源的权限限制。
通过用户管理,可以实现以下功能:
- 用户分组:根据用户的角色或职责,将他们分配到不同的组中,便于管理和控制。
- 权限分配:为不同的用户或用户组分配不同的权限,控制他们对系统资源的访问和操作。
- 用户帐号保护:通过密码策略、帐号锁定等方式,保护用户帐号的安全。
- 密码管理:设置和修改用户的密码,确保帐号的安全。
Linux提供了丰富的用户管理命令和工具,例如useradd、passwd等。这些命令可以用于创建新用户、设置用户密码、修改用户属性等。
此外,Linux用户管理还需要考虑一些最佳实践,如使用强密码、限制root账户访问、定期审查用户账户等,以确保系统的安全性。
root用户
在Linux系统中,root用户是超级用户,拥有系统中所有的权限。root用户可以对系统进行完全的控制和管理,执行任何操作,包括启动或停止进程、删除或增加用户、增加或禁用硬件等。root用户具有等同于操作系统的权限,是系统中唯一的超级管理员。
root用户的权限极高,可以超越任何用户和用户组对文件或目录进行读取、修改或删除操作。在Linux中,通过UID(用户标识符)来区分用户权限级别,UID为0的用户被系统认定为具有超级权限,即root权限。
然而,正因为root用户具有如此强大的权限,使用它时也伴随着较大的安全风险。错误的命令操作或恶意程序的运行可能导致系统崩溃或被入侵。因此,使用root用户时要特别慎重,并尽量遵循安全操作的原则。
在日常的Linux系统管理中,建议尽量避免直接使用root用户,而是使用具有适当权限的普通用户来执行任务。当确实需要执行需要root权限的操作时,可以使用sudo(superuser do)命令来临时提升权限,而不是长期以root用户身份登录。这样可以在保证系统安全性的同时,满足管理需求。
普通用户,切换其他用户,需要输入密码。
root用户,切换其他用户,无需输入密码。
sudo命令
为普通用户的命令授权,临时以root用户的身份执行。
语法:sudo 其他命令
在使用sudo命令前,需要配置sudo认证。
sudo认证
1、确认sudo已经安装
开始配置sudo认证之前,需要确认系统中已经安装sudo。在命令行中输入以下命令
sudo -V
2、切换到root用户
sudo认证必须是由root用户执行,所以先切换到root用户
su -root
3、配置相关文件
在终端中执行以下命令
visudo
进来之后, 在文本的最后(按shitf + g)添加以下数据
用户名 ALL=(ALL) NOPASSWD:ALL
输入完后,按ESC键,再按冒号,最后输入wq,按回车退出vi编辑器。
4、最后验证sudo配置
输入exit返回普通用户
执行以下命令验证sudo配置完成
sudo -ls
这样就算是完成了sudo的配置,可以让普通用户使用sudo命令临时使用root用户的权限。
切换用户:su命令
语法:su - [用户名]
当不输入用户名时,默认切换root用户。
用户组:
在Linux系统中,用户组(group)是一个用于组织和管理用户的机制。用户组允许系统管理员将多个用户归并到一个组中,并对该组分配特定的权限和资源访问控制。通过用户组,可以更加有效地管理和控制用户对系统资源的访问。
每个用户组都有一个唯一的组ID(GID),用于标识该组。当创建新用户时,可以将该用户分配到一个或多个用户组中。一个用户可以是多个组的成员,而一个组也可以包含多个用户。
用户组的主要作用有以下几点:
-
权限管理:系统管理员可以为用户组分配特定的权限,而不是单独为每个用户分配权限。这样,属于同一个组的用户将共享相同的权限设置,简化了权限管理过程。
-
资源访问控制:用户组可以用来控制对特定文件、目录或设备的访问。通过设置文件或目录的组权限,可以限制只有特定组的成员才能访问或修改这些资源。
-
继承性:新创建的用户默认属于某个用户组(通常是与该用户同名的组),并继承该组的权限。这使得新用户能够自动获得一些基本的系统访问权限。
在Linux中,有几个特殊的用户组:
-
root组:具有最高权限的组,只有root用户属于该组。root组的成员可以执行任何操作,对系统具有完全的控制权。
-
系统组:用于管理系统进程和服务的组。这些组通常包含执行特定任务的守护进程或系统账户。
-
普通用户组:由系统管理员创建,用于组织和管理普通用户。这些组可以根据实际需要创建,并根据用户的角色和职责分配相应的权限。
使用用户组可以简化权限管理,提高系统的安全性和可管理性。通过合理地分配用户和组,并设置适当的权限,可以确保系统资源的正确访问和保护。
创建用户组和删除用户组:
注:该两个命令皆需root用户权限执行
创建用户组:groupadd命令
语法:groupadd 用户组名
删除用户组:groupdel命令
语法:groupdel 用户组名
注意:
- 在使用
groupdel
命令删除一个组之前,请确保该组中没有用户。如果组中有用户,那么需要先将这些用户从该组中移除,或者将其移动到另一个组,然后再删除该组。 - 使用这些命令通常需要管理员(root)权限。因此,需要使用
sudo
命令来执行它们。例如:sudo groupadd mygroup
。
创建用户和删除用户:
创建用户:useradd命令
语法:useradd [-g -d] 用户名
-g ---------------------------------指定用户的组;不使用,则会创建同名组
-d ---------------------------------指定用户的HOME路径;不使用,则在:/home/用户名
删除用户:userdel命令
语法:userdel [-r] 用户名
-r ------------------------------删除用户的HOME目录
查看用户所属组:id命令
语法:id [用户名]
用户名 -------------------被指定查看的用户;不使用,则查看自身
修改用户所属组:usermod命令
语法:usermod -aG 用户组 用户名
将指定用户加入指定用户组
-l | 修改用户名 |
-u | 修改用户的用户ID |
-g | 修改用户的主组 |
-G | 修改用户的附加组 |
-d | 修改用户的主目录 |
-m | 与-d一起使用,将原主目录的内容移动到新的主目录 |
-s | 修改用户的登录shell |
-c | 修改用户的描述信息 |
-L | 锁定用户账号,锁住用户的密码 |
-U | 解锁用户账号 |
示例:
1、将用户名从olduser修改为newuser
usermod -l newuser olduser
2、将用户user1的UID修改为1001
usermod -u 1001 user1
3、将用户username的主目录更改为/home/newhome,并移动原目录内容到新目录
usermod -d /home/newhome -m username
4、将用户testuser的默认shell修改为/bin/bash
usermod -s /bin/bash testuser
5、将用户testuser添加到附加组group1 和group2中
usermod -aG group1,group2 testuser
6、修改用户lx的名称为lianxi
usermod -c lianxi lx
7、锁定用户lx的账户,锁住密码
usermod -L lx
8、解锁用户lx的账户
usermod -U lx
查看用户组:getent group
getent group
返回每行三条信息,从左至右分别是:组名称:组认证:组ID
查看当前系统中有哪些用户:getent passwd
getent passwd
返回每行七条信息,从左至右分别是:用户名:密码:用户ID:组ID:描述信息:HOME目录:执行终端(默认bash)