Linux之文件和用户管理(二)

一、临时文件与相对路径

1. 前提场景

当你在编辑文件的时候 ,例如:用vim /1.txt 打开了一个文件并且编辑写入了内容,但是接下来却没有保存而强制退出了;
这时候你再用 vim 1.txt打开此文件,会报E325错误;
会有提示,你是要打开1.txt文件(编辑第一次写的东西)还是.1.txt.swp文件(还是要编辑第二次没保存的东西);
vim /1.txt 原来的文件还在的;
vim /.1.txt.swp 这一份,是服务器给你的备份 意外关闭之前的也在(未保存文件);
文件名前面有.代表隐藏。

2.vim未正常关闭,产生的临时文件的解决方法

1.查看隐藏文件 ls -a 路径 (-a all);
2.使用rm 删除此文件即可

3. 相对路径

 - 什么是相对路径?
 - 有什么用?
 - 好吗?

(1)什么是绝对路径?

  • 从根开始描述:
    例如:/home/abc/1.txt
  • 定位文件,能找到所有的文件。
  • 缺点:路径名长
    例如:mkdir -p /aa/bb/cc/dd/ee/ff/gg/hh
    需求1. 在/aa/bb/cc/dd/ee 下创建3个文件
    touch aa/bb/cc/dd/ee/file1;
  • 解决方法:cd 改变目录 接着touch ./file1.txt

(2)什么是相对路径?

相对路径  基于当前位置的说法
1.两种表达式: 当前目录 .
			 当前目录 (什么都不打)  
			 上一级目录 ..
2.省去输入那么多的路径
前提是先cd 到目标目录;

二、用户管理

1. 用户和组的基本概念和作用

(1)概念:

Linux系统是一个多用户多任务的分时操作系统,任何一个要
使用系统资源的用户,都必须首先向系统管理员申请一个账
号,然后以这个账号的身份进入系统。

用户的账号一方面可以帮助系统管理员对使用系统的用户进行
跟踪,并控制他们对系统资源的访问;另一方面也可以帮助用
户组织文件,并为用户提供安全性保护。

每个用户账号都拥有一个唯一的用户名和各自的口令。

用户在登录时键入正确的用户名和口令后,就能够进入系统和
自己的主目录。

实现用户账号的管理,要完成的工作主要有如下几个方面:
用户账号的添加、删除与修改。
用户口令的管理。
用户组的管理。

在这里插入图片描述

用户和组系统上的每个进程(正在运行的程序)都作为一个特定的用户运行。
每个文件都由特定的用户拥有。
对文件和目录的访问受到用户的限制。
与正在运行的进程关联的用户决定该进程可访问的文件和目录。

用户组(group)介绍
简单的说,linux系统中的用户组(group)就是具有相同特性的用户(user)集合;
有时我们需要让多个用户具有相同的权限,比如查看、修改某一个文件或目录,如果不用用户组,这种需求在授权时就很难实现。如果使用用户组就方便多了,只需要把授权的用户都加入到同一个用户组里,然后通过修改该文件或目录的对应的用户组的权限,让用户组具有符合需求的操作权限,这样用户组下的所有用户对该文件或目录就会具有相同的权限,这就是用户组的用途。
将用户分组是linux系统中对用户进行管理及控制访问权限的一种手段,通过定义用户组,在很大程度上简化了运维管理工作。
实际上,在日常生活中,对人类的分组也是无处不在的,达到国家,小到公司,家庭,学校,班级等等都类似linux中用户组的概念,而其中的成员就类似linux用户组中用户的概念。

(2)作用

控制所有文件,所有程序的关键信息
  1. 查看当前登录的用户信息
  2. 查看文件的owner
  3. 查看运行进程的username

(3)用户组信息存储的文件

1. 用户基本信息文件

/etc/passwd: 用户基本信息文件
/etc/shadow: 用户密码信息文件
/etc/group: 组信息文件

IDC
Internet database center
互联网  数据  中心
所有的计算机放在一起的地方  大带宽 数十T
下资料 不到1s就爆了
电源
每台服务器:双电 (市电,UPS【不间断供电系统】,油机发电机)
head -1 /etc/passwd
root: x: 0: 0: root: /root: /bin/bash
7列(以:隔开)
==============
/etc/passed (冒号分割为7列字段)
root: x: 0: 0: root: /root: /bin/bash
用户名:x:uid:gid:描述:HOME:shell

系统约定:RHEL7
uid 0 特权用户
uid 1 ~ 499 系统用户
uid 1000+ 普通用户
1.root: 用户名:登录系统的名字
2.X:密码占位符: ,具体内容不在这里面
3.0:UID: 用户的身份证号 
4.0:GID: GROUP组号
5.root:描述:比如经理manager 一般不变就用root
6./root:家目录: 登录系统时,所在目录
(普通用户的家目录在哪里?)/home/zs
7./bin/bash:登录shell:命令解释器 
bash “迎接”
nologin 不允许登录
SHELL 壳(用“壳”控制系统,控制内核)
功能:命令解释器 
	定义命令
	接收命令
	执行命令
版本多:ashell, bshell, cshell, tshell, bash

/sbin/nologin指的是不允许login当前Linux系统。当用
户配置成/sbin/nologin时,如果再使用该用户ssh到
linux操作系统,会提示如下内容:This account is 
currently not available。该功能类似于封掉某个帐
户。

2. 用户密码信息文件

加密的意义
1.私密性
2.完整性
3.不可否认性
对称性密码 (钥匙一样)
非对称性密码 (钥匙不一样)
对称加密过程和解密过程使用的同一个密钥,加密过程相当于
用原文+密钥可以传输出密文,同时解密过程用密文-密钥可
以推导出原文。但非对称加密采用了两个密钥,一般使用公钥
进行加密,使用私钥进行解密。
MD5 DES 3DES AES DF 散列对数(私钥 公钥)
/etc/shadow(9)
$1$MYG2N 加密后的密码
加密算法$id$salt$encrypted
密码区域解释:三部分组成:$符号分开。第一部分是加密算
法,1:md5加密,5:SHA-2566:SHA-512;第二部分是随
机序列号,salt值;第三部分是随机序列号和密码共同加密
后的字符串。
$1:MD5
$5:SHA-256
$6:SHA-512
root:$1$MYG2NDG6$alwtyr5GDM2:15636:0:99999:7: : :
1)登录名
2)口令字段存放的是加密后的用户口令字, 如果为空,则对
应用户没有口令,登录时不需要口令;
星号代表账号被锁定;
双叹号表示这个密码已经过期了。
$2 是用Blowfish加密的
3)最后一次修改时间,表示的是从历史上的某个时刻起,到
用户最后一次修改口令时的天数。时间起点对不同的系统可能
不一样。
例如:在SCOLinux中,这个时间起点是197011日。
4)最小时间间隔:指的是两次修改口令之间所需的最小天数
0 表示当天即可修改密码,5: 必须过5天才能修改密码
5)最大时间间隔:99999密码有效期无限(硬规则)
/*
密码过期:
	用户会感受到什么?
	a)用户需成功的输入用户名和密码
	b)提示:你的密码已过期,请修改你的密码
	c)输入框,输两次新密码
	d)登录成功
怎么修改密码?
*/
6)警告时间,表示的是从系统开始警告用户到用户密码正式
失效之间的天数。(软规则)
7)不活动时间,表示的是用户没有登录活动但仍能保持有效
的最大天数。(软限制) 禁用户
例如:28,代表用户创建后,若一直不登录系统,但会为其
保留28天,认为其是不活跃用户,超过28天后,就禁用此用
户了
8)失效时间,30,到了30天,你的账号就不能用了
禁用户
9)保留,现在还没有什么用。什么意思都没有 

3. 组信息文件

系统会自动创建跟用户名同名的组
/etc/group (4)
root:x:0:
组名:组密码:组ID:组成员 

2. 用户/组管理

(1)用户:

1. 创建用户 未指定选项

(超管)创建 查询 修改密码
创建完用户,文件会在home(所有用户的家)下
1. useradd user01(若user01已存在会提示)
2. id user01 查询用户命令
3. passwd user01 修改密码(密文输入 不显示)

如果创建一个用户时,未指定任何选项,系统会创建一个和用
户名相同的组作为用户的Primary Group.

/var/spool/mail/user01   专门放用户的邮件

在这里插入图片描述

2. 创建用户 指定选项

(用户刚登录进去就在他的家目录下 终端 pwd   /home/user01)
useradd user02 -u 1503 (-u 指定用户的uid)
1. -u 指定用户的uid
2. -d 指定用户的家目录(directory)(不一定放在/home 下)
3. useradd --help 查询帮助文档

3. 删除用户

userdel 删除

userdel -r user02

-r 一定要加 因为删除用户只会从配置文件清理其信息,
不会清理其主目录,例如home下的用户信息是清不掉的;-r
代表把用户相对应的目录(家目录)一并删除.

4. 用户密码

看身份:
1.root 可以修改其他的用户
passwd user01

2.普通用户,自己修改密码。
passwd

5.组成员管理

6. 其他选项管理

usermod 修改用户属性
s shell
1. usermod -s /sbin/nologin user01
修改登录shell 不让登录

(2)用户组:

用户组操作

用户和组和文件和权限的关系:
把权限授予组
把用户加入到组 什么样的组有什么样的权限
把用户踢出组 就不再拥有该权限

用户和组是不一样的 (用户名和组名不能用纯数字 因为ID也是数字会混淆 )

shadow passwd 是关于用户的信息
group 是关于组的信息

1. groupadd hr(组名)

grep hr /etc/group (/etc/group 文件里面搜索hr) 

2. groupadd net01 -g 2000 (g - gid 使组ID为2000)
-g 制定用户的基本组!!!
-u 制定用户的UID 
-G 制定用户的附加组
/etc/group 可以查看用户的附加组 id 命令也可以看

3. groupdel net01 删除组

(用户必须得有一个组)
4.gpasswd -d A GROUP 
A 是用户
GROUP是组名
把用户A从GROUP组中移除。

用户组分类(两类)

(无论评判基本组还是附加组是相对于“用户”来说的!!!)
(一个用户可以同属于多个组)
(组放用户)
(用户的基本组,显示在/etc/passwd)
(组也可以配密码 )
1. 基本组:随用户而创建,组名跟用户名一样。基本组有且只有一个

2. 附加组:(可以有很多个)用户加入的其他组
例如:a用户加入到b用户的组b中成为组b的成员,此时a用户将得到两个不同类型的组,a用户的附加组有b组

groupadd hr 
这个组hr 里面什么用户都没有,所以什么组类型都不是。

那么Q:a用户和a组什么关系?(a组里面有a用户和b用户)
a组:对于a用户是基本组
	对于b用户是附加组 
	对于c用户一点关系都没有
	
(组名不可以重复)
3. 案例


 
useradd AAA
useradd BBB
groupadd CCC
usermod AAA -g CCC  把A用户的基本组修改为CCC(则
AAA的基本组AAA里面无用户了)
usermod BBB -G CCC  添加B用户的附加组CCC

3.提权(了解 )

需要执行特殊指令时,使用su切换到超管身份
su - root 切换成超管(推荐使用此种,后面会给出解释)
su root 切换成超管
切换用户时,需要知道对方密码
exit退出切换用户

(1)永久提权Switching users with su

(切换用户 提升权限)
su - root 切换成超管
su 只要不退出来就是永久提权

(2)临时提权Running commands as root with sudo(像管理员一样使用命令)

sudo 
1.使用普通用户登录服务器。
2.完成部分特权指令。
3.如何分配权限?(以root用户才行)
user MACHINE=COMMANDS
用户 登录的主机=(可以变换的身份)可以执行的命令



例:创建普通用户sk, 使其具有sudo特权  
(要在配置文件里面先配置)
1.vim /etc/sudoers
2.%wheel ALL = (ALL) ALL [107] : ALL 所有权限
3. useradd sk -G wheel (把这个新创建的用户放到wheel组里 附加组) 
4.(在sk 用户下)sudo useradd useruser
(第一次会提示输入sk的密码)
(要加上提权指令sudo)

猜你喜欢

转载自blog.csdn.net/weixin_43306271/article/details/121932567