八、用户管理命令 && 文件系统 && 连接文件 && 系统知识
文章目录
一、用户管理命令
(一)3个存储用户信息的文件
Linux是多用户的操作系统,对于用户和系统的管理一般都是root最高权限的管理员来管理,我们首先了解一下用户的信息都是在哪里存放的,三个文件:
我们先进入cd /etc,进入etc,它包含了存放系统的配置文件,包括vim,网络配置等。
1. vim passwd:存储用户UID,GID详细信息
文件里面的内容每一行代表一个账号,有几行就代表系统中有几个用户,里面也存在系统正常运行所必须的账号,我们成为系统称号,例如bin,adm等。
参数说明:每一个参数用【:】分隔
- 用户名(账户名称):对应UID,如root的UID就是0。
- 密码占位符:因为这个文件可以被所有用户读取,所以把密码在/etc/shadow存储,这只显示一个【x】。
- 用户ID(UID):用户标识符
ID范围 | 含义 |
---|---|
0 | 系统管理员,所以当你要让普通用户具有管理员的权限时,将该账号的UID改为0即可 |
1~999 | 系统账号,又分为:1~200:由Linux发行版本自行建立的系统账号,一般用来运行网络服务和后台服务;201~999:若用户由系统账号需求时,进行分配 |
1000~6000 | 给一般用户使用,目前Linux3.10可以支持到2^32-1 |
- 用户组ID(GID):这个和/etc/group有关,是用户主组ID。
- 用户信息说明栏:解释账号含义,无实际作用。
- 默认进入的目录即家目录。
- 默认使用的终端程序
2. vim group:用户组信息
数字是组名,密码占位符,组ID,后面可以自己添加组用户,称为附加组。
所以我们要看一个用户属于哪个组,需要先在passwd中看一下组ID,还需要在group根据GID看一下包含在哪个组下。
3. vim shadow:用户密码信息
一定是在root下打开shadow文件,否则无法打开。我们用ls -l shadow查看文件属性:
无任何权限文件,所以任何用户都无法访问,但是root超级管理员可以,这就保证了安全想,这里面存储的是用户密码。
参数信息:用户名,密码(密码用密文加密了)
密码组成:$ 加密算法ID$加***$密文
(二)添加用户
我们要对用户进行管理:先cd /home 到家目录,可以用ls查看用户目录,就代表有几个用户。
添加用户的指令是useradd,后面可以加不同的参数:
命令 | 含义 |
---|---|
useradd newname | 新建一个用户同时新建一个组 |
useradd -g 组名称 newname | 将新用户添加到指定用户主组里 |
useradd -G group1 newname | 将新用户添加到副组里,可以有多个副组,用“,"隔开 |
useradd -s newname shell终端 | 指定新用户默认使用的shell终端,若没有指定,默认为/bin/bash |
useradd -d newname 绝对路径 | 指定新用户登录默认进入的目录 |
那么当不加参数执行指令【useradd 账号】后,系统会默认帮我们处理:
- 在etc/passwd里面建立一行于账号相关的数据,包括建立UID/GID/家目录等。
- 在etc/shadow里面将此账号的密码和相关参数写入,此时没有密码。
- 在etc/group里面加入一个和账号名称一模一样的组名。
- 在/home下面建立一个与账号同名的目录作为用户家目录,权限为700,即所有者拥有读写执行,其他人无权限。
那我们演示一下,我们添加用户stu,指定添加到Gripure中去,再进行密码设置。
- 我们先查看用户:
- 进行添加用户stu:
- 我们通过cat命令在终端上显示passwd和shadow中stu的信息:
可以看到stu在组Gripure中,还没有设置密码。
(三)修改密码
上面我们看到stu的/etc/shadow内仅会有密码参数而不会有加密过的密码数据:
所以我们通过指令
passwd 账号
修改设置密码:
(四)删除用户
删除用户指令:
userdel username
只会删除用户信息,不会删除/home下的同名目录
所以我们可以
userdel -r username //同步删除家目录
我们现在删除stu这个用户,我们使用不能删除家目录的方法删:
那么此时我们需要删除这个家目录,我们可以:
rm -r stu //但是需要你一直确认,很麻烦
所以我们采用第二种:
rm -rf stu //直接删除,不需要我确认
当然我们也可以从一开始就使用userdel -r一次性删除。
二、文件系统
常见的文件系统:
系统 | 操作系统 |
---|---|
EXT | Linux |
NTFS | windows |
FAT32 | U盘,文件不能超过4G |
那我们今天主要讲Linux的EXT4文件系统,它是一种索引式的文件系统。
- EXT4将磁盘划分为3个区域:
- superblock:记录文件系统的整体信息,包括inode/block的总量,使用量,剩余量,以及文件系统的格式与相关信息等。
- inode:n个,文件属性信息,一个文件占用一个inode,同时记录此文件的数据所在的block号码。
- block:m个,记录文件的内容,若文件过大,会占用多个block,一个block大概4k。
- 索引式的文件系统:
假如一个文件的属性和权限存储在inode4号,这个inode记录了文件数据所在的2,7,13,15这四个block号码,此时我们的操作系统能够根据块号来排列磁盘阅读顺序,可以一口气将四个块内容读出:
这种数据存取方法称为索引式的文件系统。
三、连接文件
无法对目录创建硬连接,但可以创建软连接
(一)软连接(类似快捷方式)
- 创建:
ln -s 源文件 连接文件
- 查看:
ls -i查看在哪个inode,
它和源文件使用不同的文件节点,在不同的inode中,连接文件指向源文件,和源文件同步,因为在修改连接文件时,找到连接文件inode,会再找到源文件,所以对连接文件修改就是对源文件进行修改。
3. 如果把源文件移动位置,那么连接文件会失效,因为路径变了,移动连接文件如果当前目录下有路径上的文件,那么有效,会指向这个新文件,如果没有就失效,如果连接文件的路径是绝对路径,那么移动后绝对路径错了,它根据路径找到文件也会失效。
4. 特点:类似于快捷方式。
5. 我们进行演示:
- 我们先创建一个main.c,随便写点东西,然后创建它的软连接test.c:
- 我们修改test.c,就可以看到main.c也随之变化:
- 可以看到显示的和我们上述阐述的一样,我们将main.c移动到上一个目录:
我们可以看到test.c失效了,如果我们给test.c是绝对路径,那么就没问题。
- 所以我们重新创建一个link.c,将main.c的绝对路径给它,它会根据绝对路径去找,试着移动main.c,它还是会因为绝对路径错误而失效,所以绝对路径和相对路径相比的好处就是,相对路径必须保证此目录下有mian.c,但是绝对路径只需要保证绝对路径下有:
(二)硬连接(类似别名)
- 创建:
ln 源文件 连接文件
也是个普通文件,和源文件指向一个inode,那么内容肯定一样,属性都一样,同步修改,那么硬连接就相当于是源文件的别名。
-
特点:再创建两个,可以看到连接数变了,删除时,连接数会减少,不会删除文件,直至连接数为1时,会删除文件。
-
我们演示一下:
- 创建两个main.c的硬连接,test.c,link.c:
- 删除硬连接,连接数会变少,直到为1时删除文件:
四、系统知识
(一)系统运行级别
root下可以修改,在/etc/inittab文件里面配置:
运行级别 | 含义 |
---|---|
0 | 关机,不能设置为默认的,刚开机就关机了 |
1 | 单用户模式,在修复系统时 |
2 | 不带网络的多用户 |
3 | 带网络的多用户,指令界面,只能用命令,鼠标完全没用 |
4 | 留给用户自定义的 |
5 | 带图形化界面的模式,默认的运行级别 |
6 | 重启,不能设置为默认的 |
我们可以通过:
runlevel //查看运行级别
当前为5,即界面化视图。
通过:
init 运行级别 //切换运行级别
我们切换为3级别:
这个就是一个黑框框,只能用命令去操作
(二)关机 && 重启
含义 | 指令 |
---|---|
关机 | shutdown -h now 立刻关机 |
halt 关机 | |
init 0 关机 | |
重启 | shutdown -r now 立即重启 |
reboot 重启 | |
init 6 重启 |
加油哦!????。