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 能够删除自己的目录或文件。这个
特性也是挺重要的啊!你可以这样做个简单的测试:

  1. 以 root 登陆系统,并且进入 /tmp 当中;
  2. touch test,并且更改 test 权限成为 777 ;
  3. 以一般使用者登陆,并进入 /tmp;
  4. 尝试删除 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 的功能啦!借由上述的功能说明,我们可以知道:

  1. kiosk对于 /usr/bin/passwd 这个程序来说是具有 x 权限的,表示 kiosk 能执行
    passwd;
  2. passwd 的拥有者是 root 这个帐号;
  3. kiosk 执行 passwd 的过程中,会“暂时”获得 root 的权限;
  4. /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                             &lt;==增加新的群组
[root@study    ~]# useradd -G  project alex    &lt;==创建alex帐号,且支持    project
[root@study    ~]# useradd -G  project arod    &lt;==创建arod帐号,且支持    project
[root@study    ~]# id  alex                                                                    &lt;==查阅  alex    帐号的属性
uid=1001(alex) gid=1002(alex) groups=1002(alex),1001(project)    &lt;==确实有支持!
[root@study    ~]# id  arod
uid=1002(arod) gid=1003(arod) groups=1003(arod),1001(project)    &lt;==确实有支持!
然后开始来解决我们所需要的环境吧!
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        &lt;==创建一个空的文件出来!
[alex@www  ahome]$ exit                    &lt;==离开  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权限列表相关推荐

  1. 【linux命令】Linux 中文件和文件夹的权限 、ll命令、SGID、默认权限、umask

    文章目录 一.ll命令 二.linux权限概述 2.1 权限 详解 2.2 权限对于目录的意义 2.3 权限对于文件的意义 2.4 验证下文件的删除权限 2.5 SGID 3 默认权限和umask 3 ...

  2. linux下文件、文件夹权限的作用及设置方法(常规权限与SUID、SGID、SBIT、ACL、sudo、umask)

    linux下文件权限设置及其作用 文件权限与归属(读.写.执行权限) linux系统中一切皆文件,要说权限,有必要先了解一下文件的分类 Linux中的文件分类 在linux系统中一切都是文件,但是文件 ...

  3. SUID SGID LINUX 权限安全设置

    于用户在UNIX下经常会遇到SUID.SGID的概念,而且SUID和SGID涉及到系统安全,所以用户也比较关心这个问题.关于SUID. SGID的问题也经常有人提问,但回答的人一般答得不够详细,加上曾 ...

  4. 23.文件特殊权限之SUID权限、SGID权限、Sticky BIT权限和ACL权限

    目录 1.SUID权限 2.SGID权限 3.Sticky BIT权限 4.ACL权限 在多用户多任务的Linux系统里,每个进程的运行都与运行的用户和组相关联.除了进程识别号(PID)以外,每个进程 ...

  5. linux acl 权限 给任何用户或用户组设置任何文件/目录的访问权限

    ACL 是什么 ACL的全称是 Access Control List (访问控制列表) ,一个针对文件/目录的访问控制列表.它在UGO权限管理的基础上为文件系统提供一个额外的.更灵活的权限管理机制. ...

  6. Linux ACL 权限

    转载链接 :Linux ACL 权限 :https://mp.weixin.qq.com/s/ktV0osPsVZRx57WRd7nmnA ACL 是什么 ACL的全称是 Access Control ...

  7. zookeeper的acl权限控制_zookeeper权限acl与四字命令

    权限acl介绍,acl的构成与id acl是Access control lists 的缩写,也就是权限控制列表: 针对节点可以设置相关读写等权限,目的是为了保障数据安全性 权限permissions ...

  8. Zookeeper后端开发工具Curator的使用 | Curator对节点的增删改查 | ACL权限控制 | 分布式锁 | 分布式计数器 | 附带最新版本下载

    前言 Curator是Apache开源的一个Java工具类,通过它操作Zookeeper会变得极度舒适! 前置条件:已掌握的基本操作,比如在后台可以增减节点.ACL权限设置等. 1.Zookeeper ...

  9. linux suid权限,Linux 学习:文件特殊权限SUID, SGID, SBIT

    本次记录Linux特殊权限SUID.SGID.SBIT相关知识及使用实例等. 由于SUID和SGID涉及到系统安全,所以对它们知识点的掌握尤为重要.关于文件权限的表示方法和解析 SUID是Set Us ...

最新文章

  1. 自定义PopupWindow弹出后背景灰色状态
  2. Android之Fragment 真正的完全解析(上)
  3. 1350B. Orac and Models
  4. LeetCode MySQL 1549. The Most Recent Orders for Each Product
  5. vscode安装swift插件_使用 Webpack 优化 VS Code 插件加载性能
  6. AIX 6.1 连接DS4700,多路径mpio,mpio_get_config -Av 需要打补丁。
  7. zookeeper 环境搭建之(Windows上的简单部署)
  8. 虚拟机nas服务器,VMware虚拟机搭建安装黑群晖NAS服务器
  9. Spark中组件Mllib的学习27之逻辑回归-多元逻辑回归,较大数据集,带预测准确度计算
  10. 如何每天学习10小时,依然精力充沛?(超实用教程)
  11. 计算机软考设计师中级真题
  12. [Android]Toolbar
  13. 开发必装最实用工具软件与网站
  14. 用自己的雷达进行Cartographer建图或仿真
  15. python图片切面_python 利用opencv进行图片切割
  16. 指导教师邱栋在2012年CSDN高校研讨会上的演讲
  17. HashMap 在 JDK1.7 和 JDK1.8 中有哪些区别?
  18. mysql删除大表更快的drop table办法(转老金)
  19. charts框架 横向 纵向柱状图
  20. centos7 配置oracle自启动,oracle 18c centos7 设置开机自动启动Oracle

热门文章

  1. 单刹车信号不合理故障_驾照考试不合理
  2. AutoFeat:ufunc ‘_lambdifygenerated‘ did not contain a loop with signature matching types
  3. 为什么navicat12 连接远程数据库的时候,测试连接成功,但是打开失败?
  4. 腾讯会议ppt备注怎样设置才能自己看到别人看不到
  5. dac梯形波c语言编程,单片机项目第11章单片机与AD接口.ppt-资源下载在线文库www.lddoc.cn...
  6. 蓝牙权限管理android,基于蓝牙与Android设备的控制系统设计
  7. 微信小程序[object,object]这样的数据如何打印出来 方便调试~
  8. 魔云微型服务器加硬盘,ORICO魔云
  9. 全新中国交通标志检测数据集2021—CCTSDB 2021: A More Comprehensive Traffic SignDetection Benchmark(全新分类-多算法测评)
  10. 腊是壹家剧本杀——5人本(后期会更新)