Linux学习笔记(3)基本命令Part3——用户和组管理

本节的关键是查看、修改用户权限。
在一开始,我先介绍一下权限号怎么理解,再进入到本期的命令学习。
首先,用命令ls -l查看当前目录下的文件/文件夹权限:

假设看到下列内容:

-rw-rw-r--. 1 root DeptIS 19 Nov  9 15:15 readme.sie
drw-r----x. 2 root root    6 Nov  9 15:21 test1

请关注到每行开头的那一大串:
首先,第一个字母是表示文件类型的(这个在linux学习笔记(2)有提到过),如第一行“-”开头表示是文件,第二行“d”开头表示是目录文件(文件夹)。

接下来,首字母后的剩下一大串就是权限了:
将其以3个字符为单位进行划分,可以分成3组,分别作为所有者(user)、用户组(group)、其他人(others)的权限。

r:可读(设置权限时用数字4表示)
w:可写(数字2)
x:可执行(数字1)
-:无相关权限

eg1:rw-rw-r--
可以分成rw-、rw-、r–:表示user可读可写,group可读可写,其他人可读

eg2:rw-r----x
可以分成rw-、r–、--x:表示user可读可写,group可读,其他人可执行

那么,上面说的设置权限时,用4表示r,用2表示w,用1表示x是怎么回事呢?
先需要知道,我们可以用类似于下面这样的命令设置文件的权限:

[root@localhost pub]# chmod 640 readme.ito

看到这个命令中的数字640了吗?它表示了user、group和others的权限。

user的权限 = 6 = 4+2 ——可读可写
group的权限 = 4 ——可读
others的权限 = 0 ——没有任何权限

发现了吗?其实就是把这个三位数拆分成三位,然后用4、2、0做加法,得出各自的权限是多少就ok啦。

 
好啦,进入正题,下面是本次的练习题。

==========================================================

(1)启动计算机,使用自己创建的用户登录系统。
 

(2)使用su - root命令切换到root用户。

su

(3)使用cat /etc/passwd命令查看当前系统用户的信息

[root@localhost ~]# cat /etc/passwd

root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin

……(此处省略若干行)

chrony:x:998:996::/var/lib/chrony:/sbin/nologin
helen:x:1000:1000::/home/helen:/bin/bash
a:x:1001:1001::/home/a:/bin/bash
b:x:1002:1002::/home/b:/bin/bash

(4)使用grep hx /etc/passwd命令确认系统中是否已有hx用户。查询结果显示不存在这个用户,因此使用useradd hx命令创建了这个新用户,并使用passwd hx为其设置初始密码123456。

//查询一个不存在的用户hx:什么都不会显示
[root@localhost ~]# grep hx /etc/passwd

//查询一个存在的用户helen
[root@localhost ~]# grep helen /etc/passwd
helen:x:1000:1000::/home/helen:/bin/bash
[root@localhost ~]# useradd hx
[root@localhost ~]# passwd hx

 
(5)使用命令将hx用户加入到信息安全系用户组中。

//新建信息安全系组DeptIS
[root@localhost ~]# groupadd DeptIS

//将hx用户加入到信息安全系用户组中
[root@localhost ~]# usermod -g DeptIS hx

//查看用户hx在哪个组
[root@localhost ~]# groups hx
hx : DeptIS

(6)切换到/ito/pub目录,新建示例文件readme.ito。/ito/pub目录中保存的是软件学院的公共文件,本学院的所有老师都能读取文件的内容,但只有系统管理员华老师本人可以修改文件。另外,其他学院的老师无法读取文件内容。

//创建路径、文件
[root@localhost ~]# mkdir ito
[root@localhost ~]# cd ito
[root@localhost ito]# mkdir pub
[root@localhost ito]# cd pub
[root@localhost pub]# ls -l
total 0
[root@localhost pub]# touch readme.ito

**【分析】**所有老师都能读取文件的内容,但是只有华老师本人(用户hx)才能修改文件
——同组成员(group,本学院的所有老师)只有读取权限,而所有者(user,系统管理员)有读取、修改的权限

//查看文件原来的权限
[root@localhost pub]# ls -l readme.ito
-rw-r--r--. 1 root root 0 Nov  9 14:02 readme.ito


//新建用户组:软件学院InstillSoftware
[root@localhost pub]# groupadd InstSoftware


//将hx加入到用户组InstSoftware。如果不需要留在原来的用户组,则可以直接使用 -g 选项:usermod -g InstSoftware hx
[root@localhost pub]# usermod -a -G InstSoftware hx
[root@localhost pub]# id hx
uid=1003(hx) gid=1004(DeptIS) groups=1004(DeptIS),1006(InstSoftware)


//将文件readme.ito的所有者改为hx
[root@localhost pub]# chown hx readme.ito
[root@localhost pub]# ls -l
total 0
-rw-r--r--. 1 hx root 0 Nov  9 14:16 readme.ito

//将文件的readmen.ito的所属用户组改为InstSoftware
[root@localhost pub]# chgrp InstSoftware readme.ito
[root@localhost pub]# ls -l
total 0
-rw-r--r--. 1 hx InstSoftware 0 Nov  9 14:16 readme.ito


//修改文件的权限
[root@localhost pub]# chmod 640 readme.ito

//查看当前的用户权限,发现:所有者有读写权限,用户组有读权限,其他人没有任何权限
[root@localhost pub]# ls -l readme.ito
-rw-r-----. 1 root root 0 Nov  9 14:02 readme.ito

 
检验一下:

//创建一个用户teacher
[root@localhost pub]# useradd teacher
[root@localhost pub]# passwd teacher
[root@localhost pub]# su teacher

//此时,用户teacher还不在用户组InstSoftware中,所以不能读取
[teacher@localhost pub]$ cat readme.ito 
cat: readme.ito: Permission denied

//将用户teacher加入用户组InstSoftware
[teacher@localhost pub]$ su
[root@localhost pub]# usermod -a -G InstSoftware teacher
[root@localhost pub]# su teacher

[teacher@localhost pub]$ id teacher   
uid=1005(teacher) gid=1007(teacher) groups=1007(teacher),1006(InstSoftware)

//现在,用户teacher可以读readme.ito文件了 
[teacher@localhost pub]$ cat readme.ito

//但用户teacher不可以写readme.ito文件
[teacher@localhost pub]$ echo 'test by teacher' > readme.ito
bash: readme.ito: Permission denied

 
(7)使用su – hx命令切换到hx用户。使用vim打开readme.ito文件,可以正常打开,但尝试修改时提示只有读权限。使用exit命令退出hx用户,返回root用户。

(老师给的这道题也真是迷……前面明明已经给hx用户加了读写权限了?所以本题我用只有读权限的用户teacher实现了)

 
vi:打开vim文本编辑器

[teacher@localhost pub]$ vi readme.ito

可以进入vim编辑器的页面(如下图),但如果按下i(想进入insert模式进行修改时),则会弹出只可读的Warning(如下图)。如果还试图强行更改,则会报错。
 
在这里插入图片描述

(8)切换到/ito/sie/pub目录,新建示例文件readme.sie。/ito/sie/pub目录中保存的是信息安全系的公共文件,本系的所有老师都可以读写这些文件,而其他系的老师只能读取文件内容。

[root@localhost ~]# cd ito
[root@localhost ito]# mkdir sie
[root@localhost ito]# cd sie
[root@localhost sie]# mkdir pub
[root@localhost sie]# cd pub


[root@localhost pub]# touch readme.sie

[root@localhost pub]# chgrp DeptIS readme.sie

[root@localhost pub]# chmod 664 readme.sie
[root@localhost pub]# ls -l
total 0
-rw-rw-r--. 1 root DeptIS 0 Nov  9 14:59 readme.sie

 
(9)分别切换到hx和自己创建的用户用户,并尝试对readme.sie进行读和写操作。

//新建一个用户组DeptSE(软件安全系)
[root@localhost pub]# groupadd DeptSE

//新建用户teacher1,并将其加入到软件安全系      
[root@localhost pub]# useradd teacher1
[root@localhost pub]# usermod -a -G DeptSE teacher1

(后面的验证过程和结果就不赘述了)

(10)分别在/ito/pub和/ito/sie/pub两个目录中建立一个子目录,并对其进行不同权限的设置,使用不同的用户进行验证,加深对普通文件和目录权限管理的理解。

具体实现就不赘述了,按上面九题涉及的知识点就可以实现。

核心是修改权限。
不管是修改文件权限,还是文件夹权限,本命令都适用:chmod [权限号] [文件名/文件夹名]

//举个栗子
[root@localhost pub]# chmod 640 readme.ito

猜你喜欢

转载自blog.csdn.net/weixin_43616639/article/details/109570413