Linux权限【超详细】


📙 作者简介 :RO-BERRY
📗 学习方向:致力于C、C++、数据结构、TCP/IP、数据库等等一系列知识
📒 日后方向 : 偏向于CPP开发以及大数据方向,欢迎各位关注,谢谢各位的支持


在这里插入图片描述


目录

  • 扩展知识:shell命令以及运行原理
  • 1.Linux权限的概念
  • 2.Linux权限管理
    • 1.文件访问者的分类(人)
    • 2.文件类型和访问权限(事物属性)
      • 2.1文件类型
      • 2.2文件权限属性一共有十个字符(包括-)
      • 2.3.文件权限值的表示方法
      • 2.4 文件访问权限的相关设置方法
        • 1.指令chmod
        • 2.指令chown</font>
        • 3.指令chgrp</font>
  • 3.目录权限
    • 总结:
  • 4.umask
  • 5.file指令:
  • 6.粘滞位
  • 7.关于权限的总结


扩展知识:shell命令以及运行原理

🍁Linux严格意义上说的是一个操作系统,我们称之为“核心(kernel)“ ,但我们一般用户,不能直接使用kernel。
通过kernel的“外壳”程序,也就是所谓的shell,来与kernel沟通。如何理解?为什么不能直接使用kernel?
从原理上来说:

Shell是Linux操作系统中的外壳程序,它扮演着“用户和Linux内核之间的桥梁”的角色。具体而言,Shell将用户输入的命令解析并传递给Linux内核处理,同时将Linux内核的处理结果翻译并返回给用户。因此,通过Shell,用户能够更加高效、安全、低成本地使用Linux内核。(我的理解是相当于操作系统的系统调用的功能)

从技术角度上来说:

Shell的最简单定义:命令行解释器(command Interpreter)主要包含:
1.将使用者的命令翻译给核心(kernel)处理。
2.同时,将核心的处理结果翻译给使用者。

对比windows GUI,我们操作windows 不是直接操作windows内核,而是通过图形接口,点击,从而完成我们的操作(比如进入D盘的操作,我们通常是双击D盘盘符.或者运行起来一个应用程序)
shell 对于Linux,有相同的作用,主要是对我们的指令进行解析,解析指令给Linux内核。反馈结果在通过内核运行出结果,通过shell解析给用户。

帮助理解:如果说你是一个闷骚且害羞的程序员,那shell就像媒婆,操作系统内核就是你们村头漂亮的且有让你心动的MM小花。你看上了小花,但是有不好意思直接表白,那就让你你家人找媒婆帮你提亲,所有的事情你都直接跟媒婆沟通,由媒婆转达你的意思给小花,而我们找到媒婆姓王,所以我们叫它王婆,它对应我们常使用的bash。


1.Linux权限的概念

🎄Linux下有两种用户:

超级用户(root)普通用户
超级用户:可以再linux系统下做任何事情,不受限制
普通用户:在linux下做有限的事情。
超级用户的命令提示符是“#”,普通用户的命令提示符是“$”。
在这里插入图片描述

命令:su [用户名]
功能:切换用户。

例如,要从root用户切换到普通用户user,则使用 su user。 要从普通用户user切换到root用户则使用 su root(root可以省略),此时系统会提示输入root用户的口令。

我们没有普通用户,我们进行创建一个
在这里插入图片描述
Linux中root用户只允许存在一个,非root用户可以存在很多个
我们先使用这个普通用户登录
我们如果是普通用户如何转换成root用户使用

普通用户切换至root用户
1、按上su,然后按照提示输入相应的root密码,就可登录到root权限下。
2、按上sudo su,然后按照提示输入相应的root密码,就可登录到root权限下(这个命令下,一般不需要输入相应的root密码)。
3、按上su root,然后按照提示输入相应的root密码,就可登录到root权限下

root用户切回普通用户
1、只需执行命令:su user (user是你自己安装时候的用户名),
2、直接输入exit
3、Ctrl+D组合键退出
如何给root用户设定密码:
只需执行命令:sudo passwd root然后根据提示一步一步来。

这里我们使用的是su -,作用是能从普通用户权限变为root用户,但是需要输入root用户的密码
在这里插入图片描述
我们如果是root用户如何转换成普通用户使用
我们这里使用热键【Ctrl+D】
在这里插入图片描述
普通用户切换成root,需要输入root的密码 —>拥有root密码的人一般都是系统的管理员
root账号变成普通,不用认证的
普通用户变成另一个普通用户需要对方的密码

🐥为了让我们对权限的概念更加清晰我们来学习一个新指令—>sudo

sudo
对指定的指令进行提权

我不想把我自己变成root,但是我还想让普通用户以root的权限执行一条命令怎么做呢?
在你的指令前面无脑加sudo就可以

在这里插入图片描述
但是我们在执行sudo命令时出现了如下提示:
xx is not in the sudoers file. This incident will be reported.
这句话的意思是我们的用户不在我们的sudoers的文件里
原因分析:一般这种情况是创建了新用户,没有对应修改sudoers文件或者group文件。

我们可以看看这个文件,这是Linux系统里面的用户的配置文件
在这里插入图片描述
这个文件相当于我们Linux里的一个白名单,如果一个用户的用户名在这个配置文件中,才允许这个用户执行sudo

如果一个用户的用户名不在这个配置文件中,不允许这个用户执行sudo
我们需要以root的身份将用户添加进去才能使用sudo
这个白名单只有管理员将值得信任的用户添加进去,是为了管理服务器的安全性,因为sudo命令可以让普通用户使用root用户的权限。

在这里我们先不讲解如何进行处理,处理内容我们会在以后涉及到。我们先来看其他人成功的例子
在这里插入图片描述
我们使用了一次输入密码后,第二次第三次就不用输入密码了


2.Linux权限管理

🐥我们先来弄清楚几个概念

1、权限一定是用来限制人的“能还是不能”
我们在爱奇艺里普通用户和vip用户的权限是不一样的
2、对应的操作对象一定要有对应的满足人的需求的属性
比如我们想在爱奇艺里刷题—>他没有这个功能

这就对应了我们Linux里

1、文件访问者的分类(限制人)
2、文件类型和访问权限(文件权限)—r w x


1.文件访问者的分类(人)

Linux限制人更多的限制的是人的角色身份

比如说张三是一个学校校长,校长办公室只有他能进入,而这个权利不是因为他是张三,而是因为他是校长,因为他这个身份角色

这里我们的Linux将用户分为三个角色

  • 所有者—文件和文件目录的所有者:u—User(中国平民 法律问题)
  • 所属组—文件和文件目录的所有者所在的组的用户:g—Group(不多说)
  • other—其它用户:o—Others (外国人)

我们先变成普通用户查看一下文件

在这里插入图片描述
那么在这里对应的只要不是拥有者不是所属组就是对应的other

好了,拥有者好理解,这个文件被谁创造就被谁拥有嘛,other也好理解,除了创作者谁都是other
那我们Linux为什么要存在一个所属组呢?这个是干嘛的?🤨

  • 首先Linux是允许我们建立各种各样的组的,可以独立建立一个组,也可以很多人,以某个名字做组名
  • 然后我们使用所属组的意义就在于我们创建的文件可以让多人看到,如果没有所属组的存在,那么除了所有者,其他所有人都是other,那么别人想看到你写的代码的时候都无法访问,还有一点就是,这个所属组适合于分小组开发,也利于管理

接下来我们来学习一下文件权限属性


2.文件类型和访问权限(事物属性)

在这里插入图片描述

2.1文件类型

在win下,有文件类型,通常使用后缀标识
Linux的文件类型不通过后缀区分(不代表Linux不用后缀)
在Linux文件中 第一个字符表示我们的文件类型

d:文件夹
-:普通文件
l:软链接(类似Windows的快捷方式)
b:块设备文件(例如硬盘、光驱等)
p:管道文件
c:字符设备文件(例如屏幕等串口设备)
s:套接口文件

2.2文件权限属性一共有十个字符(包括-)

在这里插入图片描述

2.3.文件权限值的表示方法

  • 字符表示方法
    在这里插入图片描述
  • 8进制数值表示方法
    在这里插入图片描述

2.4 文件访问权限的相关设置方法

1.指令chmod

功能:设置文件的访问权限
格式:chmod [参数] 权限 文件名
常用选项
R -> 递归修改目录文件的权限
说明:只有文件的拥有者和root才可以改变文件的权限


chmod第一种用法:用户表示符+/-=权限字符

+:向权限范围增加权限代号所表示的权限
-:向权限范围取消权限代号所表示的权限
=:向权限范围赋予权限代号所表示的权限
用户符号:
u:拥有者
g:拥有者同组用
o:其它用户
a:所有用户

🎄我们来引入第一批操作:
我们了解了权限之后我们如何来修改权限?
在这里如果修改一个文件的权限,一般得是文件的拥有者,也就是说文件是你的,你才有权限去改

我们将user简称为u,将group简称为g,将other简称为o

在这里插入图片描述
在这里插入图片描述

我们还可以一次性编辑两个权限
在这里插入图片描述
我们还可以一次性编辑所有用户的权限
在这里插入图片描述
我们想去掉所有人的所有权限
在这里插入图片描述
这样所有人的权限都没有了
那我们想给所有人的权限加上r
我们可以使用a-all代表全部
在这里插入图片描述

我们接下来进行一下验证
在这里插入图片描述
我们对文件进行写操作,这里表示我们没有写的权限
在这里插入图片描述
我们修改一下权限就又可以正常运行了
在这里插入图片描述
对于x属性—是否可执行,当我们有了可执行的权限了之后还要看我们的文件是否可执行
这里有一个细节

就如同我们上面的拥有者以及所属组两个的名称都是一个人的时候,这个文件的拥有者没有可执行权限,但是所属组有可执行权限啊,因为我既是拥有者也是所属组啊
但是在这里,如果我们的拥有者没有可执行权限的时候,我们的所属组以及other都无法执行,就算有可执行权限也不可执行。

这个原因是因为当我们一个用户去执行这个文件的时候,不是先看你对这个文件是否有可执行权限,而是判断你是否是这个文件的拥有者,所有它只会看一个一个按照你的名称去对比,它第一次对比你是拥有者,他就会以拥有者的权限对你能否运行此文件做判断

回到正题:我们切换成root权限发现,我们既能读文件也能写文件,这说明了权限在root下形同虚设
现在才发现权限只是限制普通用户的
在这里插入图片描述


chmod第二种用法:三位8进制数字

我们的权限为rwx这三个
那我们能不能以111来代表这个呢?
1代表有0代表无
rwx–>111–>代表的二进制为7
-wx—>011–>代表的二进制为3
那么我们可以这样设置文件:
我们使用777让所有人都有了rwx权限
在这里插入图片描述
我们使用000让所有人都没有了rwx权限

在这里插入图片描述


2.指令chown

功能:修改文件的拥有者
格式:chown [参数] 用户名 文件名
非root用户需要sudo提升权限操作,或者有root密码切换成root权限
在这里插入图片描述


3.指令chgrp

功能:修改文件或目录的所属组
格式:chgrp [参数] 用户组名 文件名
常用选项:-R 递归修改文件或目录的所属组
非root用户需要sudo提升权限操作,或者有root密码切换成root权限
在这里插入图片描述


3.目录权限

对一个目录而言,如果进入一个目录,需要什么权限?
权限对于root用户是没有影响的,我们换到普通用户
我们一个权限一个权限进行尝试


首先,我们进入到自己的目录,权限全开的情况下是可以进的
在这里插入图片描述

我们先去掉读权限
在这里插入图片描述

我们依然可以进目录,我们再单独去掉写权限
在这里插入图片描述

我们还是可以进入目录,我们再单独去掉可执行权限
在这里插入图片描述
这个时候我们发现没办法进入我们的目录了
这说明,我们要进入一个目录我们需要的是x权限

那对于目录来说我们的读权限和写权限分别对应什么呢?
我们在这个目录里创建一个文件
权限全开的情况下,我们创建文件还是可以的
在这里插入图片描述

我们去掉读权限
在这里插入图片描述
我们无法看到目录里文件的信息了
所以我们对目录没有读权限我们就无法查看目录文件信息
可以进行创建文件,但是无法查看信息
在这里插入图片描述
我们去掉写权限
在这里插入图片描述
去掉写权限后,我们无法创建文件,但是可以打印目录文件信息

总结:

对于目录文件:
读权限—r—是否可以进行查看目录文件信息
写权限—w—是否可以在目录里新建文件和删除文件
可执行权限—x—是否可以进入目录
在这里对于root用户就算所有权限都没有,它依然可以进行所有操作,root不受权限控制


4.umask

功能:

查看或修改文件掩码
新建文件夹默认权限=0666
新建目录默认权限=0777
但实际上你所创建的文件和目录,看到的权限往往不是上面这个值。原因就是创建文件或目录的时候还要受到umask的影响。假设默认权限是mask,则实际创建的出来的文件权限是: mask & ~umask

格式:

umask 权限值

说明:将现有的存取权限减去权限掩码后,即可产生建立文件时预设权限。超级用户默认掩码值为0022,普通用户默认为0002。

在这里插入图片描述

-rw-rw-r-- 1 cmj cmj 0 Feb 3 12:04 test.aa
drwxrwxr-x 2 cmj cmj 4096 Feb 3 12:04 test.ee
为什么我们创建的普通文本文件:默认的权限不是777,而是664
为什么我们创建的目录文件:默认的权限不是777,而是775

首先,我们的Linux系统中可执行程序占比不高,只有一些必须可执行的程序才会给它加上可执行权限,一般的文件系统不会默认去加,而是由用户去自主决定添加,像我们的目录以及可执行程序必须给它加的会给它加上可执行权限,一般的文件可以不加,让用户自主添加。
所以:
对目录而言,它的起始权限以777开始==
对普通文件来说起始权限以666开始

那么这样说我们创建的时候普通文件不是666而是664,目录为775,这是为什么呢?

这是因为umask—>权限掩码
它是可以让用户自主定制文件创建的时候的默认权限

我们打印umask
在这里插入图片描述
会出现四个字符,我们只关心后面三个字符就可以了。
八进制002对应的就是000 000 010
这就我们的权限掩码
其含义是:
从起始权限中去掉在umask中出现的权限

例:
我们普通文件起始权限为
666—>110 110 110
002—>000 000 010
我们要去掉这个存在的1
变成了110 110 100—>664

注意:我们在这里不是使用的减法,而是去掉权限掩码
释义:起始权限这一位为0,权限掩码为1的时候,我们就可以不管这一位
—>起始权限后三位001 AND (umask)010不变就行
只有原起始权限这一位有1的时候,相对应掩码这一位也是1我们就可以去掉
用计算机语言来说就是 起始权限&(按位与)(-umask)=最终权限(默认)

同理我们的目录的其实权限可以自行计算一下
算出来也是775


接下来我们如何定制权限掩码呢:

我们设置为003(原002)
在这里插入图片描述
我们创建一个文件一个目录
在这里插入图片描述
在这里插入图片描述
003—>000 000 011
new1.txt—>-rw-rw-r–(664)—>110 110 100
new2—>drwxrwxr–(774)—>111 111 100
使用按位与操作
文件:110 110 110—>110 110 100(664)
目录: 111 111 111—>111 111 100(774)
可以看到我们与上面的默认权限是一样的


5.file指令:

功能说明:辨识文件类型。
语法:file [选项] 文件或目录…
常用选项

-c 详细显示指令执行过程,便于排错或分析程序执行的情形。
-z 尝试去解读压缩文件的内容

我们想查看文件更详细的数据,可以使用file指令
在这里插入图片描述


6.粘滞位

当一个目录被设置为"粘滞位"(用chmod +t),则该目录下的文件只能由
一、超级管理员删除
二、该目录的所有者删除
三、该文件的所有者删除

首先我们要清楚:

一个文件能不能被删除并不取决于文件的权限,而在于这个文件所在目录的权限

Linux的home目录里存放的是每一个用户对应的文件,默认权限设置的是700,只有本用户能访问进去(root用户除外)
在这里插入图片描述

这样的话其中一个用户想展现给另一个用户看一个文件,但是没有权限
Linux为了实现让多个用户之间可以实现数据共享,在根目录会有一个tmp目录是可以所有用户都进去访问,rwx的权限都是全部开启的
在这里插入图片描述

但是删除一个文件和你这个文件的权限无关,这个目录下的每一个人都具有权限删除创造文件,所以你的文件放在这里也能被其他用户给删除掉,别人一个不小心删除了你宝贵的文件,有可能会导致你从头再来
这个时候我们就引出一个可以给other加上一个权限t
我们在tmp目录下创建一个test.txt文件
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
可以看到我们的test.txt文件的文件权限最后面紧跟了一个T,这是原x的位置,现在变成了T
这样其他用户就会没有权限删除你的这个文件

上面这个T称为我们的粘滞位:给目录中的other设置的一个权限位,具有x的意义,同时也进一步对目录权限进行特殊限定:

将T加在目录的权限上,该目录的文件只有root或者拥有者有权利进行删除,其他人一概不允许


7.关于权限的总结

  • 目录的可执行权限是表示你可否在目录下执行命令。
  • 如果目录没有-x权限,则无法对目录执行任何命令,甚至无法cd 进入目, 即使目录仍然有-r 读权限(这个地方很容易犯错,认为有读权限就可以进入目录读取目录下的文件)
  • 而如果目录具有-x权限,但没有-r权限,则用户可以执行命令,可以cd进入目录。但由于没有目录的读权限
  • 所以在目录下,即使可以执行ls命令,但仍然没有权限读出目录下的文档

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

C++项目 -- 高并发内存池(二)Thread Cache

C项目 – 高并发内存池&#xff08;二&#xff09;Thread Cache 文章目录 C项目 -- 高并发内存池&#xff08;二&#xff09;Thread Cache一、高并发内存池整体框架设计二、thread cache设计1.整体设计2.thread cache哈希桶映射规则3.TLS无锁访问4.thread cache代码 一、高并发…

【数据分享】1米分辨率土地覆盖数据集SinoLC-1

数据链接 SinoLC-1: the first 1-meter resolution national-scale land-cover map of China created with the deep learning framework and open-access data (Update data: August, 2023) (zenodo.org)https://zenodo.org/records/8214467 数据分享 数据分享到了公众号&…

2024/2/4

一&#xff0e;选择题 1、下列不能作为类的成员的是&#xff08;B&#xff09; A. 自身类对象的指针 B. 自身类对象 C. 自身类对象的引用 D. 另一个类的对象 2、假定AA为一个类&#xff0c;a()为该类公有的函数成员&#xff0c;x为该类的一个对象&#xff0c;则访问x对象中…

你今年过年回去吗?

#过年 我是一名21岁刚毕业的大学生&#xff0c;专业是软件技术&#xff0c;主修c#&#xff0c;之前在上海实习了一年&#xff0c;正式工作后来到了深圳&#xff0c;进入了一家电商公司实习。至于我为什么转行了&#xff0c;大家懂的都懂 现在是20240203晚上19.39&#xff0c;还…

WordPress Plugin HTML5 Video Player SQL注入漏洞复现(CVE-2024-1061)

0x01 产品简介 WordPress和WordPress plugin都是WordPress基金会的产品。WordPress是一套使用PHP语言开发的博客平台。该平台支持在PHP和MySQL的服务器上架设个人博客网站。WordPress plugin是一个应用插件。 0x02 漏洞概述 WordPress Plugin HTML5 Video Player 插件 get_v…

2024美赛数学建模F题思路源码

赛题目的 赛题目的&#xff1a; 问题描述&#xff1a; 解题的关键&#xff1a; 问题一. 问题分析 问题解答 问题二. 问题分析 问题解答 问题三. 问题分析 问题解答 问题四. 问题分析 问题解答 问题五. 问题分析 问题解答

华为机考入门python3--(8)牛客8-合并表记录

分类&#xff1a;字典排序 知识点&#xff1a; 将输入转成int的列表 my_list list(map(int, input().strip().split( ))) 将列表转为元组 tuple(my_list) 访问元素为元组的列表 for first, second, third in my_list: 对字典进行排序 sorted(my_dict.items())…

微软Azure-OpenAI 测试调用及说明

本文是公司在调研如何集成Azure-openAI时&#xff0c;调试测试用例得出的原文&#xff0c;原文主要基于官方说明文档简要整理实现 本文已假定阅读者申请部署了模型&#xff0c;已获取到所需的密钥和终结点 变量名称值ENDPOINT从 Azure 门户检查资源时&#xff0c;可在“密钥和…

【C语言】static关键字的使用

目录 一、静态本地变量 1.1 静态本地变量的定义 1.2 静态本地变量和非静态本地变量的区别 二、静态函数 2.1 静态函数的定义 2.2 静态函数与非静态函数的区别 三、静态全局变量 3.1 静态全局变量的定义 3.2 静态全局变量和非静态全局变量的区别 四、静态结构体变量 …

【C++入门学习指南】:函数重载提升代码清晰度与灵活性

&#x1f3a5; 屿小夏 &#xff1a; 个人主页 &#x1f525;个人专栏 &#xff1a; C入门到进阶 &#x1f304; 莫道桑榆晚&#xff0c;为霞尚满天&#xff01; 文章目录 &#x1f4d1;前言一、函数重载1.1 函数重载的概念1.2 函数重载的作用1.3 C支持函数重载的原理1.4 扩展 &…

寒假作业-day3

1>请编程实现双向链表的头插&#xff0c;头删、尾插、尾删 请编程实现双向链表按任意位置插入、删除、修改、查找 代码&#xff1a; #include<stdio.h> #include<stdlib.h> #include<string.h>typedef int datatype; typedef struct Node{datatype data…

PHP入门指南:起步篇

PHP入门指南&#xff1a;起步篇 PHP入门指南&#xff1a;起步篇什么是PHP&#xff1f;PHP 的优点PHP 开发环境搭建选择本地服务器软件包安装PHP环境配置Web服务器和PHP测试PHP安装 第一个PHP脚本PHP基础语法标记注释变量数据类型常量条件语句循环函数 PHP入门指南&#xff1a;起…

python算法与数据结构---动态规划

动态规划 记不住过去的人&#xff0c;注定要重蹈覆辙。 定义 对于一个模型为n的问题&#xff0c;将其分解为k个规模较小的子问题&#xff08;阶段&#xff09;&#xff0c;按顺序求解子问题&#xff0c;前一子问题的解&#xff0c;为后一子问题提供有用的信息。在求解任一子…

【MySQL】- 09 Select Count

【MySQL】- 09 Select Count 1认识COUNT2 COUNT(列名)、COUNT(常量)和COUNT(*)之间的区别3 COUNT(*)的优化 4 COUNT(*)和COUNT(1)5 COUNT(字段)总结 数据库查询相信很多人都不陌生&#xff0c;所有经常有人调侃程序员就是CRUD专员&#xff0c;这所谓的CRUD指的就是数据库的增删…

产业热点 | 从 Vision Pro 发售,洞见空间计算时代新机遇

*图源&#xff1a;Apple 官网 近日首批 Vision Pro 启动预约发售&#xff0c;短短一周就预估售出 20 万台&#xff0c;如今正式发售在即&#xff0c;再度受到各界的热切关注。 *图源&#xff1a;Apple 官网 同样作为空间计算赛道企业&#xff0c;ALVA Systems 在过去十余年始…

IP数据云识别真实IP与虚假流量案例

随着互联网的普及&#xff0c;企业在数字领域面临着越来越复杂的网络威胁。为了保护网站免受虚假流量和恶意攻击的影响&#xff0c;许多企业正在采用IP数据云。本文将结合一个真实案例&#xff0c;深入探讨IP数据云如何成功准确地识别真实用户IP和虚假流量IP&#xff0c;提高网…

ESU毅速丨3D打印技术引领模具制造创新革命

随着科技的飞速发展&#xff0c;3D打印技术已经成为制造业的新宠。而在模具制造领域&#xff0c;3D打印技术更是带来了巨大的创新价值&#xff0c;引领着模具制造的革命性变革。 传统模具制造过程中&#xff0c;需要经过多道繁琐工序&#xff0c;而3D打印技术简化了这一过程。3…

python接口自动化(五)--接口测试用例和接口测试报告模板(详解)

简介 当今社会在测试领域&#xff0c;接口测试已经越来越多的被提及&#xff0c;被重视&#xff0c;而且现在好多招聘信息要对接口测试提出要求。区别于传统意义上的系统级别测试&#xff0c;很多测试人员在接触到接口测试的时候&#xff0c;也许对测试执行还可以比较顺利的上手…

基于场景文字知识挖掘的细粒度图像识别算法

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 摘要Abstract文献阅读&#xff1a;基于场景文字知识挖掘的细粒度图像识别算法1、研究背景2、方法提出方法模块 3、试验4、文章贡献 二、RNN代码学习2.1、什么是RNN2…

day43_jdbc

今日内容 0 复习昨日 1 SQL注入问题 2 PreparedStatement 3 完成CRUD练习 4 ORM 5 DBUtil (properties) 6 事务操作 0 复习昨日 已经找人提问… 1 SQL注入 1.1 什么是SQL注入 用户输入的数据中有SQL关键词,导致在执行SQL语句时出现一些不正常的情况.这就是SQL注入! 出现SQL注入…