Linux学习记录(二)

组管理和权限管理

组的基本介绍

在Linux中每个用户必须属于一个组,不能独立于组外;

在Linux中每个文件有所有者、所在组、其他组的概念。

一般来说谁创建了文件,谁就是文件的所有者,用户所在组就是该文件的所在组。

  • 查看文件的所有者

    • 指令:ls -ahl
  • 修改文件的所有者

    • 指令:chown 用户名 文件名
    • 同时修改文件所有者和所有组:chown 用户名:组名 文件/目录名
    • 加上选项-R,会修改某目录及其所有子目录和文件的所有者

image-20240103163308437

  • 修改文件的所在组

    • 指令:chgrp 组名 文件/目录名
    • 加上选项-R,会修改某目录及其所有子目录和文件的所在组,如chgrp -R group1 /home/test1,会将test1和他的所有子目录和文件的所有组都改为group1。

    image-20240103164924514

  • 改变用户所在组

    • 指令:usermod -g 组名 用户名
  • 改变用户登录的初始目录

    • 指令:usermod -d 目录名 用户名
    • 特别说明:用户需要有进入到新目录的权限才行
权限的基本介绍

ls -l中显示的内容如下:

-rw-rw-r--.  1 admin admin  146 Jan  2 05:28 mytest2.tar.gz
-rw-rw-r--.  1 tom   admin  342 Jan  2 05:13 mytest.zip
drwxrwxr-x.  2 admin admin   23 Jan  2 05:26 test2
drwxrwxr-x.  3 admin admin   19 Jan  2 05:29 test3

第1列的0-9 位说明:

  • 第 0 位确定文件类型(d, - , l , c , b)

    • d是目录,相当于 windows 的文件夹
    • l 是链接,相当于 windows 的快捷方式
    • c 是字符设备文件,比如鼠标,键盘 —> /dev/目录下可以看到
    • b 是块设备,比如硬盘 —> /dev/目录下可以看到
    • - 代表是普通文件,比如:.txt
  • 第 1-3 位确定该文件的所有者对该文件的 权限。—User

  • 第 4-6 位确定该文件所属的组和该组中的用户对该文件的 权限。—Group

  • 第 7-9 位确定其他用户(不是所有者,也不是同一组的其他用户)对该文件的权限 。—Other

rwx权限说明

注意要区分是作用到文件还是作用到目录

  • r:可读(read)
    • (文件)可以读取,查看
    • (目录)可以读取,可以用 ls 查看目录内容
  • w:可写(write)
    • (文件)可以修改,但是不代表可以删除该文件,删除一个文件的前提条件是对该文件所在的目录有写权限,才能删除该文件,删除文件相当于是要修改目录
    • (目录)可以修改, 可以对目录进行创建、删除、重命名
  • x:可执行(execute)
    • (文件)被执行,前提是可执行文件
    • (目录)可以进入该目录

image-20240103171539038

修改权限

基本指令:chmod

  • 方法1:+、-、=变更权限

    • u:所有者,g:所有组,o:其他人,a:所有人
    • chmod u=rwx,g=rx,o=x 文件/目录名,为用户赋予权限
    • chmod o+w 文件/目录名,+表示在原有的基础上追加权限
    • chmod a-x 文件/目录名,-表示撤销某权限
  • 方法2:通过数字变更范围

    • r=4,w=2,x=1,rwx=4+2+1=7
    • chmod u=rwx,g=rx,o=x 文件/目录名,相当于chmod 751 文件/目录名
最佳实践:警察-土匪游戏

有两个组:police组,bandit组;有四个用户:jack,jerry,xh,xq;其中jack和jerry是警察,xh和xq是土匪。

  1. 创建组

    [root@localhost ~]# groupadd police
    [root@localhost ~]# groupadd bandit
    
  2. 创建用户(直接放到对应组)

    [root@localhost ~]# useradd jack -g police
    [root@localhost ~]# useradd jerry -g police
    [root@localhost ~]# useradd xh -g bandit
    [root@localhost ~]# useradd xq -g bandit
    
  3. jack创建一个文件,自己可以读写rw,本组人可以读r,其它组没人任何权限

    [jack@localhost ~]$ touch jack.txt
    [jack@localhost ~]$ ll
    total 0
    -rw-r--r--. 1 jack police 0 Jan  3 03:05 jack.txt
    [jack@localhost ~]$ chmod o-r jack.txt
    [jack@localhost ~]$ ll
    total 0
    -rw-r-----. 1 jack police 0 Jan  3 03:05 jack.txt
    
  4. jack修改该文件,让其它组人可以读,本组人可以读写

    [jack@localhost ~]$ chmod o+r,g+w jack.txt
    [jack@localhost ~]$ ll
    total 0
    -rw-rw-r--. 1 jack police 0 Jan  3 03:05 jack.txt
    
  5. xh投靠警察

    [root@localhost ~]# usermod -g police xh
    [root@localhost ~]# id xh
    uid=1004(xh) gid=1004(police) groups=1004(police)
    
  6. 测试xh和xq能不能对jack.txt文件进行读写

    [root@localhost ~]# su - xh
    [xh@localhost ~]$ cd /home/jack
    -bash: cd: /home/jack: Permission denied
    [xh@localhost ~]$ ll /home
    total 4
    drwx------. 16 admin admin  4096 Jan  2 05:11 admin
    drwx------.  5 jack  police  144 Jan  3 03:08 jack
    drwx------.  3 jerry police   78 Jan  3 03:03 jerry
    drwx------.  3 tom   group1   78 Jan  3 00:27 tom
    drwx------.  5 xh    police  107 Jan  3 03:12 xh
    drwx------.  3 xq    bandit   78 Jan  3 03:03 xq
    [xh@localhost ~]$ 
    

    image-20240103191620404

    可见xh虽然有文件jack.txt的读写权限,但是没有目录/jack的访问权限依旧无法修改jack.txt

  7. 解决方案:jack修改其目录的权限为同组可访问

    [jack@localhost ~]$ chmod g+rx /home/jack
    [jack@localhost ~]$ ll /home
    total 4
    drwx------. 16 admin admin  4096 Jan  2 05:11 admin
    drwxr-x---.  5 jack  police  144 Jan  3 03:08 jack
    drwx------.  3 jerry police   78 Jan  3 03:03 jerry
    drwx------.  3 tom   group1   78 Jan  3 00:27 tom
    drwx------.  5 xh    police  128 Jan  3 03:15 xh
    drwx------.  3 xq    bandit   78 Jan  3 03:03 xq
    [jack@localhost ~]$ logout
    [root@localhost ~]# su - xh
    Last login: Wed Jan  3 04:03:08 PST 2024 on pts/0
    [xh@localhost ~]$ cd /home/jack
    [xh@localhost jack]$ ll
    total 0
    -rw-rw-r--. 1 jack police 0 Jan  3 03:05 jack.txt
    [xh@localhost jack]$ echo 'hello' >> jack.txt
    [xh@localhost jack]$ cat jack.txt
    hello
    

结论:如果要对目录内的文件进行操作,首先要有对该目录有访问权限

注意: rwx权限对于文件夹(目录) 的细节讨论和测试!

  • x::表示可以进入到该目录,比如 cd
  • r:表示可以使用指令ls ,将目录的内容显示出来,有r权限没有x权限表示可以进到这个目录,但是不能看到有哪些东西
  • w:表示可以在该目录下删除、创建或重命名文件

定时任务调度

crond定时任务

任务调度:是指系统在某个时间执行特定的命令或程序。 crond—>周期任务

任务调度分类:

  1. 系统工作:有些重要的工作必须周而复始地执行。如病毒扫描等;
  2. 个别用户工作:个别用户可能希望执行某些程序,比如对 mysql 数据库的备份。

image-20240104111224683

基本语法:crontab [选项]

选项作用
-e编辑 crontab 任务
-l查询 crontab 任务
-r删除当前用户所有的 crontab 任务
快速入门

每小时的每分钟执行 ls -l /etc/ > /tmp/to.txt命令

  1. 设置任务调度文件:/etc/crontab
  2. 设置个人任务调度,执行crondtab -e命令
  3. 接着输入任务到调度文件,*/1 * * * * ls -l /etc/ > /tmp/to.txt,意思就是每分钟执行一次ls -l /etc/ > /tmp/to.txt命令
项目含义范围
第一个 “ * ”一个小时当中的第几分钟0~59
第二个 “ * ”一天当中的第几小时0~23
第三个 “ * ”一月当中的第几天1~31
第四个 “ * ”一年当中的第几月1~12
第五个 “ * ”一周当中的星期几0~7(0和7都代表星期日)
时间规则
特殊符号含义
*代表任何时间。比如第一个 " * " 就代表一小时中每分钟都执行一次的意思
,代表不连续的时间。比如 “0 8,12,16 * * * 命令”,就代表在每天的8:00、12:00、16:00都执行一次命令
-代表连续的时间范围。比如 “0 5 * * 1-6命令”,代表在周一到周六的凌晨5:00执行命令
*/n代表每隔多久执行一次。比如 “*/10 * * * * 命令”,代表每隔10分钟就执行一遍命令

一些执行时间案例

image-20240106181949850

案例:每隔1分钟,将当前日期和日历都追加到/home/mycal文件中

  • 方法1:

    • crontab -e
    • */1 * * * * date >> /home/mycal
    • */1 * * * * cal >> /home/mycal
  • 方法2:写shell脚本

    • vim mycal.sh

    • 脚本内容为:

      image-20240106190656127

    • crontab -e编辑定时任务执行脚本*/1 * * * * /home/mycal.sh

image-20240106190403867

相关指令
  • crontab -r:终止任务调度
  • crontab -l:列出当前有哪些任务调度
  • service crond restart:重启任务调度

image-20240107105034942

at定时任务

at命令是一次性定时计划任务,执行完一个任务后不再执行此任务了。

at的守护进程atd会以后台模式运行,检查作业队列来运行。默认情况下,atd守护进程每60秒检查作业队列,有作业时,会检查作业运行时间,如果时间与当前时间匹配,则运行此作业。

因此,在使用 at 命令的时候,一定要保证atd进程的启动,可以使用指令ps -ef | grep atd检测atd进程是否运行。

基本语法:at [选项] [时间]Ctrl + D结束at命令的输入

选项含义
-m当指定的任务被完成后,将给用户发送邮件,即使没有标准输出
-I显示任务队列,atq 的别名
-d<编号>删除某任务,atrm 的别名
-v显示任务将被执行的时间
-c打印任务的内容到标准输出
-V显示版本信息
-q <队列>使用指定的队列
-f <文件>从指定文件读入任务而不是从标准输入读入
-t <时间参数>以时间参数的形式提交要运行的任务
at 指定时间的方法
  1. 接受在当天的 hh : mm ( 小时 : 分钟 ) 式的时间指定。假如该时间已过去,那么就放在第二天执行,例如04:00
  2. 使用 midnight (深夜),noon (中午),teatime (饮茶时间,一般是下午4点) 等比较模糊的词语来指定时间
  3. 采用12小时计时制,即在时间后面加上AM (上午) 或 PM (下午) 来说明是上午还是下午。例如:12pm
  4. 指一命令执行的具体日期,指定格式为 month day(月 日) 或 mm/dd/yy (月 / 日 / 年) 或 dd.mm.yy(日.月.年) ,指定的日期必须跟在指定时间的后面。例如:04:00 2021-03-1
  5. 使用相对计时法。指定格式为:now + count time-units,now 就是当前时间,time-units 是时间单位。这里能够是 minutes (分钟)、hours (小时)、days (天)、weeks (星期)。count 是时间的数量,几天、几小时。例如:now + 5 minutes
  6. 直接使用 today (今天)、tomorrow (明天) 来指定完成命令的时间

案例:两天后的下午5点执行 /bin/ls /home

image-20240107161922490

执行指令atrm 3就可以删除上述定时任务。

磁盘分局与挂载

Linux来说无论有几个分区,分给哪一目录使用,它归根结底就只有一个根目录,一个独立且唯一的文件结构,Linux中每个分区都是组成整个文件系统的一部分。

Linux采用了一种叫"载入"的处理方法,它的整个文件系统中包含了一整套的文件和目录,且将一个分区和一个目录联系起来。这时要载入的一个分区将使它的存储空间在一个目录下获得

image-20240107164036005

硬盘说明

Linux硬盘分IDE硬盘和SCSI硬盘,目前基本上是SCSI硬盘。

  1. 对于 IDE硬盘,驱动器标识符为 “hdx~”。其中 “hd” 表明分区所在设备的类型,这里是指IDE硬盘;“x” 为盘号 ( a 为基本盘,b 为基本从属盘,c 为辅助主盘,d 为辅助从属盘);“~” 代表分区,前四个分区用数字1~4表示,他们是主分区或扩展分区,从5开始就是逻辑分区。
    例:hda3 表示为第一个 IDE硬盘上的第三个主分区或扩展分区,hdb2表示为第二个 IDE硬盘上的第二个主分区或扩展分区
  2. 对于 SCSI硬盘则标识为 “sdx~”,SCSI硬盘是用 “sd” 来表示分区所在设备的类型的,其余则和 IDE硬盘的表示方法一样
查看所有设备挂载情况

基本指令:lsblklsblk -f

image-20240107164721159

给虚拟机添加硬盘

image-20240109120200050

可以看到新加的硬盘sdb已经有了,但是还没有分区

image-20240109120712129

硬盘分区

分区命令:fdisk /dev/sdb

命令操作:

  • m 显示命令列表
  • p 显示磁盘分区 相当于fdisk -l
  • n 新增分区
  • d 删除分区‘/
  • w 写入并退出

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

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

相关文章

Apache ECharts | 一个数据可视化图表库

文章目录 1、简介1.1、主要特点1.2、使用场景 2、安装方式一&#xff1a;从下载的源代码或编译产物安装方法二&#xff1a;从 npm 安装方法三&#xff1a;⭐定制安装echarts.js 3、使用 官网&#xff1a; 英语&#xff1a;https://echarts.apache.org/en/index.html 中文&a…

Vue-4、单向数据绑定与双向数据绑定

1、单向数据绑定 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>数据绑定</title><!--引入vue--><script type"text/javascript" src"https://cdn.jsdelivr.net/npm/…

linux(ubuntu)中crontab定时器命令详解 以及windows中定时器

linux&#xff08;ubuntu&#xff09;中crontab定时器命令详解 crontab 是一个用于创建、编辑和管理用户的定时任务的命令&#xff0c;它可以让用户在指定的时间自动执行指定的命令或脚本。 基本语法 -e&#xff1a;编辑用户的 crontab 文件&#xff1b;-l&#xff1a;列出用…

【机器学习】常见算法详解第2篇:K近邻算法各种距离度量(已分享,附代码)

本系列文章md笔记&#xff08;已分享&#xff09;主要讨论机器学习算法相关知识。机器学习算法文章笔记以算法、案例为驱动的学习&#xff0c;伴随浅显易懂的数学知识&#xff0c;让大家掌握机器学习常见算法原理&#xff0c;应用Scikit-learn实现机器学习算法的应用&#xff0…

Java18:网络编程

一.对象序列化&#xff1a; 1.对象流&#xff1a; ObjectInputStream 和 ObjectOutputStream 2.作用&#xff1a; ObjectOutputSteam&#xff1a;内存中的对象-->存储中的文件&#xff0c;通过网络传输出去 ObjectInputStream:存储中的文件&#xff0c;通过网络传输出去…

【漏洞复现】ActiveMQ文件上传漏洞(CVE-2016-3088)

Nx01 产品简介 Apache ActiveMQ是Apache软件基金会所研发的开放源代码消息中间件。ActiveMQ是消息队列服务&#xff0c;是面向消息中间件&#xff08;MOM&#xff09;的最终实现&#xff0c;它为企业消息传递提供高可用、出色性能、可扩展、稳定和安全保障。 Nx02 漏洞描述 Ap…

vercel部署twikoo后评论收不到通知邮件问题解决方法

&#x1f4cc; 前言&#xff1a;本文主要是总结一下在vercel部署twikoo后收不到评论邮件通知问题的解决方法&#xff0c;本人在各种查资料无果后最终去twioo的git官方项目的issue中找到某位大佬给出的原因以及解决方案&#xff0c;故做此记录&#xff0c;希望对遇到此问题的同学…

重学JavaScript高级(八):ES6-ES12新增特性学习

ES6-ES12新增特性学习 ES6–对象字面量增强 属性的简写方法的简写计算属性名 let name "zhangcheng" //我想让sum作为obj的key值 let objKey "sum" let obj {//属性名的简写name//等同于name:name//方法的简写running(){}//等同于running:function()…

ERD助力研发资产沉淀研发提效

一、从痛点中思考答案 痛点一&#xff1a;复杂系统的设计和逻辑碎片化散落&#xff0c;缺少沉淀导致系统后期维护、迭代以及架构升级都非常困难。 痛点二&#xff1a;由于新需求或新项目导致的系统的老旧逻辑梳理往往耗费大量人力&#xff0c;甚至造成人才的流失。 痛点三&a…

React 入门 - 05(响应式与事件绑定)

本章内容 目录 一、响应式设计思想二、React 中的事件绑定 继上一节我们简单实现一个 TodoList来更加了解编写组件的一些细节。本节继续这个案例功能的完成。 一、响应式设计思想 1、在原生的 JS中&#xff0c;如果要实现点击”提交“按钮就将输入框的内容添加至页面列表中&…

什么是协议和什么是OSI模型,以及两者之间的关系

目录 协议 1.协议 2.OSI模型 &#xff08;1&#xff09;什么是OSI模型 &#xff08;2&#xff09;OSI模型和协议之间的关系 总结 &#xff08;3&#xff09;示意图 协议 1.协议 就是双方通过协商&#xff0c;需要共同遵守的约定 协议就是规则&#xff0c;是约定 http…

数字战场上的坚固屏障:雷池社区版(WAF)

黑客的挑战 智能语义分析算法&#xff1a; 黑客们常利用复杂技术进行攻击&#xff0c;但雷池社区版的智能语义分析算法能深入解析攻击本质&#xff0c;即使是最复杂的攻击手法也难以逃脱。 0day攻击防御&#xff1a; 传统防火墙难以防御未知攻击&#xff0c;但雷池社区版能有效…

Spark八:Spark性能优化

Spark性能调优 Spark调优的方法&#xff0c;包括RDD使用、文件读取&#xff0c;partition 学习资料&#xff1a;https://mp.weixin.qq.com/s/caCk3mM5iXy0FaXCLkDwYQ 一、Spark调优之RDD算子调优 1.1 RDD复用 在对RDD进行计算时&#xff0c;要避免相同的算子和计算逻辑下对…

计算机科学速成课【学习笔记】(3)——布尔逻辑和逻辑门

本集课程的B站链接 3. 布尔逻辑 和 逻辑门-Boolean Logic & Logic Gates_哔哩哔哩_bilibili3. 布尔逻辑 和 逻辑门-Boolean Logic & Logic Gates是【计算机科学速成课】[40集全/精校] - Crash Course Computer Science的第3集视频&#xff0c;该合集共计40集&#xff…

当需要视频监控技术升级时,应该如何操作呢?

在当今社会&#xff0c;信息技术的飞速发展为我们提供了前所未有的安全和管理工具&#xff0c;其中视频监控系统无疑是其中一项引人注目的成果。 视频监控系统不仅提高了安全性和生产效率&#xff0c;同时也为社会的可持续发展提供了有力支持。 客户案例 工业生产管理优化 广…

将dumpbin从Visual Studio中抠出来,并使用dumpbin查看exe和dll库的依赖关系

目录 1、初步说明 2、在开发的机器上使用dumpbin工具查看dll库的依赖关系 3、将dumpbin.exe从Visual Studio中抠出来 3.1、找到dumpbin.exe文件及其依赖的dll文件 3.2、在cmd中运行dumpbin&#xff0c;提示找不到link.exe文件 3.3、再次运行dumpbin.exe提示找不到mspdb10…

了解DC电源模块的基本参数及选择方法

BOSHIDA 了解DC电源模块的基本参数及选择方法 DC电源模块是一种用来提供稳定直流电源的设备&#xff0c;常被应用在电子产品测试、实验室设备等领域。了解DC电源模块的基本参数和选择方法有助于正确选择和使用合适的模块。 1. 输出电压范围&#xff1a;DC电源模块通常有固定的…

mybatisplus快速入门-个人理解版

mybatisplus快速入门 1.快速入门1.1准备开发环境-idea2019.2.1版第一步&#xff1a;新建工程第二步&#xff1a;导入依赖 1.2创建数据库和表创建库表添加数据 1.3编写代码进行测试第一步&#xff1a;配置application.yml第二步&#xff1a;添加实体类第三步&#xff1a;添加map…

【算法】链表-20240109

这里写目录标题 一、141. 环形链表二、876. 链表的中间结点三、面试题 02.01. 移除重复节点 一、141. 环形链表 简单 给你一个链表的头节点 head &#xff0c;判断链表中是否有环。 如果链表中有某个节点&#xff0c;可以通过连续跟踪 next 指针再次到达&#xff0c;则链表中…

Excel如何插入行?4个简单方法轻松完成!

“我在使用Excel表格工作时&#xff0c;需要插入一些行来填写数据。但是我不知道应该如何操作&#xff0c;有没有朋友可以支支招呀&#xff1f;” Excel是办公室工作中不可或缺的工具&#xff0c;它强大的数据处理能力使得工作变得高效。因此很多用户在使用电脑时或许都会用到E…