(Linux学习笔记) - 用户管理和用户权限
本帖最后由 redballoon 于 2023-7-4 22:20 编辑# Linux学习笔记(五)
Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统。
用户的账号一方面可以帮助系统管理员对使用系统的用户进行跟踪,并控制他们对系统资源的访问;另一方面也可以帮助用户组织文件,并为用户提供安全性保护。
每个用户账号都拥有一个唯一的用户名和各自的口令。
用户在登录时键入正确的用户名和口令后,就能够进入系统和自己的[^主目录]。
实现用户账号的管理,要完成的工作主要有如下几个方面:
+ 用户账号的添加、删除与修改。
+ 用户口令的管理。
+ 用户组的管理。
## Linux中的用户和用户组
Linux中用户分为三种:超级用户、普通用户和系统用户。
超级用户:又称root用户,每个Linux系统都必须有且只有一个,它拥有最高权限,可用删除终止任何程序,在安装时必须设置root账户和密码。另外,为了减少风险,要避免普通用户得到root用户权限。
普通用户:在系统安装后由超级用户创建。普通用户的权限相当有限,只能对自己拥有权限的文件或目录进行操作,也只能管理自己启动的进程。
系统用户:是与系统运行和系统提供的服务密切相关的用户,通常在安装相关的软件包时,自动创建并保持默认状态,系统用户是不能登录计算机的。
当用户被创建后,都拥有7项权限,它们由`:` 隔开,保存在 /etc/passwd 文件中。
打印第一条root用户权限信息来分析:
+ root,用户名
+ x,密码,是出于安全考虑而设置为 x,真正的密码经过MD5加密后保存在 /etc/shadow文件中
+ 0:0,用户ID和用户组ID,用户ID是用户在Linux系统中唯一的用户标识,也交UID。超级用户的UID是0,系统用户的UID在 [0-1000),普通用户的UID大于等于1000;组ID,系统中每个用户属于某个组,组ID是Linux系统中每个组都拥有的唯一的数字标识。
+ root,用户相关信息
+ /root,用户主目录
+ /bin/bash,用户登录环境(黑窗口),即用户登录后启动的Shell进程。
查看用户密码信息 vi /etc/shadow:
> 这个文件只有root用户才有权限查看和修改,普通用户是不能访问的,如果你当前是普通用户可通过 su - 来切换到root用户
这些 :分割的分别代表什么意思我就不写了,可用自行了解。
### 用户管理命令
+ useradd, 添加新用户
+ 增加用户账号就是在/etc/passwd文件中为新用户增加一条记录,同时更新其他系统文件如/etc/shadow, /etc/group等。
+ userdel, 删除用户
+ 如果一个用户的账号不再使用,可以从系统中删除。删除用户账号就是要将/etc/passwd等系统文件中的该用户记录删除,必要时还删除用户的主目录。
+ usermod, 修改用户,修改用户账号就是根据实际情况更改用户的有关属性,如用户号、主目录、用户组、登录Shell等。
+ passwd, 用户密码管理命令
**大多数命令都有help选项。在不知道这个命令有什么选项时可以用 -h / --help 来查看详细说明**
\* passwd 命令修改密码时是直接覆盖原来的,不需要输入以前旧的密码,必须在root用户下操作。
也可用在useradd \<username\> 下指定 -p 选项直接添加密码
### 用户组管理命令
组是具有相同特性的用户集合,设置组的目的,是便于权限的统一组织和分配,对组操作等价于对组中的每个用户进行操作。组中的每个用户可用共享组中的资源。因此,只需要在组上设置对资源的访问权限,从而避免对每个成员的重复操作。但是要注意,组账户是不能原来登录计算机的。
组账户按性质分为系统组和私有组,系统组是安装Linux及部分服务程序时系统自动设置的组。私有组是系统安装完成后,有超级用户新建的组。超级用户可用根据需要向组中添加成员。另外,每当新建用户时,系统默认会创建一个与用户名完全相同的私有组。
同用户管理文件类似,组账户管理文件同样有两个,分别是组账户文件 `/etc/group` 文件和组密码(组影子)管理文件`/etc/shadow` 文件
执行 vi /etc/group 分析组账户文件信息:
+ mail,组名称
+ x, 组口令(密码),默认无密码
+ 12,组ID
+ postfix,用户列表,是组内所有成员的列表,成员之间用逗号隔开
执行 vi /etc/gshadow 分析组影子文件信息:
组影子文件中也包含四个字段,组名称,组口令,组管理员以及组内用户列表,通过设置组管理员,可以下放root权限,组管理员可用对组内的成员进行添加和删除。
+ groupadd,用于新建组账户,该指令的执行将在 /etc/group文件和/etc/gshadow文件中分别增加一行记录。
+ -g,使用-g选项,用于指定所创建组账户的组ID,不使用则分配默认组ID
+ -r,使用-r选项,将创建系统组账户,他的组ID会小于1000
+ groupmod,用于修改组信息
+ groupdel,用于删除组
+ 提示,在使用userdel命令删除用户时,与用户同名的私有组账户会被同时删除。
## Linux文件和目录权限管理
Linux中的三种用户权限:
1. Owner——文件的所有者,也是文件的创建者
2. Group——文件的同组用户
3. Others——其他用户
对于三种用户我们需要设置他们的读、写、可执行的权限,在Linux系统中有两种权限表示方案
+ 字母表示法:
+
+
+ 通过`ls -l` 命令可查看文件或目录的权限,第一个字符表示文件类型,后续每三个字符一组,第一组 rw- 表示所有者具有读写权限,却无可执行权限;第二组 r-- 表示所有组具有可读权限,却无写、可执行权限;第三组 r-- 表示其他用户具有可读权限,却无写、可执行权限。
+ 数字表示法:
+ | 权限 | 二进制 | 八进制 | 权限 | 二进制 | 八进制 |
| :--: | :----: | :----: | :--: | :----: | :----: |
| ---|000 | 0 | r--|100 | 4 |
| --x|001 | 1 | r-x|101 | 5 |
| -w-|010 | 2 | rw-|110 | 6 |
| -wx|011 | 3 | rwx|111 | 7 |
+ \-无权限用 0 表示
+ r 可读权用4表示
+ w 可写权用2表示
+ x 可执行权用1表示
可组合使用,即权限所代表的数字相加,如:要使dome.txt文件的owner具有读、写、可执行权,group具有读、写、可执行权,others具有读权限,可用用774来表示各用户的权限,通过`chmod`命令来修改权限
```shell
chmod 774 domo.txt
```
### chown命令
修改文件的所属用户和所属组
```shell
chown linux:root demo.txt
```
将demo.txt的用户所有者(owner)修改为linux用户,所属组修该为root组
### chgrp命令
修改文件的所属组
```shell
chgrp root demo.txt
```
将demo.txt的文件所属组修改为root组
### chmod命令
修改文件的权限
通过上面的两种权限表示法来进行修改
数字修改法:
+ 格式: chmod abc 文件或目录
+ a 表示owenr的权限
+ b表示group的权限
+ c表示others的权限
字母表示法:
+ 格式: chmod {ugoa}{+-}{rwx} 文件或目录
+ ugoa: 分别代表所有者、同组用户、其他用户、所有用户
+ +-: 分别代表增加权限和删除权限
+ rwx:分别代表可读、可写、可执行权限
[^主目录]: 也称家目录,root的家目录 /root , 普通用户的家目录 /home/username 很棒 谢谢楼主 Linux系统太陌生了 写的很详细了,支持一哈 感谢楼主,写的简单易懂,难得沉下心学习学哈,虽然也用过,但是用的不多 都快忘了
以前看过一篇文章,就是通过配置文件修改用户的角色和密码,现在回想起来了 学习了,谢谢!!!
页:
[1]