Linux特殊权限之umask,SBIT,SUID,SGID及ACL权限列表
1.用户权限:
基本上, umask 就是指定 “目前使用者在创建文件或目录时候的权限默认值
umask 的分数指的是“该默认值需要减掉的权限!
一般文件的创建则不应该有执行的权限,因为一般文件通常是用在于数据的记录 嘛!当然不需要执行的权限了。 因此,默认的情况如下:
若使用者创建为“文件”则默认“没有可执行( x )权限”,亦即只有 rw 这两个项目,也就
是最大为 666 分,默认权限如下: -rw-rw-rw-
若使用者创建为“目录”,则由于 x 与是否可以进入此目录有关,因此默认为所有权限均开
放,亦即为 777 分,默认权限如下: drwxrwxrwx
umask 系统建立文件是默认保留的权力
[root@study ~]# umask
0022 <==与一般权限有关的是后面三个数字!第一组是特殊权限用的
[root@study ~]# umask -S
u=rwx,g=rx,o=rx
umask 077 ##临时设定系统予留权限为077
如下例:文件权限为666,减去umask=077,剩余权限为600
不过在这个过程中需要注意:
例题:假设你的 umask 为 003 ,请问该 umask 情况下,创建的文件与目录权限为?答:
umask为003 ,所以拿掉的权限为 --------wx,因此: 文件: (-rw-rw-rw-) - (--------wx)
= -rw-rw-r-- 目录: (drwxrwxrwx) - (d-------wx) = drwxrwxr--
但是,有的喜欢使用文件默认属性 666 与目录默认属性 777来与 umask 进行相减的计算~这是不好的喔!以上面例题来看, 如果使用默认属性相加减,
则文件变成:666-003=663,亦即是 -rw-rw--wx ,这可是完全不对的喔! 想想看,原本文件
就已经去除 x 的默认属性了
在默认的情况中, root 的 umask 会拿掉比较多的属性,root 的 umask 默认是 022 , 这是基
于安全的考虑啦~至于一般身份使用者,通常他们的 umask 为 002 ,亦即保留同群组的写入
权力! 其实,关于默认 umask 的设置可以参考 /etc/bashrc 这个文件的内容
永久更改umask
(1)vim /etc/profile ##系统配置文件
59 if [$UID -gt 199] &&["id -gn "'id -un'“];then
60 umask 002 ##普通用户的umask
61 else
62 umask 077 ##超级用户的umask
63 fi
(2)vim /etc/bashrc ##shell配置文件
70 if [$UID -gt 199]&&["id -gn "'id -un'“] ;then
71 umask 002 ##普通用户的umak
72 else
73 umsk 077
74 fi
source /etc/profile ##更改立即生效
source /etc/bshrc
超级用户:
默认建立文件权限644;
目录权限755
umask 可以查看umask值
777-umask 就是目录的权限,再减去111就是文件的权限
exit之后再次进入shell,umask会恢复原值,因为不是同一个进程,对另一个进程是不起作用的
要是想永久修改,改vim /etc/profile 环境的 /umask找关键字 里面的gt表示大于 修改第二个是超级用户的
vim /etc/bashrc 是修改shell的 /umusk找关键字
改完之后,在当前用户不生效,再新打开的shell才会修改umask,如果想在当前用户也修改,则需要source /etc/profile
source /etc/bashrc 再用umask查看就修改成新的值了
2.特殊权限
(1)sticky #粘制位
作用:只针对目录生效,当上一个目录有sticky权限时
在这个目录中的文件只能被文件的所有者删除
SBIT 对于目录的作用是: 当使用者对于此目录具有 w, x 权限,亦即具有写入的权限时;
当使用者在该目录下创建文件或目录时,仅有自己与 root 才有权力删除该文件
换句话说:当甲这个使用者于 A 目录是具有群组或其他人的身份,并且拥有该目录 w 的权
限, 这表示“甲使用者对该目录内任何人创建的目录或文件均可进行 “删除/更名/搬移” 等动
作。” 不过,如果将 A 目录加上了 SBIT 的权限项目时, 则甲只能够针对自己创建的文件或目
录进行删除/更名/移动等动作,而无法删除他人的文件。
举例来说,我们的 /tmp 本身的权限是“drwxrwxrwt”, 在这样的权限内容下,任何人都可以在
/tmp 内新增、修改文件,但仅有该文件/目录创建者与 root 能够删除自己的目录或文件。这个
特性也是挺重要的啊!你可以这样做个简单的测试:
- 以 root 登陆系统,并且进入 /tmp 当中;
- touch test,并且更改 test 权限成为 777 ;
- 以一般使用者登陆,并进入 /tmp;
- 尝试删除 test 这个文件!
设定方式:
chmod o+t dir 只能用户本身拥有者删除
chmod 1xxx dir
具体步骤:
mkdir /public 注意是建目录!!!
chomd 777 /public/ 把权限改成777
watch -n 1 'ls -ld /public/;ls -l /public/'进入查看模式。。watch ls -ld /public/;ls -l /public是本身的和目录以下的。
新打开一个shell,useradd westos useradd lee 然后su - westos切换到westos用户下,
touch /public/westosfile ,再新打开一个shell,切换成lee环境,touch /public/leefile,然后发现再lee环境下可以删除rm-fr leefile和rm-fr westosfile
此时可以发现lee用户也可以删除westos用户创建的文件
这种情况是不允许的,因此再超级用户下,chmod o+t /public/这下o的权限x就变成了t,表示只可以用户本身拥有者删除,
再重新再westos和lee 环境下分别重新建立westosfile和leefile ,这下在lee 环境下就只能删除leefile,不可以删除westosfile了,提示命令不被允许.
(2)suid 冒险位
查看权限是怪怪的
[root@study ~]# ls -ld /tmp ; ls -l /usr/bin/passwd
drwxrwxrwt. 14 root root 4096 Jun 16 01:27 /tmp
-rwsr-xr-x. 1 root root 27832 Jun 10 2014 /usr/bin/passwd
Set UID
当 s 这个标志出现在文件拥有者的 x 权限上时,例如刚刚提到的 /usr/bin/passwd 这个文件的
权限状态:“-rwsr-xr-x”,此时就被称为 Set UID,简称为 SUID 的特殊权限。 那么SUID的权
限对于一个文件的特殊功能是什么呢?基本上SUID有这样的限制与功能:
- SUID 权限仅对二进制程序(binary program)有效; 只针对与二进制可执行文件
- 执行者对于该程序需要具有 x 的可执行权限;
- 本权限仅在执行该程序的过程中有效 (run-time);
- 执行者将具有该程序拥有者 (owner) 的权限。
举个例子。 我们的 Linux 系统中,所有帐号的密码都记录在 /etc/shadow 这个文件里面,这个文件的权限为:“---------- 1 root root”,意思是这个文件仅有root可读且仅有root可以强制写入而已。
一般使用者当然可以使用passwd修改自己的密码了!
明明 /etc/shadow 就不能让一般帐户去存取的,为什么kiosk还能够修改这个文件内的密码呢? 这就是 SUID 的功能啦!借由上述的功能说明,我们可以知道:
- kiosk对于 /usr/bin/passwd 这个程序来说是具有 x 权限的,表示 kiosk 能执行
passwd; - passwd 的拥有者是 root 这个帐号;
- kiosk 执行 passwd 的过程中,会“暂时”获得 root 的权限;
- /etc/shadow 就可以被 kiosk 所执行的 passwd 所修改。
但如果 kiosk使用 cat 去读取 /etc/shadow 时,他能够读取吗?因为 cat 不具有 SUID 的权
限,所以 dmtsai 执行 “cat /etc/shadow” 时,是不能读取 /etc/shadow 的。/etc/shadow权限是--------
SUID 仅可用在binary program 上, 不能够用在 shell script 上面这是因为 shell
script 只是将很多的 binary 可执行文件叫进来执行而已!所以 SUID 的权限部分,还是得要看
shell script 调用进来的程序的设置, 而不是 shell script 本身。当然,SUID 对于目录也是无
效的~这点要特别留意。
只要运行这个进程,就是固定的某个人或某个组
当文件上有suid时,任何人执行这个文件所产生的进程都属于文件的所有人
chmod u+s /bin/cat
ps是进程扫描
程序运行后就是进程
ax表示给所有的都加x
步骤:
ps ax -o user,group,comm |grep cat 扫描所有的进程只包含用户者,用户组,名称,过滤只剩下包含cat的
watch -n 1 ‘ps ax -o user,group,comm |grep cat’
新打开一个shell,cat 出现root root cat
然后 ctrl+c
在root下ls -l /bin/cat出现的是都是root
再新开一个shell,su 切换环境到westos下,/bin/cat 出现westos westos cat表示执行cat的主人变成了westos
在root下chmod u+s /bin/cat表示只要执行cat 他的主人就会变成root ls -l /bin/cat x就变成了s
在westos下ctrl+c,然后cat 发现执行cat的拥有者变成了root
当然在westos下也可以/bin/cat /etc/shadow
,
也可以vim /etc/shadow 但是里面没有内容
必须注意:SUID用在(二进制)文件上,而 SBIT用在目录上的喔!
(3)sgid ##强制位
当 s 标志在文件拥有者的 x 项目为 SUID,那 s 在群组的 x 时则称为 Set GID, SGID
[root@study ~]# ls -l /usr/bin/locate
-rwx--s--x. 1 root slocate 40496 Jun 10 2014 /usr/bin/locate
与 SUID不同的是,SGID 可以针对文件或目录来设置!如果是对文件来说,SGID有如下的功能:
- SGID 对二进制程序有用;
- 程序执行者对于该程序来说,需具备 x 的权限;
- 执行者在执行的过程中将会获得该程序群组的支持!
举例来说,上面的 /usr/bin/locate 这个程序可以去搜寻 /var/lib/mlocate/mlocate.db 这个文件
的内容 , mlocate.db 的权限如下:
[root@study ~]# ll /usr/bin/locate /var/lib/mlocate/mlocate.db
-rwx--s--x. 1 root slocate 40496 Jun 10 2014 /usr/bin/locate
-rw-r-----. 1 root slocate 2349055 Jun 15 03:44 /var/lib/mlocate/mlocate.db
与 SUID 非常的类似,若我使用kiosk这个帐号去执行 locate 时,那kiosk将会取得
slocate 群组的支持, 因此就能够去读取 mlocate.db 啦!
除了 binary program 之外,事实上 SGID 也能够用在目录上,这也是非常常见的一种用途!
当一个目录设置了 SGID 的权限后,他将具有如下的功能:
- 使用者若对于此目录具有 r 与 x 的权限时,该使用者能够进入此目录;
- 使用者在此目录下的有效群组(effective group)将会变成该目录的群组;
- 用途:若使用者在此目录下具有 w 的权限(可以新建文件),则使用者所创建的新文
件,该新文件的群组与此目录的群组相同 - SGID 对于专案开发来说是非常重要的!因为这涉及群组权限的问题.
简单的说就是:
(1)对文件:只针对与二进制可执行文件,当文件上有sgin时,任何人执行这个文件中记的程序产生的进程都属于文件的组
(2)对目录:当目录上有sign权限时,任何人在此目录中记建立的文件都属于属于此目录的所有组
设定方式:chmod g+s file|dir
chmod 2xxxx file|dir
这个时候如果在/westos/用户下建立一个文件
touch file2
ls -l file2 所属用户root 所属组为student
[root@study tmp]# chmod 7666 test; ls -l test <==具有空的 SUID/SGID 权限
-rwSrwSrwT 1 root root 0 Jun 16 02:53 test
怎么会出现大写的 S 与 T 呢?不都是小写的吗? 因为 s 与 t都是取代 x 这个权限的,但是你有没有发现阿,我们是下达 7666 喔!也就是说, user,group 以及 others 都没有 x 这个可执行的标志( 因为 666 嘛 ),所以,这个 S, T 代表的就是“空的”啦!怎么说? SUID 是表示“该文件在执行的时候,具有文件拥有者的权限”,但是文 件拥有者都无法执行了,哪里来的权限给其他人使用?当然就是空的啦! _
其中 SUID 为 u+s ,而 SGID 为 g+s ,SBIT 则是 o+t
4 为 SUID :当文件上有suid时,任何人执行这个文件所产生的进程都属于文件的所有人,也就是执行该二进制文件的时候暂时拥有root的权限,例如passwd
2 为 SGID:
(1)对文件:
只针对与二进制可执行文件,
当文件上有sgin时,任何人执行这个文件中记的程序产生的进程都属于文件的组,也就是执行该二进制文件的时候暂时拥有用户组的身份 例如:locate
(2)对目录:
当目录上有sign权限时,任何人在此目录中记建立的文件都属于属于此目录的所有组
1 为 SBIT :当使用者在该目录下创建文件或目录时,仅有自己与 root 才有权力删除该文件
情境仿真题一:
假设系统中有两个帐号,分别是alex与arod,这两个人除了自己群组之外
还共同支持一个名为 project 的群组。假设这两个用户需要共同拥有/srv/ahome/目录的开发
权,且该目录不许其他人进入查阅。 请问该目录的权限设置应为何?请先以传统权限说明,
再以 SGID 的功能解析。
目标:了解到为何专案开发时,目录最好需要设置SGID的权限!
前提:多个帐号支持同一群组,且共同拥有目录的使用权!
需求:需要使用 root 的身份来进行 chmod, chgrp 等帮用户设置好他们的开发环境才行!
这也是管理员的重要任务之一![root@study ~]# groupadd project <==增加新的群组
[root@study ~]# useradd -G project alex <==创建alex帐号,且支持 project
[root@study ~]# useradd -G project arod <==创建arod帐号,且支持 project
[root@study ~]# id alex <==查阅 alex 帐号的属性
uid=1001(alex) gid=1002(alex) groups=1002(alex),1001(project) <==确实有支持!
[root@study ~]# id arod
uid=1002(arod) gid=1003(arod) groups=1003(arod),1001(project) <==确实有支持!
然后开始来解决我们所需要的环境吧!
1. 首先创建所需要开发的专案目录:
[root@study ~]# mkdir /srv/ahome
[root@study ~]# ll -d /srv/ahome
drwxr-xr-x. 2 root root 6 Jun 17 00:22 /srv/ahome
2. 从上面的输出结果可发现 alex与arod都不能在该目录内创建文件,因此需要进行权限
与属性的修改。 由于其他人均不可进入此目录,因此该目录的群组应为project,权限应
为770才合理。
[root@study ~]# chgrp project /srv/ahome
[root@study ~]# chmod 770 /srv/ahome
[root@study ~]# ll -d /srv/ahome
drwxrwx---. 2 root project 6 Jun 17 00:22 /srv/ahome
# 从上面的权限结果来看,由于alex/arod均支持project,因此似乎没问题了!
3. 实际分别以两个使用者来测试看看,情况会是如何?先用alex创建文件,然后用arod去处理看看。
[root@study ~]# su - alex #先切换身份成为 alex 来处理
[alex@www ~]$ cd /srv/ahome #切换到群组的工作目录去
[alex@www ahome]$ touch abcd <==创建一个空的文件出来!
[alex@www ahome]$ exit <==离开 alex 的身份
[root@study ~]# su - arod
[arod@www ~]$ cd /srv/ahome
[arod@www ahome]$ ll abcd
-rw-rw-r--. 1 alex alex 0 Jun 17 00:23 abcd
# 仔细看一下上面的文件,由于群组是alex,arod并不支持!
# 因此对于 abcd 这个文件来说, arod应该只是其他人,只有r的权限而已啊!
[arod@www ahome]$ exit
由上面的结果我们可以知道,若单纯使用传统的 rwx 而已,则对刚刚 alex 创建的 abcd
这个文件来说, arod 可以删除他(因为它属于project组,对这个目录是770的权限),但是却不能编辑他(因为文件其他人只有读的权限)!
4. 加入 SGID 的权限在里面,并进行测试看看:
[root@study ~]# chmod 2770 /srv/ahome
[root@study ~]# ll -d /srv/ahome
drwxrws---. 2 root project 17 Jun 17 00:23 /srv/ahome
测试:使用 alex 去创建一个文件,并且查阅文件权限看看:
[root@study ~]# su - alex
[alex@www ~]$ cd /srv/ahome
[alex@www ahome]$ touch 1234
[alex@www ahome]$ ll 1234
-rw-rw-r--. 1 alex project 0 Jun 17 00:25 1234
# 没错!这才是我们要的样子!现在 alex, arod 创建的新文件所属群组都是 project,
# 由于两人均属于此群组,加上 umask 都是 002,这样两人才可以互相修改对方的文件!
所以最终的结果显示,此目录的权限最好是“2770”,所属文件拥有者属于root即可,至于
群组必须要为两人共同支持的project 这个群组才行!
acl权限列表(文件的访问控制)
单纯的针对某一个使用者或某一个群组来设置特定的权限需求
getfacl:取得某个文件/目录的 ACL 设置项目;
setfacl:设置某个目录/文件的 ACL 规范。
1.作用
让特定的用户对特定的为文件拥有特定权限
-m 表示修改,同时发现ls -ld /pub的效果它的权限+2
-x表示删除
-b表示删除所有,并且+没了
touch /westos
watch -n 1 'ls -ld /westos;getfacl /westos
setfacl -m student:rwx /westos 设定student
2:facl列表查看
-rw-rwxr–+ 1 root root 0 Jul 24 16:32 file
^
facl开启后
getfacl file ##查看facl开启后的文件的权限
#file: file ##文件名称
#owner: root ##文件拥有者
#group: root ##文件拥有组
user ::rw- ##文件拥有人的权限
user:kiosk:rwx## 指定用户的权限
group::r-- ##文件拥有组的权限
mask::rwx ##能赋予用户的最大的权限
other::r-- ##其他人的权限
显示的数据前面加上 # 的,代表这个文件的默认属性,包括文
件名、文件拥有者与文件所属群组
3:facl列表的管理
getfacl file
setfacl -m u:username:rwx file ##设定username对file拥有rwx权限
setfacl -m g:group:rwx file ##设定group组成员对file拥有rwx权限
setfacl -x u:username file ##从acl列表中删除username
setfacl -b file ##关闭file上的acl列表 所有的都没有了
4:mask值
在权限列表中,mask标示能生效的权力值,当用chmod减少开启后acl的文件权限时,mask值会发生变化
chmod g-w westos
如果要恢复mask的值, 则setfacl -m m:rw westos
他的意义是: 使用者或群组所设置的权限必须要存在于 mask 的权限设置范围内才会生
效,此即“有效权限
针对有效权限 mask 的设置方式:
设置规范:“ m:[rwx] ”,例如针对刚刚的文件规范为仅有 r :
[root@study ~]# setfacl -m m:r acl_test1
[root@study ~]# getfacl acl_test1
# file: acl_test1
# owner: root
# group: root
user::rwx
user:vbird1:r-x #effective:r-- #vbird1+mask均存在者,仅有r而已,x不会生效
group::r--
group:mygroup1:r-x #effective:r--
mask::r--
other::r--
5:acl的默认权限设定
acl默认权限只针对目录设定
!!!注意:acl权限只针对设定完成之后的新建立的文件或目录生效,而已经存在的文件是不会继承默认权限
使用默认权限设置目录未来文件的 ACL 权限继承“ d:[u|g]:[user|group]:权限 ”
针对默认权限的设置方式:
# 设置规范:“ d:[ug]:使用者列表:[rwx] ”
# 让 myuser1 在 /srv/projecta 下面一直具有 rx 的默认权限!
[root@study ~]# setfacl -m d:u:myuser1:rx /srv/projecta
[root@study ~]# getfacl /srv/projecta
# file: srv/projecta
# owner: root
# group: projecta
# flags: -s-
user::rwx
user:myuser1:r-x
group::rwx
mask::rwx
other::---
default:user::rwx
default:user:myuser1:r-x
default:group::rwx
default:mask::rwx
default:other::---
[root@study ~]# cd /srv/projecta
[root@study projecta]# touch zzz1
[root@study projecta]# mkdir zzz2
[root@study projecta]# ll -d zzz*
-rw-rw----+ 1 root projecta 0 Jul 21 17:50 zzz1
drwxrws---+ 2 root projecta 6 Jul 21 17:51 zzz2
# 看吧!确实有继承喔!然后我们使用 getfacl 再次确认看看!
[root@study projecta]# getfacl zzz2
# file: zzz2
# owner: root
# group: projecta
# flags: -s-
user::rwx
user:myuser1:r-x
group::rwx
mask::rwx
other::---
default:user::rwx
default:user:myuser1:r-x
default:group::rwx
default:mask::rwx
default:other::---
setfacl -m d:u:student:rwx /mnt/westossetfacl -k /mnt/westos
setfacl
-m 设置后续acl参数
-x 删除后续acl参数
-b 删除全部的acl参数,如果想要让 ACL 的属性全部消失,通过“ setfacl -b 文件名 ”即可
-R 第归设置acl参数,包括子目录
-k 删除默认acl参数
取消全部的 ACL 设置可以使用 -b 来处理,但单一设置值的取消,就得要通
过 -x 才行了
针对每个设置值来处理,注意,取消某个帐号的 ACL 时,不需要加上权限项目!
取消 myuser1 的设置(连同默认值)
[root@study ~]# setfacl -x u:myuser1 /srv/projecta
[root@study ~]# setfacl -x d:u:myuser1 /srv/projecta
开始让 pro3 这个用户无法使用该目录啰!
[root@study ~]# setfacl -m u:pro3:- /srv/projecta
只需要留意,当设置一个用户/群组没有任何权限的 ACL 语法中,在权限的字段不可留白,而
是应该加上一个减号 (-) 才是正确的作法!
Linux特殊权限之umask,SBIT,SUID,SGID及ACL权限列表相关推荐
- 【linux命令】Linux 中文件和文件夹的权限 、ll命令、SGID、默认权限、umask
文章目录 一.ll命令 二.linux权限概述 2.1 权限 详解 2.2 权限对于目录的意义 2.3 权限对于文件的意义 2.4 验证下文件的删除权限 2.5 SGID 3 默认权限和umask 3 ...
- linux下文件、文件夹权限的作用及设置方法(常规权限与SUID、SGID、SBIT、ACL、sudo、umask)
linux下文件权限设置及其作用 文件权限与归属(读.写.执行权限) linux系统中一切皆文件,要说权限,有必要先了解一下文件的分类 Linux中的文件分类 在linux系统中一切都是文件,但是文件 ...
- SUID SGID LINUX 权限安全设置
于用户在UNIX下经常会遇到SUID.SGID的概念,而且SUID和SGID涉及到系统安全,所以用户也比较关心这个问题.关于SUID. SGID的问题也经常有人提问,但回答的人一般答得不够详细,加上曾 ...
- 23.文件特殊权限之SUID权限、SGID权限、Sticky BIT权限和ACL权限
目录 1.SUID权限 2.SGID权限 3.Sticky BIT权限 4.ACL权限 在多用户多任务的Linux系统里,每个进程的运行都与运行的用户和组相关联.除了进程识别号(PID)以外,每个进程 ...
- linux acl 权限 给任何用户或用户组设置任何文件/目录的访问权限
ACL 是什么 ACL的全称是 Access Control List (访问控制列表) ,一个针对文件/目录的访问控制列表.它在UGO权限管理的基础上为文件系统提供一个额外的.更灵活的权限管理机制. ...
- Linux ACL 权限
转载链接 :Linux ACL 权限 :https://mp.weixin.qq.com/s/ktV0osPsVZRx57WRd7nmnA ACL 是什么 ACL的全称是 Access Control ...
- zookeeper的acl权限控制_zookeeper权限acl与四字命令
权限acl介绍,acl的构成与id acl是Access control lists 的缩写,也就是权限控制列表: 针对节点可以设置相关读写等权限,目的是为了保障数据安全性 权限permissions ...
- Zookeeper后端开发工具Curator的使用 | Curator对节点的增删改查 | ACL权限控制 | 分布式锁 | 分布式计数器 | 附带最新版本下载
前言 Curator是Apache开源的一个Java工具类,通过它操作Zookeeper会变得极度舒适! 前置条件:已掌握的基本操作,比如在后台可以增减节点.ACL权限设置等. 1.Zookeeper ...
- linux suid权限,Linux 学习:文件特殊权限SUID, SGID, SBIT
本次记录Linux特殊权限SUID.SGID.SBIT相关知识及使用实例等. 由于SUID和SGID涉及到系统安全,所以对它们知识点的掌握尤为重要.关于文件权限的表示方法和解析 SUID是Set Us ...
最新文章
- 自定义PopupWindow弹出后背景灰色状态
- Android之Fragment 真正的完全解析(上)
- 1350B. Orac and Models
- LeetCode MySQL 1549. The Most Recent Orders for Each Product
- vscode安装swift插件_使用 Webpack 优化 VS Code 插件加载性能
- AIX 6.1 连接DS4700,多路径mpio,mpio_get_config -Av 需要打补丁。
- zookeeper 环境搭建之(Windows上的简单部署)
- 虚拟机nas服务器,VMware虚拟机搭建安装黑群晖NAS服务器
- Spark中组件Mllib的学习27之逻辑回归-多元逻辑回归,较大数据集,带预测准确度计算
- 如何每天学习10小时,依然精力充沛?(超实用教程)
- 计算机软考设计师中级真题
- [Android]Toolbar
- 开发必装最实用工具软件与网站
- 用自己的雷达进行Cartographer建图或仿真
- python图片切面_python 利用opencv进行图片切割
- 指导教师邱栋在2012年CSDN高校研讨会上的演讲
- HashMap 在 JDK1.7 和 JDK1.8 中有哪些区别?
- mysql删除大表更快的drop table办法(转老金)
- charts框架 横向 纵向柱状图
- centos7 配置oracle自启动,oracle 18c centos7 设置开机自动启动Oracle
热门文章
- 单刹车信号不合理故障_驾照考试不合理
- AutoFeat:ufunc ‘_lambdifygenerated‘ did not contain a loop with signature matching types
- 为什么navicat12 连接远程数据库的时候,测试连接成功,但是打开失败?
- 腾讯会议ppt备注怎样设置才能自己看到别人看不到
- dac梯形波c语言编程,单片机项目第11章单片机与AD接口.ppt-资源下载在线文库www.lddoc.cn...
- 蓝牙权限管理android,基于蓝牙与Android设备的控制系统设计
- 微信小程序[object,object]这样的数据如何打印出来 方便调试~
- 魔云微型服务器加硬盘,ORICO魔云
- 全新中国交通标志检测数据集2021—CCTSDB 2021: A More Comprehensive Traffic SignDetection Benchmark(全新分类-多算法测评)
- 腊是壹家剧本杀——5人本(后期会更新)