RHCE9学习指南 第9章 权限管理

9.1 所有者所属组

为了了解所有者和所属组的概念,我们先看图9-1。
file
图9-1 用房子来帮助理解所有者和所属组
张老板是公司老板,买了一套房作为员工宿舍给A部门的员工居住。张老板是房主,所以他对房子具有很多权限,A部门员工只能具有使用权不能私自装修等,除张老板和A部门员工外,其他所有的人都没有任何权限。
那么,这套房子对三组人设置权限,如表9-1所示。
file
表9-1 了解u、g、o
所有者 所属组 其他人
张老板 A部门员工 其他所有人
u g o
同理,在Linux系统中对文件授权也是通过这样的分组对文件授权,如图9-2所示。
file
图9-2 查看文件所有者和所属组
1的位置是所有者,这里/opt/hosts的所有者是root。
2的位置是所属组,这里/opt/hosts的所属组为root。
如果想改变所有者可以用chown命令来实现,chown的用法如下。

chown user1 file

这句话的意思是把file的所有者改为user1(理解为过户),例如,把/opt/hosts的所有者改为lduan。

[root@server ~]# chown lduan /opt/hosts 
[root@server ~]# ls -l /opt/hosts 
-rw-r--r--. 1 lduan root 158 810 02:21 /opt/hosts
[root@server ~]#

chown也可以用于修改组,用法如下。

chown .group1  file  或者chown :group1  file 

把file的所属组改成group1,这里组前面有个点或冒号。例如,把/opt/hosts的所属组改成users。

[root@server ~]# chown .users /opt/hosts
[root@server ~]# ls -l /opt/hosts 
-rw-r--r--. 1 lduan users 158 810 02:21 /opt/hosts
[root@server ~]#

需要注意的是,这里的点或冒号一定不要忘记了,否则就是修改所有者了。
也可以同时修改所有者和所属组,用法“chown user1.group1 file”,例如,把/opt/hosts的所有者改成root,所属组改成lduan,如下所示。

[root@server ~]# chown root.lduan /opt/hosts 
[root@server ~]# ls -l /opt/hosts 
-rw-r--r--. 1 root lduan 158 810 02:21 /opt/hosts
[root@server ~]# 

创建目录/opt/xx,把/etc/hosts拷贝到/opt/xx中,然后查看/opt/xx和/opt/xx/hosts的权限,如下所示。

[root@server ~]# mkdir /opt/xx
[root@server ~]# cp /etc/hosts /opt/xx
[root@server ~]# ls -ld /opt/xx
drwxr-xr-x. 2 root root 19 810 02:27 /opt/xx
[root@server ~]# ls -l /opt/xx/hosts 
-rw-r--r--. 1 root root 158 810 02:27 /opt/xx/hosts
[root@server ~]#

可以看到,所有者都是root。
现在修改/opt/xx的所有者为lduan,命令如下所示。

[root@server ~]# chown lduan /opt/xx
[root@server ~]# ls -ld /opt/xx/
drwxr-xr-x. 2 lduan root 19 810 02:27 /opt/xx/
[root@server ~]# 
[root@server ~]# ls -l /opt/xx/hosts 
-rw-r--r--. 1 root root 158 810 02:27 /opt/xx/hosts
[root@server ~]# 

可以看到,/opt/xx的所有者变为了lduan,但是/opt/xx中文件hosts的所有者并没有修改,这也就意味着,当修改目录的所有者或所属组时,并不会影响目录中文件东西的属性。如果在改变目录属主/组时,想把里面的东西的属主/组一起改掉,需要加上-R选项(表示递归),如下所示。

[root@server ~]# chown -R lduan /opt/xx/
[root@server ~]# ls -ld /opt/xx/
drwxr-xr-x. 2 lduan root 19 810 02:27 /opt/xx/
[root@server ~]# ls -l /opt/xx/hosts 
-rw-r--r--. 1 lduan root 158 810 02:27 /opt/xx/hosts
[root@server ~]#

这里可以看到,不仅把/opt/xx的属主改了,同时把/opt/xx里面东西的属主也改了。
如果想单独修改所属组,还可以用chgrp,用法如下。

chgrp group1 file

把/opt/hosts的所属组改为users,如下所示。
[root@server ~]# ls -l /opt/hosts

-rw-r--r--. 1 root lduan 158 810 02:21 /opt/hosts
[root@server ~]# chgrp users /opt/hosts
[root@server ~]# ls -l /opt/hosts
-rw-r--r--. 1 root users 158 810 02:21 /opt/hosts
[root@server ~]#

当然chgrp也可以使用-R选项表示递归和chown一样,大家自行练习即可。
再次把/opt/hosts所有者和所属组改为root,如下所示。
[root@server ~]# chown root.root /opt/hosts

[root@server ~]# ls -l /opt/hosts
-rw-r--r--. 1 root root 158 810 02:21 /opt/hosts
[root@server ~]#

9.2 查看及修改权限

对于一个文件来说,我们可以设置某用户对它具有什么操作权限,例如,是否可以看这个文件中的内容,是否可以往这个文件中写等。具有的权限包括3种。
(1)r:读权限。
(2)w:写权限。
(3)x:可执行权限。
R权限和w权限比较好理解,x权限如何理解呢?
对于一个目录dir1来说,如果用户user1对目录dir1有x权限,则user1是可以cd到dir1中的,反之则不能cd进去。
对于文件file1来说,如果用户user1对file1具有x权限,则用户可以把file1当成一个命令来执行,当然运行的结果就要看file1的内容写的是什么了。
在Linux系统中文件或目录的权限 是通过u、g、o授权的,看下面的例子,如下图所示。
file

1是所有者的权限,这里的权限为rw。
2是所属组的权限,这里的权限为r。
3是其他人的权限,这里的权限为r。
查看一下lduan所属组,命令如下。

[root@server ~]# groups lduan
lduan : lduan
[root@server ~]# 

lduan用户只属于lduan组,所以lduan用户对/opt/hosts文件只能使用o的权限,即只读r。

要是想修改权限使用的是chmod命令,用法如下图所示。
file

上面这个用法都是在原有基础上对权限进行增添删减。
设置o不允许读/opt/hosts。

[root@server ~]# chmod o-r /opt/hosts
[root@server ~]# ls -l /opt/hosts
-rw-r-----. 1 root root 158 810 02:21 /opt/hosts
[root@server ~]#

使用lduan用户读取此文件。

[lduan@server ~]$ cat /opt/hosts
cat: /opt/hosts: 权限不够
[lduan@server ~]$

可以看到,lduan用户没有了读取/opt/hosts的权限。
现在把所有者的写权限去掉,同时给o加上读和写权限。

[root@server ~]# ls -l /opt/hosts
-r--r--rw-. 1 root root 158 810 02:21 /opt/hosts
[root@server ~]#

测试lduan是否对此文件可读可写。

[lduan@server ~]$ cat /opt/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
[lduan@server ~]$ echo 111 >> /opt/hosts
[lduan@server ~]$

可以看到,lduan对此文件具备可读和可写权限了。
然后使用root进行写测试。

[root@server ~]# ls -l /opt/hosts
-r--r--rw-. 1 root root 158 810 02:21 /opt/hosts
[root@server ~]# 
[root@server ~]# echo 22 > /opt/hosts 
[root@server ~]# 

从权限来看,root对此文件是只读权限,应该是写不进去的,但是实际却写进去了,这是因为很多时候这些权限设置,对root是不生效的。
刚才对权限的修改使用的是+和-,都是在原有权限的基础上进行增添删减,还可以直接用=,就是把权限设置为=后面的值,不管原来的权限是什么,如下所示。

[root@server ~]# chmod o=r /opt/hosts
[root@server ~]# ls -l /opt/hosts
-r--r--r--. 1 root root 3 810 02:45 /opt/hosts
[root@server ~]#

这里就是直接把o的权限设置为r,不管o原来的权限是什么。

9.3 用数字表示权限

我们还可以用三个数字分别表示u、g、o的权限,规则如下。
(1)r----4。
(2)w—2。
(3)x----1。
再来看前面的图,如下图所示。
file

这里u的权限为 rw,则r=4,w=2,没有x则是0,数字加起来为6,所以用6表示u的权限。对应的g的权限r,用4表示g的权限,o的权限也为4。
查看目录/opt的属性,命令如下。

[root@server ~]# ls -ld /opt/
drwxr-xr-x. 3 root root 29 810 02:27 /opt/
[root@server ~]#

这里u的权限为rwx,对应的数字的和是4+2+1=7。
g的权限为rx,对应数字的和是4+0+1=5。
o的权限为rx,对应数字的和是4+0+1=5。
除给出权限能知道对应的数字外,给出数字也要能知道对应的权限。给出3个数字,要知道第一个数字是u的权限,第二个数字是g的,第三个是o的,然后每个数字用4,2,1进行分解。案例如下所示。
chmod 426 /opt/hosts
此处4是u的权限,4不能再次拆分,对应的权限为r。
2是g的权限,对应的是w权限。
6是o的权限,6=4+2,所以o的权限为r和w。

[root@server ~]# chmod 426 /opt/hosts
[root@server ~]# ls -l /opt/hosts
-r---w-rw-. 1 root root 3 810 02:45 /opt/hosts
[root@server ~]#

使用chmod改变目录权限时,也可以使用-R选项,这样改变目录权限时也会把里面的文件及子目录的权限也改掉。
如果想给一个设置目录/文件权限,让所有人都具备所有权限,可以给此目录/文件的权限设置为777。

9.4 默认权限

先做如下操作,清空/opt中所有的内容,命令如下所示。

[root@server ~]# cd /opt/
[root@server opt]# rm -rf *
[root@server opt]# ls
[root@server opt]#

然后创建2个目录aa和bb,创建两个文件11和22。

[root@server opt]# mkdir aa bb
[root@server opt]# touch 11 22
[root@server opt]# ll
总用量 0
-rw-r--r--. 1 root root 0 810 11:41 11
-rw-r--r--. 1 root root 0 810 11:41 22
drwxr-xr-x. 2 root root 6 810 11:41 aa
drwxr-xr-x. 2 root root 6 810 11:41 bb
[root@server opt]#

可以看到,文件的默认权限都是644,目录默认权限都是755(大家可以自行再多创建几个文件验证),这个默认权限是哪里来的呢?系统中存在一个叫umask的值。

[root@server opt]# umask
0022
[root@server opt]#

这个umask值我们称之为权限过滤符,有4个数字,其中第一个数字0表示八进制,默认权限就是由后面三个值决定的,这里看到的umask默认值是022。
创建文件时最多能具有的权限是666,创建目录时最多具有的权限是777,然后通过umask进行过滤最终得到的权限是默认权限了。
此时有人会得到一个结论,文件的默认权限是666-umask,目录默认的权限是777-umask,这个结论并不完全正确。
先用默认的umask=022来分析,如下图所示。
file

如上图,u的权限不做任何过滤,g和o的权限分别把w给过滤掉,所以文件的权限为644,目录的权限为755。
现在把umas设置为033再次分析,如下图所示。
file

umask要过滤g和o的wx权限,但是创建文件时本身就不带x,所以这里过滤x并没用。对于目录来说则是吧g和o的wx都过滤掉了。
所以,得到的结论如下。
(1)目录的默认权限为=777-umask。
(2)文件的默认权限为=666-(umask每个奇数-1),如umask=333,则目录默认权限=666=222。
相反,如果有需求创建一个文件时要有一个特定的默认权限,得要知道如何设置umask的值,例如,要求创建文件时默认权限为222,umask=666-222=444,所以umask可以设置为444,也可以设置为544、554、455等,只要umask的三个数字中有奇数 减1,最后为444的都可以。

9.5 特殊权限

除具有r、w、x三个权限外,还有s和t权限。

  1. s设置在可执行命令上
    当某可执行命令的所有者的位置上有s位,那么当普通用户再执行这个命令时将具有所有者的权限,如下图所示。
    file
    例如,济公的扇子在济公手中是有法力的,但是这扇子在张三手中就没有了法力,济公如果在扇子上加上一个s位,则张三拿到此扇子将和济公一样,具有了法力。
    我们知道用户的密码都是存放在/etc/shadow中的,而/etc/shadow对其他人来说是没有任何权限的。
[root@server opt]# ls -l /etc/shadow
----------. 1 root root 1340 810 02:03 /etc/shadow
[root@server opt]#

普通用户是可以修改密码的。

[lduan@server ~]$ passwd 
更改用户 lduan 的密码 。
Current password: 
新的 密码:
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
[lduan@server ~]$

能修改密码,也就意味着/etc/shadow的内容被修改了,这和普通用户没权限修改/etc/shadow相冲突,为什么能改呢?问题在于passwd命令身上,我们来看下此命令的属性。

[root@server opt]# which passwd
/usr/bin/passwd
[root@server opt]# ls -l /usr/bin/passwd 
-rwsr-xr-x. 1 root root 33544 1214 2019 /usr/bin/passwd
[root@server opt]#

先通过which命令查看到passwd的路径,然后使用ls -l查看它的属性,其实这两条命令可以写成一条,如下所示。

[root@server opt]# ls -l $(which passwd)
-rwsr-xr-x. 1 root root 33544 1214 2019 /usr/bin/passwd
[root@server opt]#

这样可以就是把 ( ) 中命令的结果传递给外面的命令使用,此处 ()中命令的结果传递给外面的命令使用,此处 ()中命令的结果传递给外面的命令使用,此处()可以换成反引号``,记住是反引号不是单引号,反引号就是键盘~那个键。
这里可以看到,命令passwd所有者的位置上有s位,root用户用命令passwd可以修改密码即修改/etc/shadow的内容,如下所示。

[root@server opt]# echo haha001 | passwd --stdin lduan
更改用户 lduan 的密码 。
passwd:所有的身份验证令牌已经成功更新。
[root@server opt]#

那么,普通用户使用passwd命令也就能修改/etc/shadow的内容。
再举个例子,查看/opt/11的权限。

[root@server opt]# touch /opt/11
[root@server opt]# ls -l /opt/11
-rw-r--r--. 1 root root 0 810 11:49 /opt/11
[root@server opt]#

再看一下vim命令的属性。

[root@server opt]# ls -l $(which vim)
-rwxr-xr-x. 1 root root 3063856 63 2020 /usr/bin/vim
[root@server opt]#

这里vim没有s位。
lduan用户对/opt/11只能使用o的权限,即r–,是没有写权限的,请自行用vim打开此文件,然后写入一些数据,然后强制保存,如下图所示,发现是写不进去的。
file

然后给vim命令所有者位置上加上s权限。

[root@server opt]# chmod u+s $(which vim)
[root@server opt]# ls -l $(which vim)
-rwsr-xr-x. 1 root root 3063856 63 2020 /usr/bin/vim
[root@server opt]#

然后再次用lduan用户编辑/opt/11文件,按i进入插入模式,随意写入些内容,如下图所示。
file

虽然这里提示修改的是只读文件,但是强制保存,也是可以写进去的。

[lduan@server ~]$ cat /opt/11
这是一个测试
[lduan@server ~]$

把vim命令所有者位置上的s权限去除,命令如下所示。

[root@server opt]# chmod u-s $(which vim)
[root@server opt]# ls -l $(which vim)
-rwxr-xr-x. 1 root root 3063856 63 2020 /usr/bin/vim
[root@server opt]#

2. s设置在目录的所属组上

如果目录所属组的位置上有s位,则不管是谁在此目录下创建的新文件或目录,都会继承这个目录所属组。
查看目录/opt/aa的属性信息,命令如下所示。

[root@server opt]# ls -ld /opt/aa/
drwxr-xr-x. 2 root root 6 810 11:41 /opt/aa/
[root@server opt]#

把此目录所属组改成users,给g加上s权限,为了测试方便,给o加上w权限这样lduan也可以往此目录中写内容,如下所示。

[root@server opt]# chgrp users /opt/aa/
[root@server opt]# chmod g+s,o+w /opt/aa
[root@server opt]# ls -ld /opt/aa/
drwxr-srwx. 2 root users 6 810 11:41 /opt/aa/
[root@server opt]#

先用root用户在此目录创建一个文件aa.txt,然后查看其属性。

[root@server opt]# touch /opt/aa/aa.txt
[root@server opt]# ls -l /opt/aa/aa.txt
-rw-r--r--. 1 root users 0 810 12:02 /opt/aa/aa.txt
[root@server opt]#

使用lduan用户在此目录中创建bb.txt,然后查看其属性,命令如下。

[lduan@server ~]$ touch /opt/aa/bb.txt
[lduan@server ~]$ ls -l /opt/aa/bb.txt
-rw-rw-r--. 1 lduan users 0 810 12:04 /opt/aa/bb.txt
[lduan@server ~]$ 

可以看到,两个文件所属组都是users,因为他们所在的目录/opt/aa所属组的位置上有s权限,且/opt/aa所属组为users,这样不管谁在/opt/aa中创建新的文件/目录,都会继承/opt/aa所属组。

3. t设置在目录的o位置

如果某个目录o位置上有t位,那么此目录中的文件除所有者和root外,其他用户即使对此文件具有所有权限,也没法删除此文件。
先创建一个用户tom,用作备用,命令如下。

[root@server opt]# useradd tom
[root@server opt]# echo haha001 | passwd --stdin tom
更改用户 tom 的密码 。
passwd:所有的身份验证令牌已经成功更新。
[root@server opt]# cd
[root@server ~]#

root用户创建一个文件/aa,把权限改为777。

[root@server ~]# chmod 777 /aa
[root@server ~]# ls -ld /aa
drwxrwxrwx. 2 root root 6 810 12:11 /aa
[root@server ~]#

使用lduan用户在/aa中创建一个文件aa.txt,并把权限设置为777。

[lduan@server ~]$ cd /aa
[lduan@server aa]$ touch aa.txt
[lduan@server aa]$ chmod 777 aa.txt
[lduan@server aa]$ ls -l aa.txt 
-rwxrwxrwx. 1 lduan lduan 0 810 12:15 aa.txt
[lduan@server aa]$

这样任何人对/aa/aa.txt都具备所有的权限,包括删除。
再打开一个终端,切换到tom,然后删除/aa/aa.txt,命令如下。

[tom@server ~]$ ls /aa
aa.txt
[tom@server ~]$ rm -rf /aa/aa.txt 
[tom@server ~]$ ls /aa
[tom@server ~]$

可以看到,tom删除了/aa/aa.txt的,因为此文件的权限为777。
使用root用户对/aa的o增加t权限,命令如下。

[root@server ~]# chmod o+t /aa
[root@server ~]# ls -ld /aa
drwxrwxrwt. 2 root root 6 810 12:16 /aa
[root@server ~]# 

然后重复刚才的操作,lduan用户创建/aa/aa.txt,并把权限设置为777。

[lduan@server aa]$ touch aa.txt
[lduan@server aa]$ chmod 777 aa.txt
[lduan@server aa]$ ls -l aa.txt
-rwxrwxrwx. 1 lduan lduan 0 810 12:17 aa.txt
[lduan@server aa]$

然后再次切换到tom进行删除此文件。

[tom@server ~]$ ls -l /aa/aa.txt 
-rwxrwxrwx. 1 lduan lduan 0 810 12:17 /aa/aa.txt
[tom@server ~]$ rm -rf /aa/aa.txt
rm: 无法删除'/aa/aa.txt': 不允许的操作
[tom@server ~]$ 

虽然/aa/aa.txt的权限为777,但是现在tom是删除不掉的,因为/aa目录o位置上有t权限,目录/aa中的东西只有所有者和root才能删除。
前面讲可以数字表示权限,3个数字分别是u、g、o的权限,有时我们可以看到有4个数字,如下图所示。
file
其中后面三个是u、g、o的权限,第一个是数字就是特殊权限了。
(1)4=所有者+s。
(2)2=所属组+s。
(3)1=其他人+t。
练习:

[root@server ~]# chmod 6644 /opt/aa
这里的6就是特殊权限,6=4+2,那么也就是u+s,g+s了.
[root@server ~]# ls -ld /opt/aa
drwSr-Sr--. 2 root users 34 810 12:04 /opt/aa
[root@server ~]#

9.6 隐藏权限

系统中还存在一些隐藏权限,这些权限的设置对root也是生效的,查看隐藏权限的命令是lsattr,如果是查看目录的隐藏权限,需要加上-d选项。

[root@server ~]# lsattr -d /opt/aa/
-------------------- /opt/aa/
[root@server ~]# 

这里不存在任何隐藏权限,修改隐藏权限的命令是chattr命令,常见的隐藏权限包括以下两种。
(1)a:只能增加不能删除。
(2)i:不能增加也不能删除。
增加权限用+,减去权限用-。
为/opt/aa增加a权限,命令如下。

[root@server ~]# chattr +a /opt/aa/
[root@server ~]# lsattr -d /opt/aa/
-----a-------------- /opt/aa/
[root@server ~]#

/opt/aa目录中的内容只能增加,不能删除。

[root@server ~]# cp /etc/hosts /opt/aa
[root@server ~]# ls /opt/aa/
aa.txt  bb.txt  hosts
[root@server ~]# rm -rf /opt/aa/hosts
rm: 无法删除'/opt/aa/hosts': 不允许的操作
[root@server ~]#

删除失败,因为目录/opt/aa中的内容不允许删除,但是里面的文件是可以修改的。

[root@server ~]# echo 1111 > /opt/aa/hosts 
[root@server ~]#

可以看到,修改成功了。
去除a权限,命令如下。

[root@server ~]# chattr -a /opt/aa/
[root@server ~]# lsattr -d /opt/aa/
-------------------- /opt/aa/
[root@server ~]#

为/opt/aa增加i权限,命令如下。

[root@server ~]# chattr +i /opt/aa
[root@server ~]# lsattr -d /opt/aa
----i--------------- /opt/aa
[root@server ~]#

在/opt/aa中写入内容,命令如下。

[root@server ~]# ls /opt/aa/
aa.txt  bb.txt  hosts
[root@server ~]# cp /etc/services /opt/aa/
cp: 无法创建普通文件'/opt/aa/services': 不允许的操作
[root@server ~]#

会发现写不进去,下面删除一个文件,命令如下。

[root@server ~]# rm -rf /opt/aa/hosts 
rm: 无法删除'/opt/aa/hosts': 不允许的操作
[root@server ~]#

文件也删除不掉。
可以查看是否能修改文件内容,命令如下。

[root@server ~]# echo 222 > /opt/aa/hosts 
[root@server ~]# 

也是可以修改的,请自行把/opt/aa/的i权限删除,然后清空/opt中的内容。

[root@server ~]# chattr -i /opt/aa/
[root@server ~]# rm -rf /opt/*
[root@server ~]# ls /opt/
[root@server ~]#

作业

  1. 有一个文件aa.txt,想把其所属组改成bob,请问下面哪个命令可以?
    a. chgrp bob aa.txt
    b. chmod bob aa.txt
    c. chown .bob aa.txt
    d. chown :bob aa.txt

2.下面命令中,哪个命令可以设置所有者和所属组的权限为可读可写,其他人没任何权限?
a. chown 007 filename
b. chmod 077 filename
c. chmod 660 filename
d. chmod 770 filename

3.有一个目录/dir所属组为bob,希望不管谁在/dir下新创建的目录或文件,期所属组均为bob,哪个命令能实现?
a. chmod u+s /dir
b. chmod g-s /dir
c. chmod g+s /dir
d. chmod 1770 /dir

4.现在希望,创建的新的文件默认权限为,
所有者具有所有权限
所属组只具有读权限
其他人没任何权限
请问,umask的值该设置为多少?
a. 740
b. 750
c. 027
d. 047

  1. 下面哪个命令能列出文件myfile的隐藏权限?
    a. ls --attr myfile
    b. getattr myfile
    c. lsattr myfile
    d. listattr myfile

6.存在一个文件/opt/hosts,root用户要删除此文件却得到如下图所示的结果。
file
请你分析原因, 并提出解决方案。

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

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

相关文章

SuperMap iServer发布的ArcGIS REST 地图服务如何通过ArcGIS API加载

作者:yx 文章目录 一、发布服务二、代码加载三、结果展示 一、发布服务 SuperMap iServer支持将地图发布为ArcGIS REST地图服务,您可以在发布服务时直接勾选ArcGIS REST地图服务,如下图所示: 也可以在已发布的地图服务中&#x…

【量化金融】证券投资学

韭菜的自我修养 第一章: 基本框架和概念1.1 大盘底部形成的技术条件1.2 牛市与熊市1.3 交易系统1.3.1 树懒型交易系统1.3.2 止损止损的4个技术 第二章:证券家族4兄弟2.1 债券(1)债券,是伟大的创新(2&#x…

赛宁综合安全验证评估,筑牢关基网络安全屏障

在国际复杂态势和数字经济发展的驱动下,关键信息基础设施(以下简称:关基)的安全运营逐步走向实战化、体系化和常态化。验证评估作为安全运营的试金石,已成为实现动态防御、主动防御的有力手段。如何通过体系化验证评估…

Flutter 三: Dart

1 数据类型 数字(number) int double 字符串转换成 num int.parse(“1”) double.parse(“1”);double 四舍五入保留两位小数 toStringAsFixed(2) 返回值为stringdouble 直接舍弃小数点后几位的数据 可使用字符串截取的方式 字符串(string) 单引号 双引号 三引号三引号 可以输…

云计算与大数据之间的羁绊(期末不挂科版):云计算 | 大数据 | Hadoop | HDFS | MapReduce | Hive | Spark

文章目录 前言:一、云计算1.1 云计算的基本思想1.2 云计算概述——什么是云计算?1.3 云计算的基本特征1.4 云计算的部署模式1.5 云服务1.6 云计算的关键技术——虚拟化技术1.6.1 虚拟化的好处1.6.2 虚拟化技术的应用——12306使用阿里云避免了高峰期的崩…

Unity 人物方向旋转详细讲解

Unity 人物方向旋转详细讲解 人物的旋转有很多种一、在介绍之前我们需要理解Unity的向量也就是Vector3二、下面我们创建两个小球f1,f2左边的为f2 右边的为f1 三、我们将小球坐标用白色直线画出来,两个小球之间用黑色线画出来,两个小球的向量用黄线表示接…

关于JVM的垃圾回收GC的一些记录

目录 一、JVM内存区域划分 二、从一个基本问题开始引入垃圾回收 三、GC作用的区域 三、如何确定一个对象是否可以被当成垃圾进行回收 (1)引用计数法 (2)可达性分析算法 (3)引用的类型 (3…

(Matlab)基于CNN-LSTM的多维时序回归预测(卷积神经网络-长短期记忆网络)

目录 一、程序及算法内容介绍: 基本内容: 亮点与优势: 二、代码实际运行结果展示: 三、部分代码展示: 四、本文完整代码数据下载: 一、程序及算法内容介绍: 基本内容: 本代码…

【Kubernetes】控制器Statefulset

Statefulset控制器 一、概念二、Statefulset资源清单文件编写技巧2.1、查看定义Statefulset资源需要的字段2.2、查看statefulset.spec字段如何定义2.3、查看statefulset的spec.template字段如何定义 三、Statefulset使用案例:部署web站点3.1、编写一个Statefulset资…

【四】记一次关于架构设计从0到1的讨论

记一次关于架构设计从0到1的讨论 简介: 在一次面试中和面试官讨论起来架构设计这个话题,一聊就不知不觉一个小时了,感觉意犹未尽。现在回想起来感觉挺有意思的,古人说独学而无友则孤陋而寡闻,的确是这样的&#xff0c…

【并发编程篇】读锁readLock()和写锁writeLock()

文章目录 🛸情景引入⭐解决问题 readLock()和writeLock()都是ReadWriteLock接口中定义的方法,用于获取读锁和写锁。 readLock()方法返回一个读锁,允许多个线程同时获取该锁,以进行并发读取操作。如果当前已有一个写锁或其他线程正…

HDFS NFS Gateway(环境配置,超级详细!!)

🐮博主syst1m 带你 acquire knowledge! ✨博客首页——syst1m的博客💘 😘《CTF专栏》超级详细的解析,宝宝级教学让你从蹒跚学步到健步如飞🙈 😎《大数据专栏》大数据从0到秃头👽&…

云原生之深入解析基于FunctionGraph在Serverless领域的FinOps的探索和实践

一、背景 Serverless 精确到毫秒级的按用付费模式使得用户不再需要为资源的空闲时间付费。然而,对于给定的某个应用函数,由于影响其计费成本的因素并不唯一,使得用户对函数运行期间的总计费进行精确的事先估计变成了一项困难的工作。以传统云…

免费福利马上截止!深圳的户外小伙伴别错过!COSP2024体育展来了

COSP2024户外博览会 展会时间:2024年3月14-16日 展会地址:深圳福田会展中心 户外运动爱好者不可错过! COSP2024户外博览会不仅可以逛展 看各种露营装备、户外器材 还有各种沙龙、峰会活动 就在明年开年,阳春三月天&#xf…

解决 MATLAB 遗传算法中 exitflg=4 的问题

一、优化问题简介 以求解下述优化问题为例: P 1 : min ⁡ p ∑ k 1 K p k s . t . { ∑ k 1 K R k r e q l o g ( 1 α k ∗ p k ) ≤ B b s , ∀ k ∈ K p k ≥ 0 , ∀ k ∈ K \begin{align} {P_1:}&\mathop{\min}_{\bm{p}}{ \sum\limits_{k1}^K p_k } \no…

微信小程序开发学习(上强度):从0开始写项目

前置知识 1、配置插件 微信小程序 基础模板引入sass的两种方法_微信小程序使用sass-CSDN博客 之后在对应页面里新建一个scss文件,写css 2、注册小程序,有个自己的appid,不用测试号了 5.1.注册小程序账号获取appid及个人和企业版差异_哔哩…

MATLAB学习笔记(一)求解三阶微分方程

一、求解三阶微分方程 对于多变量三阶微分方程求解问题,这里介绍一种求解方法。 例题如下: 对于以上方程,给定边界条件,,,,,。求解和的表达式。 二、解题步骤 (1&…

【扩散模型】7、GLIDE | 文本指引的图像生成和编辑

论文:GLIDE: Towards Photorealistic Image Generation and Editing with Text-Guided Diffusion Models 代码:https://link.zhihu.com/?targethttps%3A//github.com/openai/glide-text2im 出处:OpenAI 一、背景 在扩散模型经过了一系列…

【论文解读】CNN-Based Fast HEVC Quantization Parameter Mode Decision

时间:2019 年 级别:SCI 机构:南京信息工程大学 摘要 随着多媒体呈现技术、图像采集技术和互联网行业的发展,远程通信的方式已经从以前的书信、音频转变为现在的音频/视频。和 视频在工作、学习和娱乐中的比例不断提高&#xff0…

微服务-springcloud(eureka实践, nacos实践)

Spring 体系图 版本关系 eureka 实践 1 父工程依赖 <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.6.14</version> </parent> <dependencyManage…