【Linux】用户和权限

简介: 【Linux】用户和权限

前言


Linux作为一种广泛使用的操作系统,以其稳定性、灵活性和安全性而闻名。在Linux中,用户和权限是管理访问控制和确保系统安全性的核心概念。深入理解Linux用户和权限对于系统管理员、开发人员和普通用户来说都是至关重要的。


我将为大家全面介绍Linux中的用户和权限概念,深入解析其原理和用法,以及探讨如何正确配置和管理文件和目录的访问权限。


什么是 root 用户

无论是Windows、MacOs还是Linux都采用多用户的管理模式进行权限管理。


在学习 Linux 用户之前,我们首先要知道 Linux 的 root 用户。root 用户也叫 超级管理员,与普通用户不同的是:普通用户的很多权限受到限制,而 root 用户拥有 Linux 操作系统的最大权限。

  • 普通用户在HOME之内是不受限制的,而一旦出了HOME目录,很多操作都会受到限制。


su 命令和 exit 命令

①su 命令

那么我们如何从普通用户切换到 root 用户,或者如何从 root 用户切换到 普通用户呢?我们使用 su [-] [用户名] 来进行用户之间的切换。


  • - 是可选的,表示是否在切换用户之后加载环境变量,建议带上
  • 用户名参数,表示要切换到的用户,可以省略,省略表示切换到 root 用户

su - handsome

su - root



通过上面的执行图片我们不难发现问题:

  • 当我们从普通用户转到 root 用户的时候,需要输入密码
  • 而从 root 用户转到普通用户的时候则不需要使用密码

②exit 命令

使用 exit 命令之后,会退出当前用户,回到上一次的用户。

当然,如果我们觉得 exit 命令麻烦的话,也可以直接使用快捷键 CTRL + C 退出当前用户,回到上一用户。


sudo 命令

俗话说:地位越高,风险越大。root 用户作为拥有最高权限的管理员,需要格外的注意每一条命令的使用,因为 root 用户执行操作的时候也不会有提示,所以很容易造成不可挽回的后果。也就是说我们不应该长时间处于 root 管理员身份。


不处于管理员身份的话,那么如果我们想要执行普通用户不具有的权限的时候,要来回切换用户吗?这样会显得很麻烦,我们可以使用 sudo 命令 来使我们执行这条命令的时候是处于 root 用户的身份的。


我们要想使用 sudo ,还需要为普通用户配置 sudo 认证

为普通用户配置 sudo 认证

  1. 切换到 root 用户,执行 visudo 命令,会打开一个文件
  2. 找到文件末尾,输入小写的 o ,然后输入用户名 ALL=(ALL) NOPASSWD: ALL
  3. 先按一下ESC退出编辑模式,然后输入两次大写的Z,退出并保存


sudo mkdir /test2

用户、用户组管理

什么是Linux 用户和用户组

在Linux系统中,用户(User)和用户组(Group)是用于管理和识别系统中的个人用户和集合用户的概念。


用户(User):


用户是系统中的个人或应用程序,每个用户都有唯一的用户名和用户标识符(User ID,UID)。


用户可以登录系统并在系统上执行各种操作,如访问文件、运行程序等。


每个用户都有自己的个人目录(Home Directory),用于存储用户的配置文件、个人数据等。


用户可以通过登录凭据(用户名和密码或其他身份验证方式)来验证自己的身份。

用户组(Group):


用户组是一组用户的集合,用于方便地管理和分配权限。


用户组可以将一组用户绑定在一起,使得它们可以共享共同的权限和资源。


每个用户可以属于一个或多个用户组。一个用户组可以有多个成员,而每个成员也可以属于多个用户组。

用户组通常用于简化权限管理和授予特定资源的访问权限。


通过使用用户和用户组的概念,Linux系统能够实现细粒度的权限管理和资源控制。管理员可以根据需要分配用户所属的用户组,并为每个用户组设置特定的权限。这样可以方便地管理文件和目录的访问权限,并确保用户和应用程序以安全、可管理的方式操作系统。

用户组管理

  • groupadd 用户组名——创建用户组
  • groupdel 用户组名——删除用户组

用户组命令需要我们在 root 管理员的身份下执行。


用户管理

  • useradd [-g -d] 用户名——创建用户
  • userdel [-r] 用户名——删除用户
  • id [用户名]——查看用户所属组
  • usermod -aG 用户组 用户名——将指定用户添加到指定用户组中


创建用户

useradd [-g -d] 用户名

  • 选项:-g指定用户的组,如果不指定用户组,会自动创建一个同名的用户组并将该用户添加进入;如果指定用户组,这个用户组需要保证存在
  • 选项:-d指定用户HOME路径,不指定的话,HOME路径会默认在:/home/用户名


useradd -g itcast -d /home/test test

删除用户

userdel [-r] 用户名

  • 选项:-r,删除用户的HOME目录,不使用 -r 的时候用户的HOME目录会保留

查看用户所属组

id [用户名]

  • 参数:用户名,表示要查看的用户所属的用户组,如果省略,则表示查看当前用户的所属用户组

将指定用户添加到指定用户组中

usermod -aG 用户组 用户名


查看当前系统的用户和用户组

使用 getent passwd 命令可以查看当前系统有哪些用户。


显示出来的信息分为七部分:

  • 用户名:密码(x):用户ID:组ID:描述信息(无用):HOME目录:执行终端(默认bash)

使用 getent group 查看当前系统的用户组


显示出来的信息分为三部分:

  • 组名称:组认证(显示为x):组ID

权限控制


当我们使用 ls -l 的时候,显示出来的信息,我们是否想要直到它显示出来的信息各个部分是什么意思呢?



  • ①表示文件、文件夹的权限控制信息
  • ②表示文件、文件夹所属用户
  • ③表示文件、文件夹所属用户组

权限信息

我们知道了哪些代表权限信息,那么每一个字母又代表什么呢?


r 表示读权限

针对文件,表示可以查看文件内容

针对文件夹,表示查看文件夹中的内容

w 表示写权限

针对文件,表示可以修改此文件

针对文件夹,表示可以在文件夹内创建、删除、改名的操作

x 表示执行权限

针对文件,表示可将文件作为程序执行

针对文件夹,表示可以更改工作目录到此文件夹,即 cd 操作


我们可以看到,当前处于 handsome用户,不属于 boot 文件夹的用户和用户组,属于其他用户权限,所以我们看权限的时候就看后三位 r-x 表示其他用户对于该文件夹只有读和执行的权限。

假如我们对该文件夹执行创建、删除、改名等操作看看会怎么样?

请求被拒绝了,这也就说明了其他用户对该文件夹只有读和执行的权限,而没有创建、删除、改名的权限。


修改权限控制

  • chmod 修改文件、文件夹的权限信息
  • chown 修改文件、文件夹的所属用户和所属组


修改权限信息

chmod [-R] 权限信息 文件或文件夹

  • 选项:-R,表示对该文件夹里的所有文件都执行该操作

因为不同部分的权限信息代表的含义不同,所以我们需要使用 ugo 来分别表示用户、用户组、其他用户权限,并且我们修改文件或者文件夹的权限信息只能以 root 管理员的身份修改

我们修改 handsome/home/test.txt 的权限信息。

在 Linux 中,如果文件或文件夹被标识为绿色,则表示不安全。

修改文件夹权限信息。

修改权限信息的时候,使用 u=rwx 等会不会觉得很麻烦呢?Linux 为我们提供了一种简单以数字的形式来代表权限信息的方式。


0:无任何权限,即—

1:仅有 x 权限,即–x

2:仅有 w 权限,即-w-

3:有 w 和 x 权限,即-wx

4:仅有 r 权限,即r–

5:有 r 和 x 权限,即r-x

6:有 r 和 w 权限,即rw-

7:有全部权限,即rwx



修改所属用户、用户组

chown [-R] [用户名][:][用户组名] 文件或文件夹

  • 选项:-R,表示文件夹中的所有文件都执行该操作
  • 选项:用户,表示修改所属用户
  • 选项:用户组,表示修改所属用户组

该操作也只能在 root 管理员的身份下执行

/home/handsome/test.txt 的所属用户和用户组更改到 root

相关文章
|
23天前
|
存储 安全 Linux
Linux权限之谜:一步步教你如何解锁sudo权限并窥视/etc/shadow的神秘面纱!
【8月更文挑战第22天】在Linux中,`sudo`命令让授权用户能以其他用户(通常是root)身份运行命令。关键的安全文件`/etc/shadow`存储用户密码哈希,仅root可读。要使用`sudo`,需确保账户被列入`sudoers`文件中。系统管理员可通过`visudo`编辑此文件来赋予用户权限,例如添加`username ALL=(ALL) NOPASSWD: ALL`行。获得`sudo`权限后,可运行`sudo cat /etc/shadow`查看文件内容,但需谨慎操作以免影响系统安全。遵循最小权限原则,确保安全使用这些强大工具。
42 2
|
24天前
|
Linux 数据安全/隐私保护
在Linux中,什么是文件权限?什么是rwx权限模型?
在Linux中,什么是文件权限?什么是rwx权限模型?
|
1月前
|
Unix Linux Shell
Linux 权限简介
Linux 权限简介
33 1
|
1月前
|
Linux 数据安全/隐私保护 Windows
Linux专栏10:Linux权限详解(上)
Linux专栏10:Linux权限详解(上)
37 3
|
16天前
|
Unix Linux Go
Linux中的chmod权限问题
Linux中的chmod权限问题
12 0
|
22天前
|
安全 Linux 数据安全/隐私保护
在Linux中,使用rsync服务模式时,如果指定了⼀个密码文件,那么这个密码文件的权限应该设置成多少才可以?
在Linux中,使用rsync服务模式时,如果指定了⼀个密码文件,那么这个密码文件的权限应该设置成多少才可以?
|
22天前
|
Linux
在Linux中,如何使用xargs和exec实现把当前目录下所有后缀名为.txt的⽂件的权限修改为777。
在Linux中,如何使用xargs和exec实现把当前目录下所有后缀名为.txt的⽂件的权限修改为777。
|
22天前
|
安全 Linux 数据安全/隐私保护
Linux安全大揭秘:一键切换root权限背后隐藏的秘密
【8月更文挑战第23天】Linux操作系统因其出色的灵活性和安全性备受推崇,用户权限管理是其核心功能之一。本文介绍如何安全地在用户间切换,特别是切换至拥有最高权限的root用户。我们探讨了两种主要的方法:`su` 和 `sudo` 命令,并通过示例展示了它们的应用场景。`su` 命令适合需要执行多个root权限操作的情况,而 `sudo` 更适用于临时执行单个高权限命令。同时,文章还提供了一些最佳实践,如避免长时间使用root账户、定期审查 `sudoers` 文件等,以确保系统的安全性。正确理解和应用这些工具和原则对于维护Linux系统的安全至关重要。
34 0
|
22天前
|
安全 Linux 数据安全/隐私保护
在Linux中,什么是最小权限原则?
在Linux中,什么是最小权限原则?
|
24天前
|
Linux Go
在Linux中,文件和目录的权限有何作用以及如何修改?
在Linux中,文件和目录的权限有何作用以及如何修改?