文件,用户管理

第一章 文件管理

1.文件类型查看

通过命令 ls -l 查看文件类型,文件属性一般显示如下:

 

 

 

2.文件类型分类

drwxr-xr-x

第1个字母:代表文件类型

第2~4字母:代表用户的权限

第5~7字母:代表用户组的权限

第8~10字母:代表其他的用户的权限

linux文件类型常见有7种

 

文件类型解释
- 普通文件(文本文件,二进制文件,压缩文件,电影,图片。。。)
d 目录文件(蓝色)
b 块设备(硬盘,光驱等设备)
c 字符设备文件(打印机)
l 链接文件(淡蓝色)
s 套接字文件
p 管道文件

3、文件管理命令

1、touch 新建文件

touch  file.txt                    //创建一个名为file.txt的文件

2、mkdir 新建目录

mkdir filex.txt                         //建立单个目录

mkdir -p  file.txt/file1.txt/file2.txt  //建立多层递归目录

3、cp 复制

cp  源文件   目标 文件                  //复制单个文件

cp  单个/多个源文件   目的目录           //复制单/多个文件到指定目录

cp  -r 单个源目录/多个源目录 目标目录     //复制多个目录到指定目录

4、mv 移动和重命名

mv   file.txt     dir1/              //移动命令

mv   file.txt     dir1/file3.txt     //重命名命令

注:file.txt为文件名,file3.txt为新文件名,dir1为目标目录。3

5、rm 删除

rm  -rf    file.txt                //删除文件

rm  -rf    /root/file.txt          //删除目标目录下的文件

注:

  -f 是force的缩写,表示强制删除不提示

  -r 表示递归,表示目录本身和里面的所有内容

6、cat 查看

 

cat   file1            //用于查看file1的文件内容;

cat   -n   file2       //查看file2内容,并从1开始对所有输出的行数(包括空行)进行编号;

cat   -b   file3       //查看file3内容,并从1开始对所有的非空行进行编号;3

7、more 翻页

 

more    file1             //查看文件file1的文件内容;

more   -num   file2       //查看文件file2的内容,一次显示num行;

more   +num   file3       //查看文件file3的内容,从第num行开始显示;

注:Enter向下滚动一行,空格或f 向下滚动一屏,b向上滚动一屏,q退出

8、head 显示头部内容

head  -n  <行数>   filename      //显示文件内容的前n行;

例如:head   -n   5   file1      //显示文件file1的前5行内容

head   -c  <字节>  filename     //显示文件内容的前n个字节;

例如:head  -c  20  file2       //显示文件file2的前20个字节内容

9、tail 显示尾部内容

tail  -10   file1               //显示文件file1的尾部10行内容;

tail  -n  <行数>  filename       //显示文件尾部的n行内容;

例如:tail  -n  5   file1        //显示文件file1的末尾5行内容

tail  -c  <字节数>   filename    //显示文件尾部的n个字节内容;

例如:tail  -c  20   file2       //显示文件file2的末尾20个字节

10、grep 过滤关键字

grep  关键字   文件名              //针对文件内容进行过滤

grep  'abc'  /root/file1         //显示文件file1中含有abc的内容

4、修改文件内容(vi,vim)

1.vim的三个模式

 

 

第二章用户管理

一、用户与用户组的概念

1、为什么要做用户与用户组管理

用户和用户组管理,就是添加用户和用户组,针对每个用户设置不同的密码。

问题:大家平时的笔记本电脑,会设置多个账户吗?为什么?

服务器要添加多账户的作用

​ 针对不同用户分配不同的权限,不同权限可以限制用户可以访问到的系统资源 ​ 提高系统的安全性 ​ 帮助系统管理员对使用系统的用户进行跟踪

2、Linux的用户及用户组

①Linux的多用户多任务

​ Linux 系统是一个多用户多任务的操作系统,所谓多用户多任务,是指支持多个用户在同一时间内登陆,不同用户可以执行不同的任务,并且互不影响。

​ 例如:

​ 小明所在的运维团队一共有四个人,分别有大毛,二毛,三毛,大毛负责网站,他的账户叫wangzhan, 二毛负责数据库,他的账户叫shujuku。

​ 在同一时间,大毛和二毛都可以登录这台服务器,大毛可以查询网站的日志,二毛可以处理数据库的问题,他们之间互不影响。

 由于我们设置了权限,大毛只能访问网站的日志,无法访问数据库;二毛可以处理数据库问题,但是不能访问网站的日志。这就实现了我们的多用户多任务的运行机制。

②什么是用户

​ 任何一个运维人员想要登录服务器,都必须先申请一个账号,然后以这个账号的身份进入系统,就像我们前面说的wangzhan这个账号。 ​ 每个账号都拥有一个唯一的用户名和各自的密码,用户在登录时输入正确的用户名和密码后,就能够进入系统,默认会进入到这个用户自己的主目录

③什么是用户组

​ 用户组是具有相同特征用户的逻辑集合,简单来说,就是具有相同*权限*的用户的集合。 ​ 例如:人事部有20名员工,他们都需要访问一个文件夹,如果我们给这20个用户的账号分别设置权限,这样太麻烦了,所以我们会建立一个用户组叫HR,对这个组设置权限,将这20个用户加入这个组就可以了。

④用户和用户组的关系

​ A 一个用户可以属于一个用户组,具有此用户组的权限

​ HR组可以访问/hrfile的文件夹,当user01属于HR组,那么user01就可以访问/hrfile这个文件夹

​ B 一个用户可以属于多个用户组,此时具有多个组的共同权限

​ HR可以访问/hrfile的文件夹,运维可以访问/yunweifile的文件夹,当user01同时属于HR组和运维组,那么user01可以访问 /hrfile和/yunweifile

​ C 多个用户可以属于一个用户组,多个用户都具有此用户组的权限。

​ 主组:指用户创建时默认所属的组,每个用户的主组只能有一个。创建用户时会同时创建一个和用户名相同的组

​ 例如:添加用户xiaoming,在建立用户 xiaoming 的同时,就会建立 xiaoming 组作为 xiaoming 用户的初始组。

​ 附加组:每个用户只能有一个主组,除主组外,用户再加入其他的用户组,这些用户组就是这个用户的附加组。 ​ 每个用户的附加组可以有多个,而且用户可以有这些附加组的权限。

3.通常用户和用户组的管理,包含以下工作:

☆ 用户组的管理

☆ 用户账号的添加、删除、修改以及用户密码的管理

注意三个文件:

☆ /etc/passwd 用户配置文件,存储用户的基本信息

☆ /etc/group 存储用户组的信息

☆ /etc/shadow 存储用户的密码信息

二、用户和用户组管理

1、用户组管理

​ 用户组的管理包括用户组的添加、删除和修改。

① 用户组添加

命令:groupadd

作用:添加组

语法:# groupadd [参数选项 选项值] 用户组名

选项:-g:设置用户组ID 数字,如果不指定,则默认从1000 之后递增(1-999系统组)

```powershell 用法一:groupadd 组名 示例代码:

groupadd hr

含义:新建一个组叫做hr ```

存储用户组信息的文件:/etc/group

使用cat命令,查看/etc/group文件,我们可以看到如下图所示:

② 用户组修改

命令:groupmod

语法:# groupmod [选项 选项值] 用户组名

选项:-g :gid缩写,设置一个自定义的用户组ID 数字

​ -n :name缩写,设置新的用户组的名称

示例代码:修改hr用户组,将组ID改成1100,将名称改为bjhr

```powershell 用法一:groupmod -g 新的组ID -n 新的组ID 原有组ID 示例代码:

groupmod -g 1100 -n bjhr hr

含义:将hr组的组ID改成1100,组名改成bjhr ```

③ 用户组删除

命令:groupdel

语法:# groupdel 用户组名

案例:删除bjhr组

```powershell 用法一:groupdel 组名 示例代码:

groupdel bjhr

含义:将bjhr组删除 ```

2、用户管理

用户的管理涉及用户的添加、删除和修改。

与用户相关的文件:/etc/passwd

①useradd添加用户

命令:useradd

作用:添加用户

语法:# useradd [选项 选项的值] … 用户名

选项:-g:表示指定用户的用户主(主要)组,选项值可以是用户组ID,也可以是组名

​ -G:表示指定用户的用户附加(额外)组,选项值可以是用户组ID,也可以是组名

​ -u :uid,用户的id(用户的标识符),系统默认会从500 /或1000之后按顺序分配uid,如果不想使用系统分配的,可以通过该选项自定义【类似于腾讯QQ 的自选靓号情况】

 -c:comment,添加注释(选择是否添加)

​ -s:指定用户登入后所使用的shell 解释器,默认/bin/bash【专门的接待员】,如果不想让其登录,则可以设置为/sbin/nologin (重要)

​ -d:指定用户登入时的启始目录(家目录位置)

​ -n:取消建立以用户名称为名的群组(了解)

​ 当我新建一个账户叫user01, 同时,系统会自动建立一个组也叫user01

```powershell 用法一:useradd 用户名 示例代码:

useradd zhangsan

含义:创建用户zhangsan,不带任何选项。 `````powershell gzhr行的含义:在gzhr的组里(组id 是1002)有一个组内用户lisi(lisi 的附加组就是1002,附加组的名字是gzhr)。 如果需要为一个用户指定多个附加组,只需要将多个附加组的id 通过英文逗号“,”分割即可。 例如-G 500,501,502

 ① 主组只能有1 个(类似于亲生父母只有一对),附加组可以多个,也可以没有附加组(类似于认干爹干妈,可以有也可以没有,也可以有多个) ② 主组必须有 ③ 后期将权限管理的时候,关于文档的属组指的是主组(了解) ```

 ③id查看用户信息

命令:id

 作用:查看一个用户的一些基本信息(包含用户id,用户组id,附加组id…),该指令如果不指定用户则默认当前用户。

语法1:# id 默认显示当前执行该命令的用户的基本信息

语法2:# id 用户名, 显示指定用户的基本信息

如何验证以上信息是否正确?

答:验证用户信息:通过文件/etc/passwd,验证用户组信息:通过文件/etc/group

④usermod修改用户

命令:usermod(user modify)

语法:# usermod [选项 选项的值] … 用户名

作用:修改用户的各种属性

选项:-g:表示指定用户的用户主组,选项的值可以是用户组的ID,也可以是组名

​ -G:表示指定用户的用户附加组,选项的值可以是用户组的ID,也可以是组名

​ -u:uid,用户的id(用户的标识符),系统默认会从500 之后按顺序分配uid,如果不想使用系统分配的,可以通过该选项自定义【类似于腾讯QQ 的自选靓号情况】

​ -L:锁定用户,锁定后用户无法登陆系统lock

​ -U:解锁用户unlock

​ -c<备注>:修改用户帐号的备注文字

​ -d<登入目录>:修改用户登入时的目录

​ -s:修改用户登入后所使用的shell

企业场景2:

​ 公司员工wangwu,属于shhr部门,现在要休产假,产假期间,暂时停止她登陆电脑的权限,同时原来属于gzhr部门的员工lisi,负责wangwu的工作,所以,需要把lisi加入到shhr的组,同时,修改lisi的账户注释为“gzhr shhr user”

​ 对于wangwu用户,我们要执行锁定和解锁操作

​ 对于lisi用户,我们要将lisi加入到shhr的附加组,同时修改lisi账户的注释

```powershell 用法一:usermod -L 王五账户名 示例代码:

usermod -L wangwu

含义:将王五账户暂时锁定

 用法二:usermod -U 王五账户名 示例代码:

usermod -U wangwu

含义:将王五账户解锁 ```

```powershell 用法三:usermod -G 组名 -c “注释内容” 李四用户账号 示例代码:

usermod -G shhr -c "shhr user" lisi

含义:将李四的账户加入shhr组,并修改注释内容为shhr user ```

⑤passwd修改用户密码

​ Linux 不允许没有密码的用户登录到系统,因此前面创建的用户目前都处于锁定状态,需要设置密码之后才能登录计算机。

命令:passwd

语法:# passwd 用户名 【如果不指定用户名则修改自己的密码

作用:修改用户密码

⑥认识/etc/shadow文件

​ 由于 /etc/passwd文件允许所有用户读取,易导致用户密码泄露,因此 Linux 系统将用户的密码信息从 /etc/passwd 文件中分离出来,并单独放到了shadow文件中。

​ /etc/shadow 文件只有 root 用户拥有读权限,其他用户没有任何权限,这样就保证了用户密码的安全性。

与用户密码相关的文件:/etc/shadow

为用户设置密码之后,会自动在/etc/shadow文件中进行体现,使用vim编辑器打开:

第一列为用户名,例如zhangsan

后面是加密后的密码,就是\$开头的字符串

如果显示为!!,则表示这个用户没有设置密码。

由以上截图所知,zhangsan,lisi是没有设置密码的。wangwu我们刚刚设置了密码,所以显示为一个加密的字符创

任务:新建一个账户叫ityunwei

​ 新建第二个账户叫shichang

​ 给ityunwei账户设置一个密码

​ 进入shadow文件,观察两个账户的区别

⑦su切换用户

​ 在设置用户密码之后就可以使用此账号进行登录系统了,如果系统处于已登录状态,则可以使用su命令进行切换用户。

​ 为了系统安全,企业中通常不会允许root用户直接登录计算机,但是工作需要,我们又需要使用root权限,这时候,我们就可以先使用一个普通用户登录计算机,再通过su命令切换到root权限。

命令:su

语法:# su [-] 账号

作用:切换用户

```powershell 用法一:su 用户名 示例代码:

su root

含义:切换到root权限

注意: a. 从root 往普通用户切换不需要密码,但是反之则需要root 密码; b. 切换用户之后前后的工作路径是不变的,添加了选项[-]会自动切换到用户的家; c. 普通用户没有办法访问root 用户家目录,但是反之则可以; ```

启用wheel组设置(了解)

步骤1:使用vim编辑器 打开/etc/pam.d/su文件

步骤2:编辑文件,去掉auth required pam_wheel.so use_uid这一行前面的#,使这一行配置生效

步骤3:下面是去掉#后的状态

步骤4:保存退出 :wq这时,只有在wheel组内的用户才可以su到root

⑧userdel删除用户

命令:userdel

语法:# userdel 选项 用户名

作用:删除账户及其对应家目录

选项:-r:表示删除用户的同时,删除其家目录/home下的对应文件夹

注意:已经登录的wangwu用户删除的时候提示删除失败,但是没有登录的lisi 用户可以正常删除,那这个时候想删除wangwu怎么办呢?

解决办法:简单粗暴,kill 对应用户的全部进程

提示:所有跟用户操作的命令(除passwd 外,只能修改自己的密码,即不指定用户名)只

有root 超级管理员有权限执行。

三、Linux下用户管理

1,用户的分类

a)    超级用户超级用户,也叫管理员,root。该用户(root)具有所有权限,UID=0并且绝对只能是0。

b)    系统用户系统用户,也叫程序用户。一般都是由程序创建,用于程序或者服务运行时候的身份。默认不允许登录系统。1<=UID<=499比如后面要学的web服务的管理用户apache,文件共享ftp服务的管理用户ftp等 注意:Centos7/RHEL7中,系统用户UID范围:1<=UID<=999

c)    普通用户普通用户,一般都是由管理员创建,用于对系统进行有限的管理维护操作。

默认可以登录系统。500<=UID<=60000 注意:Centos7/RHEL7中,普通用户UID范围:1000<=UID<=60000

 

posted @ 2023-10-21 18:53  小阳长不高了  阅读(22)  评论(0)    收藏  举报