一、Linux 用户管理
Linux 是一个可以实现多用户登录的操作系统,比如“李雷”和“韩梅梅”都可以同时登录同一台主机,他们共享一些主机的资源,但他们也分别有自己的用户空间,用于存放各自的文件。但实际上他们的文件都是放在同一个物理磁盘上的甚至同一个逻辑分区或者目录里,但是由于 Linux 的 用户管理 和 权限机制,不同用户不可以轻易地查看、修改彼此的文件。
1.1创建用户
在 Linux 系统里, root 账户拥有整个系统至高无上的权限,比如新建和添加用户。
root 权限,系统权限的一种,与 SYSTEM 权限可以理解成一个概念,但高于 Administrator 权限,root 是 Linux 和 UNIX 系统中的超级管理员用户帐户,该帐户拥有整个系统至高无上的权力,所有对象他都可以操作,所以很多黑客在入侵系统的时候,都要把权限提升到 root 权限,这个操作等同于在 Windows 下就是将新建的非法帐户添加到 Administrators 用户组。更比如安卓操作系统中(基于 Linux 内核)获得 root 权限之后就意味着已经获得了手机的最高权限,这时候你可以对手机中的任何文件(包括系统文件)执行所有增、删、改、查的操作。
大部分 Linux 系统在安装时都会建议用户新建一个用户而不是直接使用 root 用户进行登录,当然也有直接使用 root 登录的例如 Kali(基于 Debian 的 Linux 发行版,集成大量工具软件,主要用于数字取证的操作系统)。一般我们登录系统时都是以普通账户的身份登录的,要创建用户需要 root 权限,这里就要用到 sudo 这个命令了。不过使用这个命令有两个大前提,一是你要知道当前登录用户的密码,二是当前用户必须在 sudo 用户组。shiyanlou 用户也属于 sudo 用户组(稍后会介绍如何查看和添加用户组)。
su,su- 与 sudo
需要注意 Linux 环境下输入密码是不会显示的。
su 可以切换到用户 user,执行时需要输入目标用户的密码,sudo 可以以特权级别运行 cmd 命令,需要当前用户属于 sudo 组,且需要输入当前用户的密码。su - 命令也是切换用户,但是同时用户的环境变量和工作目录也会跟着改变成目标用户所对应的。
二、Linux 文件权限
文件权限就是文件的访问控制权限,即哪些用户和组群可以访问文件以及可以执行什么样的操作。
Unix/Linux 系统是一个典型的多用户系统,不同的用户处于不同的地位,对文件和目录有不同的访问权限。为了保护系统的安全性,Unix/Linux 系统除了对用户权限作了严格的界定外,还在用户身份认证、访问控制、传输安全、文件读写权限等方面作了周密的控制。
在 Unix/Linux 中的每一个文件或目录都包含有访问权限,这些访问权限决定了谁能访问和如何访问这些文件和目录。
案例
步骤 1:创建用户 loutest
如果用户 loutest 不存在,您可以使用以下命令创建该用户(需要有sudo权限的用户执行):
sudo adduser loutest
按照提示设置用户密码和其他信息。
步骤 2:创建文件 /opt/forloutest
接下来,使用 sudo 权限创建文件 /opt/forloutest。可以使用 touch 命令来创建一个空文件:
sudo touch /opt/forloutest
这将创建一个名为 forloutest 的空文件,并确保文件位于 /opt 目录下。
步骤 3:设置文件权限
现在,您需要确保用户 loutest 具有对该文件的读写权限。可以使用 chown 命令更改文件的所有者为 loutest,并使用 chmod 命令分配读写权限:
sudo chown loutest:loutest /opt/forloutest
sudo chmod 600 /opt/forloutest
以上命令将文件的所有者更改为 loutest,并分配了读写权限。这意味着只有用户 loutest 具有读写权限,其他用户没有权限访问该文件。
步骤 4:验证权限
您可以使用以下命令验证文件的权限是否正确设置:
ls -l /opt/forloutest
您应该看到文件 /opt/forloutest 的权限应该为 -rw-------,表示只有所有者 loutest 具有读写权限。
sudo chmod 600 /opt/forloutest 解释:
sudo chmod 600 /opt/forloutest 用于更改文件 /opt/forloutest 的权限。chmod 命令用于修改文件或目录的访问权限。数字 600 是权限模式的表示方式,这里的 600 表示以下权限设置:
第一个数字 6 表示文件所有者(即 loutest)具有读(4)和写(2)权限,因此文件所有者可以读取和修改文件。
后面的两个数字 00 表示文件的组和其他用户没有任何权限,即没有读、写或执行权限。
总之,sudo chmod 600 /opt/forloutest 的目的是确保只有文件所有者 loutest 具有读取和写入该文件的权限,而其他用户没有任何权限。这是一种常见的设置,用于保护文件的隐私和安全性。