文章目录
- 概念
- 用户账户
- 用户组
- 用户权限
- 用户管理工具
概念
用户管理是Linux系统管理员必须掌握的重要技能之一。Linux系统是一个多用户操作系统,可以支持多个用户同时使用,每个用户拥有自己的账户和权限,因此管理员需要了解如何创建、管理和删除用户账户,并设置用户权限以及如何为用户分配组和角色等。在本篇博客中,我将详细讨论Linux用户管理的各个方面,以及常见的用户管理工具和技巧,帮助读者掌握Linux用户知识。
用户账户
用户账户是Linux系统中的基本概念,每个用户都有一个唯一的账户名和密码,用于登录系统并执行各种操作。管理员可以创建、修改和删除用户账户,以及配置用户的权限和属性。
- 创建用户账户
在Linux系统中,可以使用useradd命令来创建用户账户。语法如下:
useradd [选项] 用户名
例如,要创建一个名为bob的用户,可以使用以下命令:
useradd bob
执行该命令后,系统会自动为bob用户创建一个主目录/home/bob,并分配一个默认的shell/bin/bash。如果需要指定其他的shell或目录,可以使用以下选项
-m
:自动创建用户的主目录-s shell
:指定用户的默认shell。-c
:设置用户的注释信息。-d
:指定用户的主目录。-g
:指定用户所属的主组。
例如,以下命令将创建一个名为“john”的新用户,并将其主目录设置为“/home/john”,默认Shell设置为“/bin/bash”:
useradd -d /home/john -s /bin/bash john
- 修改用户账户
管理员可以使用usermod命令修改现有的用户账户。例如,要将bob用户的默认shell修改为/bin/zsh,可以使用以下命令:
usermod -s /bin/zsh bob
还可以使用usermod命令修改用户的UID、GID、主目录和登录名等属性。例如,要将alice用户的UID修改为1001,可以使用以下命令:
usermod -u 1001 alice
- 删除用户账户
在不需要某个用户账户时,可以使用userdel命令将其删除。例如,要删除bob用户的账户和主目录,可以使用以下命令:
userdel -r bob
其中,-r选项表示同时删除用户主目录。
- 修改用户密码
在Linux系统中,可以使用passwd命令来修改用户的密码。以下是修改用户密码的基本命令:
passwd 用户名
在执行上述命令时,系统会提示您输入新密码。请注意,在Linux系统中,密码不会在命令行中显示。
- 切换用户
在Linux系统中,可以使用su命令来切换用户。以下是切换用户的基本命令:
su 用户名
在执行上述命令时,系统会提示您输入目标用户的密码。当高权限用户切换低权限用户时,不需要输入密码
用户组
用户组是一组相关用户的集合,它们共享相同的权限和属性。在Linux系统中,每个用户都必须属于至少一个用户组。管理员可以创建、修改和删除用户组,以及将用户添加到不同的组中。
- 创建用户组
在Linux系统中,可以使用groupadd命令来创建用户组。例如,要创建一个名为dev的用户组,可以使用以下命令:
groupadd dev
- 修改用户组
管理员可以使用groupmod命令修改现有的用户组。例如,要将dev用户组的GID修改为1001,可以使用以下命令:
groupmod -g 1001 dev
还可以使用groupmod命令修改用户组的名称。例如,要将dev用户组的名称修改为developers,可以使用以下命令:
groupmod -n developers dev
- 删除用户组
在不需要某个用户组时,可以使用groupdel命令将其删除。例如,要删除developers用户组,可以使用以下命令:
groupdel developers #保留用户文件
groupdel -r developers #不保留用户文件
用户权限
Linux系统中的文件和目录都有一些权限属性,包括读、写、执行等。用户可以通过权限属性来控制对文件和目录的访问和操作。管理员可以通过用户权限来控制用户的访问和操作范围。
- 文件和目录权限
Linux系统中,每个文件和目录都有一个所有者和一个所属用户组。所有者和用户组可以分别设置读、写和执行权限。管理员可以使用chmod命令来修改文件和目录的权限属性。
在Linux系统中,每个文件或目录都有三种不同类型的访问权限,分别是读取(r)、写入(w)和执行(x)。这些权限是分配给三个不同的用户组,包括文件所有者、文件所属组和其他用户。
chmod命令的语法格式如下:
chmod [who][operator][permission] file
其中,who代表要设置权限的用户组,operator表示要执行的操作,permission表示要设置的权限。
who的取值包括:
- u:表示文件所有者
- g:表示文件所属组
- o:表示其他用户
- a:表示所有用户(等价于ugo)
operator的取值包括:
+
:表示添加权限-
:表示删除权限=
:表示设置权限为指定值
permission的取值包括:
- r:表示读取权限
- w:表示写入权限
- x:表示执行权限
- s:表示设置SUID或SGID位
- t:表示设置粘着位
例如,要将文件test.txt的所有者的写权限关闭,可以使用以下命令:
chmod u-w test.txt
chmod命令也可以使用数字修改文件权限
r --> 4
w --> 2
x --> 1
拿 rwxrw-r-x 来说,所有者、所属组和其他人分别对应的权限值为:
所有者 = rwx = 4+2+1 = 7
所属组 = rw- = 4+2 = 6
其他人 = r-x = 4+1 = 5
所以,此权限对应的权限值就是 765。
例如:打开file.txt文件的所有权
chmod 777 file.txt
- sudo权限
在Linux系统中,管理员可以通过sudo命令将某个普通用户提升为管理员用户,以便其执行需要管理员权限的操作。管理员可以使用visudo命令编辑sudo配置文件/etc/sudoers,以控制用户的sudo权限。例如,以下行允许用户bob以管理员身份执行所有命令:
bob ALL=(ALL) ALL
其中,第一个bob表示用户账户,第二个ALL表示可以在任何主机上执行,(ALL)表示可以作为任何用户执行,第三个ALL表示可以执行任何命令。
用户管理工具
Linux系统中,有许多命令行工具和图形化工具可以帮助管理员进行用户管理。以下是一些常用的用户管理工具。
-
useradd
useradd命令用于创建用户账户。管理员可以使用各种选项来指定用户的属性和权限。 -
usermod
usermod命令用于修改现有的用户账户。管理员可以使用各种选项来修改用户的属性和权限。 -
userdel
userdel命令用于删除用户账户。管理员可以使用-r选项来同时删除用户主目录。 -
groupadd
groupadd命令用于创建用户组。管理员可以使用各种选项来指定用户组的属性和权限。 -
groupmod
groupmod命令用于修改现有的用户组。管理员可以使用各种选项来修改用户组的属性和权限。 -
groupdel
groupdel命令用于删除用户组。 -
visudo
visudo命令用于编辑sudo配置文件/etc/sudoers,以控制用户的sudo权限。 -
GNOME 用户和组
除了命令行工具外,还有一些图形化工具可以帮助管理员进行用户管理。GNOME 用户和组是一个在 GNOME 桌面环境下使用的用户管理工具,可以帮助管理员轻松管理用户和用户组。要打开 GNOME 用户和组,可以按下Alt+F2快捷键打开运行对话框,然后输入gnome-system-tools并按回车键。在打开的“用户和组”窗口中,可以添加、修改和删除用户和用户组。
-
Webmin
Webmin 是一个基于 web 的管理界面,可以让管理员通过 web 浏览器管理 Linux 系统。Webmin 提供了许多模块,包括用户和组模块,可以帮助管理员进行用户管理。
总的来说,Linux 用户管理是非常重要的,管理员可以通过用户管理来控制用户的访问和操作范围,以保证系统的安全性和稳定性。在本文中,我们介绍了 Linux 用户管理的基础知识,包括用户账户的创建、删除和修改,以及用户组的创建、删除和修改。我们还介绍了一些图形化工具,包括 GNOME 用户和组和Webmin,可以帮助管理员更方便地进行用户管理。
同时,我们还提到了一些注意事项,如不要将 root 用户授权给其他用户、使用强密码等。这些注意事项可以帮助管理员确保系统的安全性。希望这篇文章对初学者和有经验的管理员都有所帮助。