文件和用户管理

news2024/11/15 8:45:27

Linux基础

提示:个人学习总结,仅供参考。
一、Linux系统部署

二、服务器初始化

三、文件和用户管理


提示:文档陆续更新整理

文件和用户管理

  • Linux基础
  • 一、Linux目录结构
  • 二、文件管理
    • 1.文件类型
    • 2.文件管理命令
  • 三、用户管理
    • 1. 用户/组基本概念
    • 2. 用户/组管理


提示:以下是本篇文章正文内容,下面案例可供参考

一、Linux目录结构

在 Linux 操作系统中,所有的文件和目录都被组织成以一个根节点“/”开始的树状结构。 其中,目录就相当于 Windows 中的文件夹,目录中存放的既可以是文件,也可以是其他的子目录,而文件中存储的是数据。 文件系统的最顶层是由根目录开始的,系统使用“/”来表示根目录,在根目录之下的既可以是目录,也可以是文件,而每一个目录中又可以包含(子)目录或文件。

Linux目录结构图如下所示:
在这里插入图片描述

Linux目录结构详解
/ 根目录
bin 二进制目录(常用)。如:/bin/ls,/bin/date
boot 启动目录
dev 驱动目录,硬件类(常用)
etc 配置文件目录或者控制台文件目录(常用)
home 家目录,用于存放用户文件(常用)
root 超级管理员的家目录,只能超级管理员用户才能进入
run 运行文件,会自动清除
sbin 超级管理员使用(常用)
tmp 临时目录
usr 应用程序存放目录(常用)
var 存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件。

二、文件管理

1.文件类型

常见类型:
-普通文件(文本文件,二进制文件,压缩文件,电影,图片等)
d目录文件(蓝色)

非常见类型:
b 设备文件(块设备)存储设备硬盘,U盘/dev/sda,/dev/sda1
c 设备文件(字符设备)打印机,终端/dev
I 链接文件(淡蓝色)
s 套接字文件
p 管道文件

2.文件管理命令

  • 改变目录
语法:cd 绝对路径或相对路径
	
//cd 绝对路径
[root@localhost ~]#cd /home/alice
	
//cd 相对路径
[root@localhost ~]#cd . ..
	
//打印当前路径
[root@localhost ~]#pwd
	
//列出目录
[root@localhost ~]#ls
	
//长格式列出目录
[root@localhost ~]#ls -l
  • 创建文件
语法:touch 路径和名字
[root@localhost ~]#touch /file1.txt

//创建文件file1.txt,file2.txt,file3.txt,file4.txt,file5.txt
[root@localhost ~]#touch file{1..5}.txt

[root@localhost ~]#touch /aaa/bb/ccc
  • 创建目录
语法:
mkdir 路径和目录名
mkdir -p 路径和目录名  //父系,当创建目录没有上一级时,自动创建
	
[root@localhost ~]#mkdir aaa
[root@localhost ~]#mkdir /aaa/bbb /ccc/ddd
[root@localhost ~]#mkdir /aaa/{bbb,ccc}
	
//显示详细信息,遍历
[root@localhost ~]#mkdir -v /aaa/{bbb,ccc}
	
//包括其父母的创建,不会有任何消息输出
[root@localhost ~]#mkdir -pv /aaa/bbb/ccc/ddd
[root@localhost ~]#mkdir -pv /aaa/bbb/{ccc,ddd},eee
	
//bbb文件夹下创建ccc和fff文件夹,并且在ccc下创建ddd和eee文件夹
[root@localhost ~]#mkdir -pv /aaa/bbb/{ccc/{ddd,eee},fff}
  • 复制
语法:	cp 源文件路径 目标文件夹

[root@localhost ~]#cp /home/aa/bb/cc/dd  /root/桌面/

语法:	cp -r 源文件夹 目标文件文件夹

//将aa文件夹拷贝到桌面
[root@localhost ~]#cp -r /home/aa  /root/桌面
  • 移动
语法:	mv 源文件路径  目标文件路径

[root@localhost ~]#mv /home/aa/bb  /root/桌面/

//将bb文件移动到桌面并且改名字为cc,但必须没有同名的文件
[root@localhost ~]#mv /home/aa/bb  /root/桌面/cc  
  • 删除
语法:	rm -rf 文件或目录的路径

//删除b1文件夹下c开头的所有文件
[root@localhost ~]#rm -rf /home/a1/b1/c*
  • 查看文件内容
推荐查看的命令
 1. cat
	cat 查看文件全部内容

 2. more
	more 翻页  (回车换行,空格翻页)
	

 3. head
	head 查看文件头部内容
	语法: head -2 文件路径

 4. tail
	tail 查看尾部内容
	语法: tail -2 文件路径

 5. grep
	grep过滤关键字
  • 修改文件内容

 1. 重定向
[root@localhost ~]#ls -a > list.txt
        生成命令的指令 写入(>) 目标路径
        
 2. 文件编辑器1:图形文件编辑器 gedit
[root@localhost ~]#gedit /tmp/test

 3. 文件编辑器2:vi/vim
	vi的三个模式:命令行模式,编辑模式,末行模式

命令行模式:
3.1 光标定位
	hjkl             //上下左右
	0 $             //行首行尾
	gg G          //页首页尾
	3G             //进入第三行
	/string(n N 可以循环的)     //查找字符,按n键选下一个(重要)
	
3.2 文本编辑
	y		//复制
	d		//删除
	p		//粘贴
	u undo	//撤销

	dd		//删除行
	5dd		//删除5行
	yy		//复制
	3yy		//复制3行
3.3 进入其他模式
	a 		//进入插入模式
	i 		//进入插入模式
	o 		//进入插入模式
	A 		//进入插入模式

	: 		//进入末行模式 (扩展命令)
	v 		//进入可视模式
	ESC 	//返回命令行模式

扩展命令模式(末行模式):
	保存退出
	:w 		//保存
	:q		//退出
	:wq		//保存并退出
	
	查找替换
	: 范围 s/原内容/新内容/全局
	:1,5 s/root/test/g   从1-5行的root替换为test
	
	读入文件/写文件(另存为)
	:w /tmp/aaa.txt    另存为/tmp/aaa.txt
	
	设置环境
	:set nu   设置行号
	:set list   显示控制字符
	:set nonu  取消设置行号

三、用户管理

1. 用户/组基本概念

用户组作用:查看当前登录的用户信息,查看文件的owner,查看运行进程的username

用户基本信息文件:/etc/passwd

/etc/passwd(冒号分隔为7列字段)
root: x:0:0:root:/root:/bin/bash
用户名: x:uid:gid:描述:HOME:shell

用户名:登录系统的名字
X:密码占位符,具体内容不在这里
0:UID:用户的身份证号
系统约定:RHEL7
uid:0 特权用户
uid:1~499 系统用户
uid:1000+ 普通用户
0:GID:GROUP 组号
root:描述 比如:经理 manager
/root家目录:登录系统时,所在目录
普通用户的家目录在哪? /home/用户名/
/bin/bash: 登录shell:命令解释器

在这里插入图片描述

www : x: 1000: 1000: : /home/www :/bin/bash
用户名:密码占位符:UID:GID:描述:家目录 :登录shell

用户基本信息文件:/etc/passwd

www:x:1000:1000::/home/www:/bin/bash

用户名:登录系统的名字
X:密码占位符,具体内容不在这里
0:UID:用户的身份证号
	系统约定:RHEL7
	uid:0 特权用户
	uid:1~499 系统用户
	uid:1000+ 普通用户
0:GID:GROUP 组号
root:描述  比如:经理  manager
/root家目录:登录系统时,所在目录
普通用户的家目录在哪? /home/用户名/
/bin/bash: 登录shell:命令解释器

用户密码:/etc/shadow

在这里插入图片描述

chrony:!!:19253::::::
www:!!:19462:0:99999:7:::
1)“登录名”是与/etc/passwd文件中的登录名相一致的用户账号
2)“口令”字段存放的是加密后的用户口令字,如果为空,则对应用户没有口令,登录时不需要口令:星号代表帐号被锁定;
双叹号表示这个旁码已经过期了
  $6$开头的,表明是用SHA-512加密的
  $1$ 表明是用MD5加密的
  $2$ 是用Blowfish加空的
  $5$ 是用 SHA-256加密的

3) “最后一次修改时间”表示的是从某个时刻起,到用户最后一次修改口令时的天数。时间起点对不同的系统可能不样。例如在SCOLinux中,这个时间起点是1970年1月1日。
4)“最小时间间隔”指的是两次修改口令之间所需的最小天数
5)”最大时间间隔”指的是口令保持有效的最大天数。
6)”警告时间”字段表示的是从系统开始警告用户到用户密码正式失效之间的天数。
7)"不活动时间”表示的是用户没有登录活动但账号仍能保持有效的最大天数。(软限制。到期后多少天就不能用账号了
8)“失效时间”字段给出的是一个绝对的天数,如果使用了这个字段,那么就给出相应账号的生存期。期满后,该账号就不再是一个合法的账号,也就不能再用来登录了。(硬限制。)
9)保留

组信息:/etc/group
在这里插入图片描述

root: x:0:
test: x:1505:1505
组名:组密码:组ID:组成员

2. 用户/组管理

用户管理

//创建用户,未指定选项(UID)
useradd user01  //创建用户user01
id user01    //查询用户命令id
passwd user01 //修改密码passwd

//创建用户 指定选项
useradd user02 -u 1502  //创建用户user02,指定uid
useradd user03 -d /aaa //创建用户user03,指定家目录

//删除用户
userdel -r user02  //删除user02用户并删除该用户的文件

//用户密码
	方法一:root修改其他用户(alice)密码
passwd alice
	方法二:用户登录,自己修改密码
passwd

//组成员管理
//注意:usermode -G 组名 用户名
usermode -G hr user01

//其他选项管理
	usermod -s /sbin/nologin user01  //修改登录shell

用户组管理

  • 操作
//创建用户组
groupadd hr

//添加组net01,并指定gid 2000
groupadd net01 -g 2000

// 查看/etc/group钟组net01信息
grep ‘net01’ /etc/group

//删除组net01
groupdel net01

//A是用户名,GROUP是组名
gpasswd -d A GROUP    //把A 从 GROUP 移除
  • 分类

基本组
随用户创建,自动创建的同命组
用户的基本组,显示在/etc/passwd
附加组
用户加入的其他组

案例:
1. useradd是创建用户的命令
2. usermod是修改用户的命令
3. groupadd是创建组的命令
4. -u 指定用户的UID
5. -g 制定用户的基本组
6. -G 制定用户的附加组
7. /etc/passwd 可以查看的是用户的基本组
8. /etc/group 可以查看用的附加组。id命令也可以查看

一、创建用户AAA,同时生成基本组AAA
useradd AAA
grep AAA /etc/passwd
AAA:x:1507:1508::/home/AAA:/bin/bash
//AAA(用户名):x(密码占位符):用户ID:组ID:描述:HOME:shell

二、创建用户BBB,同事生成基本组BBB
useradd BBB
grep BBB /etc/passwd
AAA:x:1508:1509::/home/AAA:/bin/bash

三、创建组CCC
groupadd CCC
grep CCC /etc/group
CCC:x:1510:
//组名:组密码:组ID:组成员

四、修改用户AAA的基本组为CCC
usermod AAA -g CCC

五、查看passwd中,用户的基本组是CCC
grep AAA /etc/passswd
AAA:x:1507:1510::/home/AAA:/bin/bash

六、修改用户BBB的附加组为CCC
usermod BBB -G CCC
grep BBB /etc/passswd   //查看用户BBB的基本组
BBB:x:1508:1509::/home/BBB:/bin/bash

七、查看group中,用户BBB的附加组是CCC
grep CCC /etc/group
CCC:x:1510:BBB


结论
用户AAA,基本组1508改为1510,附加组为空
用户BBB,基本组1509,              附加组1510
组CCC,组号1510,开始和谁都没关系,最后有两个成员,一个AAA,一个BBB
id AAA
uid=1507(AAA) gid=1510(CCC) 组=1510(CCC)
id BBB
uid=1508(BBB) gid=1519(BBB) 组=1509(BBB),1510(CCC)

gpasswd -d BBB CCC  //把BBB用户从CCC组中移除

groupdel AAA  //删除组AAA

提权

一、永久提权Switching users with su
1. 普通用户没有特权
2. 尽量少用root
3. 普通用户需要执行特殊指令时,使用su - root 切换到root身份
su - root
su root

二、临时提权Running commands as root with sudo
sudo简介
	将当前用户切换到超级用户下
	然后以超级用户身份执行命令,执行命令完成后
	具体工作过程如下:
	当用户执行sudo时,系统会主动寻找/etc/sudoers文件,并判断该用户是否有权限
	-->确认用户具有可执行sudo的权限后,让用户输入用户自己的密码确认
	-->若密码输入成功,则开始执行sudo后续的命令
	
提权方法1:sudo配置文件的语法
	##语法
	##   user   MACHINE=COMMANDS    
	## 用户登录的主机=(可以变换的身份)可以执行的命令
	
	目标
		创建普通用户test,使其具有sudo特权
	示例
		以root身份授权普通用户test

vim /etc/sudoers
%wheel ALL = (ALL)NOPASSWD:ALL
//第107行:允许wheel用户组中的用户在不输入该用户的密码的情况下使用所有命令

useradd test -G wheel    //创建用户test,并指定附加组wheel
passwd test   //创建密码
su - test   //切换用户test,此时登录后利用该用户执行特殊指令执行不成功,需要在前边加上sudo
sudo useradd test01    //此时才能成功创建用户,但是需要输入密码

提权方法2:sudo
	1. 使用普通用户登录服务器时
	2. 完成部分特权指令

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/452814.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MySQL隐式类型转换

当运算符与不同类型的操作数一起使用时,会发生类型转换以使操作数兼容。有些转换是隐式发生的。例如,MySQL会根据需要自动将字符串转换为数字,反之亦然。 转换规则 如果一个或两个参数都为NULL,则比较结果为NULL 。但是相等比较…

Android Wifi 扫描

今天拿了个新需求,要求为工厂开发一个扫地机模组检测功能的App,需求逻辑: 1.可以选择机器支持的WBR3 模组和WR3 模组; 2.可以选择机器热点名称的前缀:Thamtu 和 SmartLife,还有自定义输入前缀&#xff1b…

Java概述

Java语言简史: 是SUN(Stanford University Network,斯坦福大学网络公司 ) 1995年推出的一门高级编程语言。 是一种面向Internet的编程语言。Java一开始富有吸引力是因为Java程序可以在Web浏览器中运行。这些Java程序被称为Java小程序(applet&…

foldersync使用感受

foldersync简介 ​ FolderSync pro是一款功能非常强大的设备本地存储(包括SD卡)文件/文件夹与云存储同步应用。它可以将手机中的文件自动同步到云端空间,支持包括 FTP、WebDAV、Dropbox、 Google Docs 在内的众多空间。 FolderSync Pro 支持各种不同的云服务商和文件…

CTA策略趋势类

趋势策略 趋势策略日内策略Hilbert 策略R-Braker 策略Dual Thrust 策略菲阿里四价策略空中花园策略 日间策略移动平均线MACD 策略Aberration 策略ATR 策略动量策略肯特纳通道自动识别趋势的追涨交易策略 趋势策略 市场只有两种状态:震荡和单边。 而两种市场状态只…

springboot项目:瑞吉外卖 前后端详细分析 part4

part 1 part 2 part 3 part 4 本页 文章目录 5 套餐管理5.1 新增套餐5.1.1 整体分析5.1.2 前端分析5.1.3 后端分析 持续更新中 5 套餐管理 5.1 新增套餐 5.2 套餐信息分页查询 5.3 删除套餐 其他小功能都比较简单且类似,不再赘述 5.1 新增套餐 5.1.1 整体分析 套…

jmeter取样器javaRequest脚本8

1,创建一个maven工程2,通过maven编译打包生成一个jar包3,重启jmeter,新建java request请求4,开始执行脚本本文永久更新地址: 1,创建一个maven工程 在pom.xml文件中添加 maven下载地址:https://mvnrepository.com/artifact/org.apache.jmeter/ApacheJMe…

【MySQL】关于 SQL 语句执行分析的二三事

一、为什么要发生这件事 确实, 平时我们增删改查写的好好的, 各种业务代码,各种小接口写的不亦乐乎,正常是没时间干这个的,但是但是,这不是还有点技术追求嘛,假如我们平时测一个小接口&#xf…

【LeetCode】199.二叉树的右视图

1.问题 给定一个二叉树的 根节点 root,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值。 示例 1: 输入: [1,2,3,null,5,null,4] 输出: [1,3,4] 示例 2: 输入: [1,null,3] 输出: [1,3] 示例 3: 输入: [] 输出: []…

类加载过程

基本说明 反射机制是Java实现动态语言的关键,也就是通过反射实现类动态加载。 静态加载:编译时加载相关的类,如果没有则报错,依赖性太强动态加载:运行时加载需要的类,如果运行时不用该类,即使…

C++关于线程的一些操作

线程创建和接收 std::this_thread::get_id()获取当前线程的线程ID std::this_thread::yield()让步结束当前线程的时间片 int main() {vector<thread> threads(2);threads[0] thread([]() {cout << this_thread::get_id() << endl;});threads[1] thread([](…

Baumer工业相机中偏振相机如何使用Baumer堡盟GAPI SDK来进行偏振数据的计算转换输出(C#)

项目场景 Baumer工业相机堡盟相机是一种高性能、高质量的工业相机&#xff0c;可用于各种应用场景&#xff0c;如物体检测、计数和识别、运动分析和图像处理。 Baumer的万兆网相机拥有出色的图像处理性能&#xff0c;可以实时传输高分辨率图像。此外&#xff0c;该相机还具…

ansible自动运维——ansible使用临时命令通过模块来执行任务

大家好&#xff0c;这里是天亮之前ict&#xff0c;本人网络工程大三在读小学生&#xff0c;拥有锐捷的ie和红帽的ce认证。每天更新一个linux进阶的小知识&#xff0c;希望能提高自己的技术的同时&#xff0c;也可以帮助到大家 另外其它专栏请关注&#xff1a; 锐捷数通实验&…

【机器学习实战】Python基于SVD奇异值分解进行矩阵分解(八)

文章目录 1 前言1.1 奇异值分解1.2 奇异值分解的应用 2 简单计算SVD2.1 NumPy 计算 SVD2.2 scikit-learn 计算截断 SVD2.3 scikit-learn 计算随机 SVD 3 demo数据演示3.1 导入函数3.2 导入数据3.3 计算SVD 4 讨论 1 前言 1.1 奇异值分解 奇异值分解&#xff08;Singular Valu…

信息安全复习四:置换密码乘积密码隐写术

一、章节梗概 置换密码、Rail Fence密码、行置换密码、乘积密码、转子机、隐写术 二、置换技术 2.1 定义 重新排列明文字母&#xff0c;达到信息加密的目的。 与替代密码不同的是&#xff0c;原来明文中的字母同样出现在密文中&#xff0c;只是顺序被打断。 古典的置换密码…

.net6 core Worker Service项目发布部署到Linux,以守护进程服务的形式部署启动

一、发布项目 1、以文件夹形式 2、目标运行时选对应的平台&#xff08;Linux-x64&#xff09; 3、文件夹选项&#xff1a;在发布前删除所有现有文件 二、部署项目&#xff08;安装.net6环境&#xff1a;参考Linux安装 dotnet sdk 6.0&#xff09; &#xff08;1&#xff09;…

《Spring MVC》 第二章 让程序run起来

前言 Spring MVC 是 Spring 框架提供的一款基于 MVC 模式的轻量级 Web 开发框架。 Spring MVC 本质是对 Servlet 的进一步封装&#xff0c;其最核心的组件是DispatcherServlet&#xff0c;它是 Spring MVC 的前端控制器&#xff0c;主要负责对请求和响应的统一地处理和分发。C…

用好Python自然语言工具包-- 实例“基于本地知识库的自动问答”

首先鸣谢thomas-yanxin 本问中示例来自他在GitHub上的开源项目“基于本地知识库的自动问答”&#xff0c;链接如下&#xff1a; thomas-yanxin/LangChain-ChatGLM-Webui: 基于LangChain和ChatGLM-6B的针对本地知识库的自动问答 (github.com) 目录 1. 基础知识&#xff1a; …

JVM调优最佳参数

项目背景 C端的项目&#xff0c;用户量比较多&#xff0c;请求比较多。 启动参数表 Xmx指定应用程序可用的最大堆大小。 Xms指定应用程序可用的最小堆大小。 &#xff08;一般情况下&#xff0c;需要设置Xmx和Xms为相等的值&#xff0c;且为一个固定的值&#xff09; 如果该值…

HCIP之链路聚合、VRRP

链路聚合 链路聚合 --- 可以将多个物理接口绑定成一个逻辑接口&#xff0c;即将N条物理链路聚合为一条逻辑链路。可以在不升级硬件的条件下&#xff0c;达到增加带宽的效果 我们将逻辑链路&#xff0c;称为聚合链路&#xff0c;在华为设备中称为ETH-TRUNK链路&#xff08;这个技…