深入攻克并了解权限ACL

 一、ACL使用

1.1、ACL中mask修改最大权限

什么是最大权限,看下面的信息:

[root@localhost ~]# getfacl /project
getfacl: Removing leading '/' from absolute path names
# file: project
# owner: root
# group: tgroup
user::rwx# 所属用户权限
user:tempuser:r-x# 临时用户权限
group::rwx# 所属组权限, 文件创建时的所属组
group:temp:r-x# 一般组的权限  创建的临时组
mask::rwx# 权限掩码,用来控制最大权限  
other::---

最大权限是指: 如果给用户赋予了ACL权限,则用户所获取的权限并不是ACL时所附的权限,而是赋予的ACL权限 与 mask权限 进行 与 操作 之后的权限。例如:user:tempuser:r-x 第一位是r, mask的第一位也是r, 则与操作后,用户则有 r 的权限, user:tempuser:r-x 第二位是 - ,mask的第二位是 w,则与操作后用户则没有 w 的权限。

最大权限的作用:mask的默认值为rwx,即最大权限,任何其他的权限值和mask相“与”都会得到其自身; 可以通过调整mask的方式来控制分配给用户的最大权限,例如: mask值调整为 r-x ,则不管是否给用户分配”w”权限,用户都没有“w”的权限。mask可以用来避免权限分配不当而给系统带来的风险

注意:mask不会影响文件所有者的权限

实验:

# 设置mask
[root@localhost ~]# setfacl -m m:rx /project
# 查看mask
[root@localhost ~]# getfacl /project
getfacl: Removing leading '/' from absolute path names
# file: project
# owner: root
# group: tgroup
user::rwx
user:tempuser:r-x
group::rwx			#effective:r-x# 所属组虽然设置的权限为rwx,但其实际的权限 r-x  ✨
group:temp:r-x
mask::r-x# 修改之后的mask

1,2、ACL权限的删除

# 删除指定ACL权限
[root@localhost ~]# setfacl -x u:tempuser /project
[root@localhost ~]# getfacl /project
getfacl: Removing leading '/' from absolute path names
# file: project
# owner: root
# group: tgroup
user::rwx
group::rwx
group:temp:r-x
mask::rwx
other::---
# 删除所有ACL权限
[root@localhost ~]# setfacl -b /project
[root@localhost ~]# getfacl /project
getfacl: Removing leading '/' from absolute path names
# file: project
# owner: root
# group: tgroup
+
user::rwx
group::rwx
other::---
# 注意: 权限没有 + 
[root@localhost ~]# ll -d /project
drwxrwx---. 2 root tgroup 6 8月  23 13:07 /project

1.3、ACL权限的递归及默认值

所谓递归是指:指定目录下的所有文件及其子目录,都具体指定的ACL权限属性

注意:ACL权限只对已有的文件或目录起作用,对新加的不起作用

ACL的默认值:如果希望新加的文件或目录都具有父目录所拥有的ACL权限属性,则需要设置默认值

# 设置ACL权限
[root@localhost project]# setfacl -m u:tempuser:rx /project
[root@localhost project]# ll -d 
drwxrwx---+ 2 root tgroup 6 8月  23 13:07 .
# project目录已经设置好了ACL权限,在该目录中添加一个文件,文件并不具有ACL权限,因为在设置ACL权限时并没有指定递归属性
[root@localhost project]# touch abc.txt
[root@localhost project]# ll
总用量 0
-rw-r--r--. 1 root root 0 8月  23 17:29 abc.txt
# 设置ACL权限可以递归,注意:R参数的位置在此处是固定的,这算是Linux中命令的一个特例,Linux中命令参数的位置一般是不敏感的
[root@localhost ~]# setfacl -m u:tempuser:rx -R /project
[root@localhost project]# ll /project
总用量 0
-rw-r-xr--+ 1 root root 0 8月  23 17:29 abc.txt
# 在设置了project目录递归ACL权限属性后,再在该目录中创建一个新的文件,此时发现新的文件并没有ACL权限,这说明ACL权限只对已有的文件或目录起作用,对新加的不起作用
[root@localhost project]# touch def.txt
[root@localhost project]# ll
总用量 0
-rw-r-xr--+ 1 root root 0 8月  23 17:29 abc.txt
-rw-r--r--. 1 root root 0 8月  23 17:43 def.txt
# 设置ACL默认值,默认值的参数是d,可以和-R结合使用
[root@localhost project]# setfacl -m d:u:tempuser:rx -R /project
[root@localhost project]# getfacl /project
getfacl: Removing leading '/' from absolute path names
# file: project
# owner: root
# group: tgroup
user::rwx
user:tempuser:r-x
group::rwx
mask::rwx
other::---
default:user::rwx
default:user:tempuser:r-x
default:group::rwx
default:mask::rwx
default:other::---[root@localhost project]# touch www.txt
[root@localhost project]# ll
总用量 0
-rw-r-xr--+ 1 root root 0 8月  23 17:29 abc.txt
-rw-r--r--. 1 root root 0 8月  23 17:43 def.txt# 该文件在设置规则之后,默认值之前创建,两头都不管,所以没有ACL权限属性
-rw-rw----+ 1 root root 0 8月  23 17:51 www.txt
[root@localhost project]# 

二. 特殊位

2.1 SUID

  1. 什么是suid
  • SUID是对二进制可执行的文件才有效, 普通文件设置之后是没有意义的
  • 执行者对该程序有x权限
  • 当程序具有suid时,程序执行者在执行程序期间,会暂时获得该程序所有者的身份
  • 程序执行者所获取的属主身份,只在程序运行过程中有效
  1. 为什么需要suid

Linux中具有suid权限的文件,如:passwd

[root@localhost ~]# whereis passwd


 

[root@localhost ~]# ll /usr/bin/passwd
-rwsr-xr-x. 1 root root 27856 4月   1 2020 /usr/bin/passwd
[root@localhost ~]#passwd: /usr/bin/passwd /etc/passwd /usr/share/man/man1/passwd.1.gz /usr/share/man/man5/passwd.5.gz
 

注意:passwd的权限中在文件所有者的权限中有一个“s”,这说明:

  • passwd执行程序具有suid权限
  • 在passwd执行期间会获取root权限
  • 同时所属组和其他用户是用户r和x权限

为什么需要这么设置权限?

  • passwd修改的实际上是/etc/shadow的内容,但该文件只有root超级管理员才能修改,一般用户不可以
  • 但一般用户应该可以修改自己的账户密码,这是正当的需求
  • 在passwd执行期间,让普遍用户暂时获取root用户的权限,以便于修改shadow文件,执行完成临时赋予的权限消失,这即满足了用户可以修改自己密码的需求,也照顾到了系统安全性。
  1. 怎么设置suid?
  • 字母方式
    • chmod u+s <文件名>
    • u代表设置的是suid
  • 数字方式
    • chmod 4755 <文件名>
    • 最前方的4表示设置的是suid,后面的755分别代码 所有者,所属组,其他人的权限
  1. 怎样移除suid
  • 设置设置权限
    • chmod 755 <文件名>
  • 字符方式
    • chmod u-s <文件名>

2.2 SGID

  1. 什么是SGID

相对于SUID只能设置可执行的文件,SGID可以设置可执行文件,也可以设置目录,SGID有如下特征:

  • 如果设置的对象是文件,则只能是可执行的二进制文件,且命令的执行者需要对文件有 x 权限
  • 命令执行过程中,组身份升级为该文件的所属组
  • 只有在程序执行的过程中才有效
  1. 使用案例
  2. # centos7默认没有安装locate,先执行安装
    [root@localhost ~]# yum install mlocate
    [root@localhost ~]# updatedb
    [root@localhost ~]# locate inittab
    /etc/inittab
    /usr/share/vim/vim74/syntax/inittab.vim
    # 查看locate命令,注意权限 所属组部分的s,这个s即表示开启了SGID,在执行该
    # 命令时,会在执行期间临时将组身份升级为该文件的所属组
    [root@localhost ~]# ll /usr/bin/locate
    -rwx--s--x. 1 root slocate 40520 4月  11 2018 /usr/bin/locate
    # locate命令需要使用mlocate.db文件,但该文件默认情况下普通用户是没有权限读的,当用户
    # 运行locate命令时,临时获取了SGID属性,组身份升级为了该文件的所属组,所以具有了对
    # mlocate文件的读权限。
    [root@localhost test]# ll /var/lib/mlocate/mlocate.db
    -rw-r-----. 1 root slocate 1123834 10月  2 15:06 /var/lib/mlocate/mlocate.db
    #  ---- 为目录设置SGID的示例 -----
    # 查看当前目录
    [root@localhost ~]# pwd
    /root
    # 在tmp目录下创建一个目录
    [root@localhost ~]# mkdir /tmp/test
    # 给test赋予SGID的权限,(第一2表示SGID),如果需要清除SGID则可以使用 777
    # 也可以使用 chmod g+s 文件或目录名
    [root@localhost ~]# chmod 2777 /tmp/test
    # 权限所属组部分的s,表示拥有SGID权限
    [root@localhost ~]# ll -d /tmp/test
    drwxrwsrwx. 2 root root 6 10月  2 14:58 /tmp/test
    # 切换用户
    [root@localhost ~]# su lisen
    [lisen@localhost root]$ pwd
    /root
    # 普通用户无权在root目录下创建文件
    [lisen@localhost root]$ touch abc.txt
    touch: 无法创建"abc.txt": 权限不够
    # 在home目录下创建一个文件,文件的默认的所属组为,当前用户的所属组
    [lisen@localhost root]$ cd /home/lisen
    [lisen@localhost ~]$ touch abc.txt
    [lisen@localhost ~]$ ll
    总用量 0
    -rw-rw-r--. 1 lisen lisen 0 10月  2 15:01 abc.txt
    # 在设置了SGID的目录中,创建文件,默认的所属组变成了目录的所属组,这是SGID的作用
    [lisen@localhost ~]$ cd /tmp/test
    [lisen@localhost test]$ touch bcd.txt
    [lisen@localhost test]$ ll
    总用量 0
    -rw-rw-r--. 1 lisen root 0 10月  2 15:01 bcd.txt
    [lisen@localhost test]$ 

2.3 SBIT粘着位权限

SBIT权限的特点:

  • SBIT权限只能针对目录有效
  • 普通用户对目录拥有w和x权限,即普通用户对目录有写入权限
  • 若没有SBIT,则普通用户可以删除目录下的所有文件,包括其他用户创建的文件;若目录有SBIT权限,则只用root用户可以删除所有文件,普通用户就算拥有w权限,也只能删除自己建立的文件,对于其他用户创建的文件则无权删除。
  • SBIT权限的设置只能是root用户,其他用户不可以
    # Linux中的tmp目录是使用SBIT权限的典型目录,注意权限部分最后的t字母
    [root@localhost ~]# ll -d /tmp
    drwxrwxrwt. 10 root root 218 10月  2 16:05 /tmp
    # 创建一个新用户,并设置密码
    [root@localhost ~]# useradd test
    [root@localhost ~]# passwd test
    # 切换到lisen用户,在/tmp目录下创建文件
    [lisen@localhost root]$ touch /tmp/abcd.txt
    # 切换到test用户,删除/tmp/目录下的abcd.txt文件,因为tmp目录具有SBIT权限,且abcd.txt
    # 文件不是当前用户创建,所以无权删除。
    [test@localhost root]$ cd /tmp
    [test@localhost tmp]$ ls
    abcd.txt
    abc.txt
    systemd-private-a092fa5008e44207b2cdbcae85170c80-chronyd.service-WocDs1
    test
    vmware-root_665-3988687359
    [test@localhost tmp]$ rm abcd.txt
    rm:是否删除有写保护的普通空文件 "abcd.txt"?y
    rm: 无法删除"abcd.txt": 不允许的操作
    # ---- 设置SBIT权限 ----
    [root@localhost /]# mkdir /test
    # 创建的目录默认的权限是755
    [root@localhost /]# ll -d /test
    drwxr-xr-x. 2 root root 6 10月  2 17:33 /test
    # 设置SBIT权限
    [root@localhost /]# chmod 1755 /test
    [root@localhost /]# ll -d /test
    drwxr-xr-t. 2 root root 6 10月  2 17:33 /test
    # 上面的设置test的其他用户没有写入的权限,所以SBIT权限的没有什么含义
    [root@localhost ~]# chmod 1777 /test
    [root@localhost ~]# ll -d /test
    drwxrwxrwt. 2 root root 6 10月  2 17:33 /test
    3. 文件系统属性chattr权限
    命令格式: chattr [+-=] [权限选项] 文件或目录, + 增加权限, -删除权限, =赋予权限权限选项:i 如果文件被设置i属性,则不允许文件进行删除,改名,文件内容也不允许改动; 如果目录被设置了i选项,则只能修改目录下的文件数据,但不允许建立和删除文件。需要注意的是该属性对root用户也同样有效
    a 如果对文件设置了a属性,则只能在文件中增加数据,但不能修改也不能删除数据; 如果对目录设置了a属性,那么只能在目录中建立或修改文件,但不能删除
    使用示例# ------ 文件的chattr属性示例 ---------
    # ======= 文件的i属性 =============
    # 创建一个文件,先不为其设置 i 属性, 此时可以正常写入内容
    [root@localhost ~]# touch abc
    [root@localhost ~]# ll
    总用量 116
    -rw-r--r--. 1 root root      0 10月  3 18:51 abc
    -rw-------. 1 root root   1396 2月   8 2021 anaconda-ks.cfg
    -rw-r--r--. 1 root root   2381 8月  17 14:58 index.html
    -rw-r--r--. 1 root root 102052 8月  17 15:02 index.html.1
    -rw-r--r--. 1 root root   1612 3月  19 2021 index.html.2
    -rw-r--r--. 1 root root   2381 8月  17 15:21 index.html.3
    [root@localhost ~]# echo 1234345 > abc
    [root@localhost ~]# cat abc
    1234345
    [root@localhost ~]# 
    # 为abc文件设置i属性
    [root@localhost ~]# chattr +i abc
    # 一般的ls命令不能显示文件的i属性,需要使用lsattr命令
    [root@localhost ~]# lsattr -a abc
    ----i----------- abc
    [root@localhost ~]# 
    # 设置了abc文件的i属性后,测试修改其内容,无权修改,删除也不行
    [root@localhost ~]# echo efefe >> abc
    -bash: abc: 权限不够
    [root@localhost ~]# 
    [root@localhost ~]# rm abc
    rm:是否删除普通文件 "abc"?y
    rm: 无法删除"abc": 不允许的操作
    [root@localhost ~]# 
    # ========= 目录的i属性示例 =========
    [root@localhost ~]# mkdir /test
    [root@localhost ~]# cd /test
    [root@localhost test]# ll
    总用量 0
    # 没有设置chattr属性之前,可以添加文件
    [root@localhost test]# touch a.txt
    [root@localhost test]# ls
    a.txt
    # 设置chattr属性之后,可以对原来的目录中有的文件进行修改,但不能在目录中
    # 添加或删除文件(报权限不够)
    [root@localhost test]# chattr +i /test
    [root@localhost test]# lsattr -a /test/
    ----i----------- /test/.
    ---------------- /test/..
    ---------------- /test/a.txt
    [root@localhost test]# echo avaavv >> /test/a.txt
    [root@localhost test]# touch /test/b.txt
    touch: 无法创建"/test/b.txt": 权限不够
    [root@localhost test]# 
    # ============ 文件的a属性 ===========
    [root@localhost test]# touch a.txt
    [root@localhost test]# chattr +a a.txt
    # > 将内容写入文件
    [root@localhost test]# echo 123 > a.txt
    -bash: a.txt: 不允许的操作
    # >> 将内容追加到文件
    [root@localhost test]# echo 12345 >> a.txt
    [root@localhost test]# cat a.txt
    12345
    # ========== 目录的a属性 =========
    [root@localhost /]# mkdir test02
    [root@localhost /]# chattr +a test02
    [root@localhost /]# cd /test02
    [root@localhost test02]# touch a.txt
    [root@localhost test02]# rm a.txt
    rm:是否删除普通空文件 "a.txt"?y
    rm: 无法删除"a.txt": 不允许的操作
    [root@localhost test02]# mv a.txt b.txt
    mv: 无法将"a.txt" 移动至"b.txt": 不允许的操作
    [root@localhost test02]# 
    4. sudo
    作用:root把本来只能由超级用户使用的命令赋予普通用户使用
    sudo的操作对象是系统命令
    使用场景:在需要将超级管理员的某些功能权限临时下方与普通用户时可以使用使用,(尚方宝剑)
    修改sudo的配置(/etc/sudoers):修改格式:
    root ALL=(ALL) ALL
    用户名 被管理主机IP=(可使用的身份) 授权命令(绝对路径)
    %wheel ALL=(ALL) ALL
    组名 被管理主机IP=(可使用的身份) 授权命令 (绝对路径)
    # 查看或修改sudo的配置,也可以直接编辑/etc/sudoers文件
    [root@localhost ~]# visudo
    ## The COMMANDS section may have other options added to it.
    ##
    ## Allow root to run any commands anywhere
    root    ALL=(ALL)       ALL
    ## 增加lisen用户,可以执行服务器重启命令
    lisen      ALL=/sbin/shutdown -r now
    ## 切换到到lisen用户后可以使用上面的命令,但是需要注意两个地方:1. 和sudo一起用,2. 使用命令
    ## 的绝对路径

注意事项:

  • 主要不要将vim等编辑工具配置到sudo中去,如果在sudo的配置文件中配置了vim,则普通用户在运行vim中就拥有了超级用户的身份,这是很危险的,使用普通用户有权修改任何文件。

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

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

相关文章

C# cass10 面积计算

运行环境Visual Studio 2022 c# cad2016 cass10 通过面积计算得到扩展数据&#xff0c;宗地面积 &#xff0c;房屋占地面积&#xff0c;房屋使用面积 一、主要步骤 获取当前AutoCAD应用中的活动文档、数据库和编辑器对象。创建一个选择过滤器&#xff0c;限制用户只能选择&q…

究竟做老隋分享的temu蓝海项目怎么样?这些要点要关注

近年来&#xff0c;跨境电商成为了一股热潮&#xff0c;许多企业纷纷投身其中&#xff0c;希望能够分得一杯羹。其中&#xff0c;Temu项目备受关注。本文将从可靠性角度分析Temu蓝海项目&#xff0c;帮助您了解其优势和潜在风险。 一、 Temu项目的背景与可靠性 Temu是由拼多多推…

Codeforces Round 494 (Div. 3)

目录 A. Polycarps Pockets B. Binary String Constructing C. Intense Heat D. Coins and Queries E. Tree Constructing F. Abbreviation A. Polycarps Pockets 记录数量可以直接开一个桶即可然后求最大值 void solve(){cin>>n;vector<int> ton(105);int …

【进程概念】

目录 什么是在计算机运行的程序这么多运行的程序计算机是如何管理的先描述再组织 什么是在计算机运行的程序 对于一个在磁盘可执行的二进制文件&#xff0c;也可叫做可执行程序。对于一个可执行的程序&#xff0c;程序有自己的代码和数据。一旦运行起来&#xff0c;就会在计算…

Linux ip route命令

理解ip route命令 ip route是Linux系统中的一个非常常用的命令&#xff0c;它用于配置和管理Linux的路由表。通过ip route命令&#xff0c;管理员可以查看、添加、删除或修改Linux系统的路由表&#xff0c;从而决定数据包如何在网络中传输。例如&#xff0c;当一台Linux机器需要…

Error: A JNI error has occurred, please check your installation and try again

天行健&#xff0c;君子以自强不息&#xff1b;地势坤&#xff0c;君子以厚德载物。 每个人都有惰性&#xff0c;但不断学习是好好生活的根本&#xff0c;共勉&#xff01; 文章均为学习整理笔记&#xff0c;分享记录为主&#xff0c;如有错误请指正&#xff0c;共同学习进步。…

【Redis服务搭建】

目录 Redis的修改配置启动以及参数调优Redis的常用基本操作Redis运维监控命令Redis的配置的动态更新和写入Redis的多用户管理Redis的慢日志Redis禁用危险命令和压测工具Redis持久化存储1.Redis的RDB持久化存储2.Redis的AOF持久化存储 Redis的主从复制redis的哨兵实现主从自动切…

基于支持向量机的航迹追踪,基于支持向量机的航迹追踪,基于SVM的航迹矫正

目录 支持向量机SVM的详细原理 SVM的定义 SVM理论 Libsvm工具箱详解 简介 参数说明 易错及常见问题 完整代码和数据下载链接:基于支持向量机的航迹追踪,基于支持向量机的航迹追踪,基于SVM的航迹矫正(代码完整,数据齐全)资源-CSDN文库 https://download.csdn.net/downloa…

深入探索Linux:ACL权限、特殊位与隐藏属性的奥秘

前言&#xff1a; 在Linux系统中&#xff0c;文件和目录的权限管理是一项至关重要的任务。它决定了哪些用户或用户组可以对文件或目录执行读、写或执行等操作。传统的Linux权限模型基于用户、组和其他的概念&#xff0c;但随着时间的推移&#xff0c;这种模型在某些情况下显得…

GIT中对子仓库的使用方法介绍

git 子仓库 主仓库中添加子仓库 git submodule add <url> <path>更新子代码代码 git submodule update --init克隆含有子仓库的仓库 git clone --recurse-submodules <url>主仓库中删除子仓库 1、进入包含子仓库的父仓库的根目录 2、使用以下命令将子仓…

RISC-V知识总结 —— 指令集

资源1: RISC-V China – RISC-V International 资源2: RISC-V International – RISC-V: The Open Standard RISC Instruction Set Architecture 资源3: RV32I, RV64I Instructions — riscv-isa-pages documentation 1. 指令集架构的类型 在讨论RISC-V或任何处理器架构时&…

OpenLayers多要素旋转平移缩放及olext深度定制化

目录 1.前言2.olext官方示例3.重写Transform.js4.自定义样式5.自定义选中机制6.拓展思考6.1包围框的角度问题6.2不选中要素如何平移 7总结 1.前言 首先OpenLayers本身是支持旋转、平移、缩放的。olext 只是在 OpenLayers 的基础上又做了一层封装&#xff0c;使得看起来比较好看…

函数栈帧的创建及销毁(超详解)

目录 1.预备知识 1.1内存区的划分 1.2认识相关寄存器和汇编指令 1.2.1寄存器 1.2.2相关汇编指令 2.测试前 2.1测试代码及环境 2.2 main函数也是被其他函数调用的 3.函数栈帧的创建 4.进入函数内部 5.形参与实参 6.call/jump add函数 7.函数栈帧的销毁 7.1保存…

使用transformer来训练自己的大模型实现自定义AI绘图软件的详细操作步骤

使用transformer来训练自己的大模型实现自定义AI绘图软件的详细操作步骤&#xff01;下面的步骤是非常细致的&#xff0c;如果你有一台自己的GPU算力还算可以的服务器主机&#xff0c;想自己训练AI大模型。可以按照如下步骤开展操作。 要使用 Transformer 框架训练属于自己的大…

哪种游泳耳机品牌更好?2024四款甄选高评分榜单好物!

在繁忙的都市生活中&#xff0c;游泳已经成为了许多人释放压力、保持健康的重要方式。而随着科技的进步&#xff0c;游泳耳机也逐渐走进了人们的视野&#xff0c;让音乐与游泳完美结合&#xff0c;为游泳爱好者带来了全新的运动体验。然而&#xff0c;在琳琅满目的游泳耳机市场…

MQL5交易参数转化为JSON

文章目录 MQL交易参数转化为json的意义MQL交易参数转化为json的代码实现MqlTradeRequest 结构体转化为JSONJSON解析为MqlTradeRequest 结构体 MQL交易参数转化为json的意义 MQL交易参数转化为JSON的好处是可以方便地在不同的系统之间进行数据传输和交互。 易于阅读和编写&#…

matlab|计及电转气协同的含碳捕集与垃圾焚烧虚拟电厂优化调度

1 主要内容 该程序参考《计及电转气协同的含碳捕集与垃圾焚烧虚拟电厂优化调度》模型&#xff0c;主要实现的是计及电转气协同的含碳捕集与垃圾焚烧虚拟电厂优化调度模型。通过引入碳捕集电厂–电转气–燃气机组协同利用框架&#xff0c;碳捕集的CO2 可作为电转气原料&#xf…

switch语句中忘写break会发生什么?(企业真题)

switch语句中忘写break会发生什么 会发生case穿透,不会再和case后的常量值进行比较&#xff0c;会直接执行执行语句直到结束或碰到break

Sora——探索AI视频模型的无限可能

Sora - 探索AI视频模型的无限可能 Sora作为OpenAI发布的一款AI视频模型&#xff0c;其探索的无限可能性表现在多个方面。首先&#xff0c;从技术的角度来看&#xff0c;Sora将文本生成图像的技术扩展到了视频领域&#xff0c;实现了从文字描述到视频内容的自动生成。这种技术突…

学习JAVA的第四天(基础)

目录 方法 方法的定义 方法的调用 参数 注意事项 方法的重载 练习 面向对象 类和对象 定义类的注意事项 封装 private关键字 this关键字 构造方法 标准的Javabean类 创建一个对象时&#xff0c;虚拟机做了什么&#xff1f; 方法 方法含义&#xff1a;方法是程序…