文件权限

默认权限分配 umask

umask是通过八进制的数值来定义用户创建文件或目录的默认权限的
安全权限的临界点是,文件默认权限是644,目录默认权限是755 [root@Poppy joker]# umask
0022
根据下面的判断来设置默认的权限分配
if [ $UID -gt 199 ] && [ "`/usr/bin/id -gn`" = "`/usr/bin/id -un`" ]; then
umask 002
else
umask 022
fi 所以你是root登录的话,umask是022,如果是uid大于199并且uid和gid不同umask就是002 控制umask方法,umask + 权限 文件的权限
666 全部权限
022 umask默认值
644 文件默认权限 目录权限
777
022
755

特殊权限位

setuid位
linux系统基本权限位为9位权限,但还有额外3位权限位,共12位权限
suid s(有x) S 4 用户对应的权限位,用户对应的3位上
sgid s(有x) S 2 用户组对应的权限位,用户组对应的3位上
sticky t(有x) T 1 其他用户对应的权限位 [root@Poppy ~]# ls -l `which passwd`
-rwsr-xr-x. 1 root root 27832 Jun 10 2014 /usr/bin/passwd
属主有个s位,也就是suid,就是说执行命令的任意用户可以获得该属主的权限 u+s u-s,suid针对命令和二进制程序的 setgid位
sgid仅对二进制命令有效
执行命令的任意用户可以获得该属组的权限 g+s g-s 黏贴位
其他用户带个t就是黏贴位,像/tmp目录一样 777
如果设置了黏贴位,除非目录的属主和root用户有权限删除它,除此之外其它用户不能删除这个目录

特殊权限对应的数字小结:

suid 4000权限字符s(S),用户位的x位上设置
chmod 4755 /bin/rm 或 chmod u+s joker sgid 2000权限字符s(S),用户组位的x位上设置
chmod 2755 joker.txt 或 chmod g+s joker 粘滞位 1000权限字符t(T),其他用户位的x位上设置
chmod 1777 /tmp 或 chmod o+t /tmp
如果对应位有x,字符权限表现位小写,否则表现为大写

用户管理

Linux是多任务,多用户的系统,每个文件和进程,都需要对应一个用户和用户,linux系统通过uid和gid来识别用户和组的

用户分类

超级用户:uid=0 例如:root
普通用户:uid=500-65535,是由root授权
  关联的四个文件:
  /etc/passwod /etc/shadow/ /etc/group /etc/gshadow
虚拟用户:uid=1-499

/etc/skel/*文件

存储家目录环境变量信息

[root@Poppy ~]# useradd joker
[root@Poppy ~]# cp -a /etc/skel/* /home/joker/ # 并没有执行
[root@Poppy ~]# ls /etc/skel/ -la
total 28
drwxr-xr-x. 2 root root 4096 Aug 18 2017 .
drwxr-xr-x. 88 root root 12288 Jun 22 15:14 ..
-rw-r--r-- 1 root root 18 Dec 7 2016 .bash_logout
-rw-r--r-- 1 root root 193 Dec 7 2016 .bash_profile
-rw-r--r-- 1 root root 231 Dec 7 2016 .bashrc [root@Poppy ~]# ls -la /home/joker/
total 20
drwx------ 2 joker joker 4096 Jun 22 15:14 .
drwxr-xr-x. 3 root root 4096 Jun 22 15:14 ..
-rw-r--r-- 1 joker joker 18 Dec 7 2016 .bash_logout
-rw-r--r-- 1 joker joker 193 Dec 7 2016 .bash_profile
-rw-r--r-- 1 joker joker 231 Dec 7 2016 .bashrc

/etc/skel的作用

1. 可以把通知的呢绒放到skel,让登录的人去看
2. 统一初始化新用户环境变量
3. 出现-bash-4.1$,原因和解决方法家目录环境变量文件没了,要将/etc/skel/*文件拷回/home/joker/即可,注意要用用户,不能用root操作

/etc/login.defs文件

用来定义创建用户时需要的一些用户的配置信息,如创建用户时是否需要家目录,uid和gid的范围,用户及密码的有效期限

[root@Poppy ~]# cat /etc/login.defs |grep -v "#"

MAIL_DIR        /var/spool/mail

PASS_MAX_DAYS   99999   密码有效期
PASS_MIN_DAYS 0
PASS_MIN_LEN 5 最小长度
PASS_WARN_AGE 7 UID_MIN 1000
UID_MAX 60000
SYS_UID_MIN 201
SYS_UID_MAX 999 GID_MIN 1000
GID_MAX 60000
SYS_GID_MIN 201
SYS_GID_MAX 999 CREATE_HOME yes UMASK 077 USERGROUPS_ENAB yes ENCRYPT_METHOD SHA512

用户管理命令

1. useradd 添加用户

/etc/default/useradd ,是在使用useradd添加用户时的一个需要调用的一个默认的配置文件

[root@Poppy ~]# cat /etc/default/useradd
# useradd defaults file
GROUP=100 依赖于/etc/login.defs的USERGROUPS_ENAB参数,如果为no,则此处控制
HOME=/home
INACTIVE=-1 是否启用账号过期停权,-1表示不启用
EXPIRE= 账号终止日期,不设置表示不启用
SHELL=/bin/bash
SKEL=/etc/skel 新用户默认的文件存放路径
CREATE_MAIL_SPOOL=yes 是否创建邮箱 useradd -D -s /bin/bash 可以修改默认配置,-D就是指的/etc/default/useradd文件

参数参考:

useradd
-u 指定uid
-s 指定登录shell /sbin/nologin
-c 注释
-d 家目录
-G 属于多个组
-m 创建家目录
-g 属于的主组
-e 指定过期时间 “2018/08/08”
-M 不创建家目录

[root@Poppy ~]# useradd -c "描述" -u 1111 -G joker -s /bin/sh -md /lili lili
  [root@Poppy ~]# tail -1 /etc/passwd
  lili:x:1111:1111:描述:/lili:/bin/sh

2. userdel 删除用户

userdel -r user
-r将家目录也一并删除

/etc/passwod /etc/shadow/ /etc/group /etc/gshadow 里面关于user的信息都会被删除

3. groupadd 添加组

与groupadd  命令有关的文件
/etc/group 用户组相关文件
/etc/gshadow 用户组加密相关文件 -g指定组id
groupadd -g 101 user

4. groupdel 删除组

groupdel groupuser

5. passwd 修改密码

不加用户,修改当前用户
/etc/shadow

--stdin 从stdin读入密码
echo ""|passwd --stdin joker

6. gpasswd 更改用户组密码

gpasswd 组名即可更改

7. chage 用来设置或修改用户密码有效期限

-l 用户信息,主要读取的是shadow文件

[root@Poppy ~]# chage  -l root
Last password change : Jun 06, 2018 密码修改时间
Password expires : never 密码过期
Password inactive : never 密码禁用,停用
Account expires : never
Minimum number of days between password change : 0 多少天内禁止修改密码
Maximum number of days between password change : 99999 多少天以后修改新密码
Number of days of warning before password expires : 7 密码过期前多少天开始提醒 -E 账号过期时间,写法MM/DD/YY
chage -E "" user passwd -n 7 -x 60 -w 10 -i 30 joker
min max warning inactive chage -m 7 -M 60 -w 10 -I 30 oldboy

8. usermod 修改用户信息

参数与useradd相同

usermod -L user 冻结
     -U user 解冻

附赠 /etc/passwod /etc/shadow/ /etc/group /etc/gshadow里面的每行每段的解释

1)/etc/passwd 的内容理解:
  在/etc/passwd 中,每一行都表示的是一个用户的信息;一行有7个段位;每个段位用:号分割,例如:    beinan:x:500:500:beinan sun:/home/beinan:/bin/bash
   linuxsir:x:501:502::/home/linuxsir:/bin/bash   第一字段:用户名(也被称为登录名);在上面的例子中,我们看到这两个用户的用户名分别是 beinan 和linuxsir;
  第二字段:口令;在例子中我们看到的是一个x,其实密码已被映射到/etc/shadow 文件中;
  第三字段:UID ;请参看本文的UID的解说;
  第四字段:GID;请参看本文的GID的解说;
  第五字段:用户名全称,这是可选的,可以不设置,在beinan这个用户中,用户的全称是beinan sun ;而linuxsir 这个用户是没有设置全称;
  第六字段:用户的家目录所在位置;beinan 这个用户是/home/beinan ,而linuxsir 这个用户是/home/linuxsir ;
  第七字段:用户所用SHELL 的类型,beinan和linuxsir 都用的是 bash ;所以设置为/bin/bash ; 2)关于UID 的理解:
  UID 是用户的ID 值,在系统中每个用户的UID的值是唯一的,更确切的说每个用户都要对应一个唯一的UID
,系统管理员应该确保这一规则。系统用户的UID的值从0开始,是一个正整数,至于最大值可以在/etc/login.defs
可以查到,一般Linux发行版约定为60000;
  UID 是确认用户权限的标识,用户登录系统所处的角色是通过UID 来实现的,而非用户名,切记; 在Linux 中,root的UID是0,拥有系统最高权限;比如我在/etc/passwd 中把beinan的UID改为0后,你设想会发生什么呢?beinan这个用户会被确认为root用户。beinan这个帐号可以进行所有root的操作;
  
  一般情况下,每个Linux的发行版都会预留一定的UID和GID给系统虚拟用户占用,虚拟用户一般是系统安装时就有的,是为了完成系统任务所必须的用户,但虚拟用户是不能登录系统的,比如ftp、nobody、adm、rpm、bin、shutdown等;预留数量以各个系统中/etc/login.defs
中的 UID_MIN 的最小值为准;比如Fedora 系统 login.defs的UID_MIN是500,而UID_MAX
值为60000,也就是说我们通过adduser默认添加的用户的UID的值是500到60000之间; 2、关于/etc/shadow ;
  1)/etc/shadow 概说;
  /etc/shadow文件是/etc/passwd 的影子文件,这个文件并不由/etc/passwd
而产生的,这两个文件是应该是对应互补的;shadow内容包括用户及被加密的密码以及其它/etc/passwd
不能包括的信息,比如用户的有效期限等;这个文件只有root权限可以读取和操作,权限如下:
  -r——– 1 root root 1.5K 10月 16 09:49 /etc/shadow   2)/etc/shadow 的内容分析;
  /etc/shadow 文件的内容包括9个段位,每个段位之间用:号分割;我们以如下的例子说明;   beinan:$1$VE.Mq2Xf$2c9Qi7EQ9JP8GKF8gH7PB1:13072:0:99999:7:::
  linuxsir:$1$IPDvUhXP$8R6J/VtPXvLyXxhLWPrnt/:13072:0:99999:7::13108:   第一字段:用户名(也被称为登录名),在/etc/shadow中,用户名和/etc/passwd 是相同的,这样就把passwd 和shadow中用的用户记录联系在一起;这个字段是非空的;
  第二字段:密码(已被加密),如果是有些用户在这段是x,表示这个用户不能登录到系统;这个字段是非空的;
  第三字段:上次修改口令的时间;这个时间是从1970年01月01日算起到最近一次修改口令的时间间隔(天数),您可以通过passwd 来修改用户的密码,然后查看/etc/shadow中此字段的变化;
  第四字段:两次修改口令间隔最少的天数;如果设置为0,则禁用此功能;也就是说用户必须经过多少天才能修改其口令;此项功能用处不是太大;默认值是通过/etc/login.defs文件定义中获取,PASS_MIN_DAYS 中有定义;
  第五字段:两次修改口令间隔最多的天数;这个能增强管理员管理用户口令的时效性,应该说在增强了系统的安全性;如果是系统默认值,是在添加用户时由/etc/login.defs文件定义中获取,在PASS_MAX_DAYS 中定义;
  第六字段:提前多少天警告用户口令将过期;当用户登录系统后,系统登录程序提醒用户口令将要作废;如果是系统默认值,是在添加用户时由/etc/login.defs文件定义中获取,在PASS_WARN_AGE 中定义;
  第七字段:在口令过期之后多少天禁用此用户;此字段表示用户口令作废多少天后,系统会禁用此用户,也就是说系统会不能再让此用户登录,也不会提示用户过期,是完全禁用;
  第八字段:用户过期日期;此字段指定了用户作废的天数(从1970年的1月1日开始的天数),如果这个字段的值为空,帐号永久可用;
  第九字段:保留字段,目前为空,以备将来Linux发展之用;
  如果更为详细的,请用 man shadow来查看帮助,您会得到更为详尽的资料; 二、关于用户组;
  具有某种共同特征的用户集合起来就是用户组(Group)。用户组(Group)配置文件主要有 /etc/group和/etc/gshadow,其中/etc/gshadow是/etc/group的加密信息文件;
  1、/etc/group 解说;
文件是用户组的配置文件,内容包括用户和用户组,并且能显示出用户是归属哪个用户组或哪几个用户组,因为一个用户可以归属一个或多个不同的用户组;同一用
户组的用户之间具有相似的特征。 2、/etc/group 内容具体分析
  /etc/group 的内容包括用户组(Group)、用户组口令、GID及该用户组所包含的用户(User),每个用户组一条记录;格式如下:
  group_name:passwd:GID:user_list
  在/etc/group 中的每条记录分四个字段:
  第一字段:用户组名称;
  第二字段:用户组密码;
  第三字段:GID
  第四字段:用户列表,每个用户之间用,号分割;本字段可以为空;如果字段为空表示用户组为GID的用户名;
  我们举个例子:
  root:x:0:root,linuxsir 注:用户组root,x是密码段,表示没有设置密码,GID是0,root用户组下包括root、linuxsir以及GID为0的其它用户(可以通过/etc/passwd查看);; 2、关于GID ;
  GID和UID类似,是一个正整数或0,GID从0开始,GID为0的组让系统付予给root用户组;系统会预留一些较靠前的GID给系统虚拟
用户(也被称为伪装用户)之用;查看系统添加用户组默认的GID范围应该查看 /etc/login.defs 中的 GID_MIN 和GID_MAX 值;
  我们可以对照/etc/passwd和/etc/group 两个文件;我们会发现有默认用户组之说;即当一个用属于多个组时会有一个默认的组;在创建目录和文件时,会使用默认的用户组; 3、/etc/gshadow 解说;
  /etc/gshadow是/etc/group的加密资讯文件,比如用户组(Group)管理密码就是存放在这个文件。/etc
/gshadow和/etc/group是互补的两个文件;对于大型服务器,针对很多用户和组,定制一些关系结构比较复杂的权限模型,设置用户组密码是极
有必要的。比如我们不想让一些非用户组成员永久拥有用户组的权限和特性,这时我们可以通过密码验证的方式来让某些用户临时拥有一些用户组特性,这时就要用
到用户组密码;
  /etc/gshadow 格式如下,每个用户组独占一行;
  groupname:password:admin,admin,…:member,member,…
  第一字段:用户组
  第二字段:用户组密码,这个段可以是空的或!,如果是空的或有!,表示没有密码;
  第三字段:用户组管理者,这个字段也可为空,如果有多个用户组管理者,用,号分割;
  第四字段:组成员,如果有多个成员,用,号分割;
  举例:
  beinan:!::linuxsir
   linuxsir:oUS/q7NH75RhQ::linuxsir
  第一字段:这个例子中,有两个用户组beinan用linuxsir
  第二字段:用户组的密码,beinan用户组无密码;linuxsir用户组有已经,已经加密;
  第三字段:用户组管理者,两者都为空;
  第四字段:beinan用户组所拥有的成员是linuxsir ,然后还要对照一下/etc/group和/etc/passwd
查看是否还有其它用户,一般默认添加的用户,有时同时也会创建用户组和用户名同名称; linuxsir 用户组有成员linuxisir ;
  如何设置用户组的密码? 我们可以通过 gpasswd 来实现;不过一般的情况下,没有必要设置用户组的密码;不过自己实践一下也有必要;下面是一个为linuxsir用户组设置密码的例子;
  gpasswd 的用法: gpasswd 用户组
  
[email=root@localhost]root@localhost[/email]
~]# gpasswd linuxsir
  正在修改 linuxsir 组的密码
  新密码:
  请重新输入新密码:
  用户组之间的切换,应该用 newgrp ,这个有点象用户之间切换的su ;我先举个例子:
  [beinan@localhost ~]$ newgrp linuxsir
  密码:
  [beinan@localhost ~]$ mkdir lingroup
   [beinan@localhost ~]$ ls -ld lingroup/
  drwxr-xr-x 2 beinan linuxsir 4096 10月 18 15:56 lingroup/
  [beinan@localhost ~]$ newgrp beinan
   [beinan@localhost ~]$ mkdir beinangrouptest
   [beinan@localhost ~]$ ls -ld beinangrouptest
  drwxrwxr-x 2 beinan beinan 4096 10月 18 15:56 beinangrouptest
  说明:我是以beinan用户组切换到linuxsir用户组,并且建了一个目录,然后再切换回beinan用户组,又建了一个目录,请观察两个目录属用户组的不同;还是自己体会吧;

创建用户发生变化的文件内容解释

用户登录信息查询

# w 显示谁登录,并且在做什么
[root@Poppy ~]# w
16:20:10 up 16 days, 2:10, 3 users, load average: 0.00, 0.01, 0.05
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/0 61.149.21.148 14:16 1:48m 0.04s 0.04s -bash
root pts/2 61.149.21.148 15:13 53:06 0.01s 0.01s -bash
root pts/3 61.149.21.148 16:16 2.00s 0.01s 0.00s w # last 根据的是/var/log/wtmp文件
[root@Poppy ~]# last
root pts/3 61.149.21.148 Fri Jun 22 16:16 still logged in
root pts/2 61.149.21.148 Fri Jun 22 15:13 still logged in
root pts/0 61.149.21.148 Fri Jun 22 14:16 still logged in
root pts/0 61.149.21.148 Fri Jun 22 14:12 - 14:16 (00:03)
root pts/0 123.122.218.236 Thu Jun 21 22:34 - 02:24 (03:50) # lastlog 根据/var/log/lastlog文件,计算机用户最近登录的情况
rsync pts/1 Wed Jun 6 18:35:01 +0800 2018
www **Never logged in**
redis **Never logged in** # groups user 用户属于哪个组
[root@Poppy ~]# groups root
root : root # users 用户的组信息,但是好像没啥用 # env|grep -i 用户,查看用户的环境变量
[root@Poppy ~]# su - joker
Last login: Fri Jun 22 21:33:00 CST 2018 on pts/2
[joker@Poppy ~]$ env |grep -i joker
USER=joker
MAIL=/var/spool/mail/joker
PATH=/application/mysql/bin/:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/home/joker/.local/bin:/home/joker/bin
PWD=/home/joker
HOME=/home/joker
LOGNAME=joker
# su 命令
su - 用户,希望你加-,-相当于用户的环境变量,就是切换成了用户的环境变量 # su - 用户 -c command,还在当前,但是我内部在用户执行了个命令,多用于开机启动的命令,在任务计划里面

sudo

我们可以把某些超级用户权限分类有针对性授权给指定的普通用户,并且普通用户不需要知道root密码就可以使用得到的授权。

sudo提权实现没有权限的用户执行命令
首先,配置sudoers:
终端命令;visudo,相当于vim 配置文件/etc/sudoers
在第98行如下
## Allow root to run any commands anywhere
用户或者组 机器=授权角色 可执行命令
root ALL=(ALL) ALL
joker ALL=(ALL) /usr/bin/passwd
@group ALL=(ALL) ALL
user ALL=(ALL) NOPASSWD:ALL
解释:
第一个ALL代表机器,就是所有机器,第二个ALL代表所有角色,第三个ALL代表可以执行所有命令,NOPASSWD代表提权命令时不需要提示密码 注意;
如果,提示命令找不到,很可能是环境变量导致
root下,echo $path
user下,echo $path
在user下,修改vi ~/.bash_profile,将/usr/local/sbin:/sbin:/usr/sbin加入进去 sudo -l 查看用户有什么权限
visudo -c 检查语法

/etc/sudoers配置文件

# 主机别名
## Host Aliases
## Groups of machines. You may prefer to use hostnames (perhaps using
## wildcards for entire domains) or IP addresses instead.
# Host_Alias FILESERVERS = fs1, fs2
# Host_Alias MAILSERVERS = smtp, smtp2 # 用户别名
## User Aliases
## These aren't often necessary, as you can use regular groups
## (ie, from files, LDAP, NIS, etc) in this file - just use %groupname
## rather than USERALIAS
# User_Alias ADMINS = jsmith, mikem # 用户身份别名
Runas_Alias OP = root # 命令别名
## Command Aliases
## These are groups of related commands... ## Networking
# Cmnd_Alias NETWORKING = /sbin/route, /sbin/ifconfig, /bin/ping, /sbin/dhclient, /usr/bin/net, /sbin/iptables, /usr/bin/rfcomm, /usr/bin/wvdial, /sbin/iwconfig, /sbin/mii-tool ## Installation and management of software
# Cmnd_Alias SOFTWARE = /bin/rpm, /usr/bin/up2date, /usr/bin/yum # 缩写
User_Alias JJADMINS = joker
Cmnd_Alias SYSTEMCMD = /bin/ping,/bin/grep,/bin/tail,/bin/cat
Runas_Alias OP = root
JJADMINS ALL=(OP) SYSTEMCMD

别名要大写
  命令路径要用全路径
  用“\”换行

sudo审计日志

凡是sudo执行的命令都会被记录到日志

[root@Poppy ~]# rpm -qa sudo rsyslog
rsyslog-7.4.7-16.el7.x86_64
sudo-1.8.6p7-23.el7_3.x86_64 [root@Poppy ~]# Defaults logfile=/var/log/sudo.log >> /etc/sudoers [root@Poppy ~]# cat /var/log/sudo.log
Jun 22 22:28:54 : joker : TTY=pts/2 ; PWD=/home/joker ; USER=root ;
COMMAND=/bin/ping baidu.com
Jun 22 22:29:03 : joker : TTY=pts/2 ; PWD=/home/joker ; USER=root ;
COMMAND=/bin/cat

linux文件权限,用户和组的更多相关文章

  1. linux文件所属用户和组

    使用chown命令可以修改文件或目录所属的用户: 命令:chown 用户 目录或文件名 例如:chown -R qq /home/qq  (把home目录下的qq目录的拥有者改为qq用户) 使用chg ...

  2. Linux&shell 之Linux文件权限

    写在前面:案例.常用.归类.解释说明.(By Jim) Linux文件权限用户useradd test (添加用户test)userdel test (删除用户test)passwd test(修改用 ...

  3. 修改linux文件权限

    Linux系统中的每个文件和目录都有访问许可权限,用它来确定谁可以通过何种方式对文件和目录进行访问和操作. 文件或目录的访问权限分为只读,只写和可执行三种.以文件为例,只读权限表示只允许读其内容,而禁 ...

  4. Linux:文件权限

    Linux:文件权限 1.文件权限 ☆文件所有者 ☆用户组 ☆其他人 ☆ROOT 说明: Linux系统中默认所有系统上的账号与一般身份用户,还有那个root的相关信息记录在/etc/passwd文件 ...

  5. Linux 文件权限总结

    在 Linux 中最基本的任务之一就是设置文件权限.理解它们是如何实现的是你进入 Linux 世界的第一步.如您所料,这一基本操作在类 UNIX 操作系统中大同小异.实际上,Linux 文件权限系统就 ...

  6. 修改linux文件权限命令:chmod 【转载】

    Linux系统中的每个文件和目录都有访问许可权限,用它来确定谁可以通过何种方式对文件和目录进行访问和操作. chmod  命令可以改变所有子目录的权限,下面有2种方法 改变一个文件的权限: chmod ...

  7. Linux系统下用户与组的管理

    Linux系统下用户与组的管理 一.用户及组基本概述 Linux 系统上,用户管理是基于用户名和密码的方式进行资源的分配. 1.uid(用户身份标识) (1)root用户 uid为0 (2)普通用户: ...

  8. linux文件权限总结(创建root不可以删除文件、只可追加的日志文件等)

    文件类型 对于文件和目录的访问权力是根据读访问,写访问,和执行访问来定义的. 我们来看一下 ls 命令的输出结果 [root@iZ28dr6w0qvZ test]# ls -l 总用量 72 -rw- ...

  9. Linux 文件权限于目录配置

    用户与用户组 我們以王三毛為例,王三毛這個『檔案』的擁有者為王三毛,他屬於王大毛這個群組, 而張小豬相對於王三毛,則只是一個『其他人(others)』而已. 不過,這裡有個特殊的人物要來介紹的,那就是 ...

  10. Linux文件权限与属性详解 之 SUID、SGID & SBIT

    Linux文件权限与属性详解 之 一般权限 Linux文件权限与属性详解 之 ACL Linux文件权限与属性详解 之 SUID.SGID & SBIT Linux文件权限与属性详解 之 ch ...

随机推荐

  1. 重构Java代码的既有设计-影片出租店

    案例:计算每位顾客的消费金额并打印详细信息.顾客租赁了哪些影片,租期多长,根据租赁时间和影片类型计算出费用.影片分为3类:儿童片,新片,普通片.此外需计算该顾客的积分. Movie: public c ...

  2. java事务(二)

    本地事务 事务类型 事务可以分为本地事务和分布式事务两种类型.这两种事务类型是根据访问并更新的数据资源的多少来进行区分的.本地事务是在单个数据源上进行数据的访问和更新,而分布式事务是跨越多个数据源来进 ...

  3. 【HEVC学习与研究】29、解码第一个Coding Quadtree结构(1)

    ctu tree属性 http://blog.csdn.net/shaqoneal/article/details/26088817

  4. CS231n课程笔记翻译3:线性分类笔记

    译者注:本文智能单元首发,译自斯坦福CS231n课程笔记Linear Classification Note,课程教师Andrej Karpathy授权翻译.本篇教程由杜客翻译完成,巩子嘉和堃堃进行校 ...

  5. Linux下的Maven安装与配置

    关于Maven的介绍可以参考:Maven详解 这篇在原理上讲得比较详细,在安装上是windows版本的,这里补上linux下的安装和配置: 1.下载maven安装包 http://maven.apac ...

  6. Mongodb中在已有Colloection插入/更新相关域值

    [{ "confident" : "no", "score" : 0.327355, "label" : "/ ...

  7. canvas 背景透明

    theCanvas = document.getElementById('canvasOne');var context = theCanvas.getContext('2d');context.fi ...

  8. linux自学(八)之开始centos学习,安装tomcat

    上一篇:linux自学(七)之开始ccentos学习,安装jdk 由于tomcat小,我们直接使用在线下载然后解压形式 首先,进入cd /usr/local目录下并创建tomcat目录,把tomcat ...

  9. BZOJ5297 CQOI2018 社交网络 【矩阵树定理Matrix-Tree】

    BZOJ5297 CQOI2018 社交网络 Description 当今社会,在社交网络上看朋友的消息已经成为许多人生活的一部分.通常,一个用户在社交网络上发布一条消息(例如微博.状态.Tweet等 ...

  10. 像黑客一样!Chrome 完全键盘操作指南(原生快捷键 + Vimium 插件)

    有那么一波小伙伴,多数时候都不需要用到鼠标,通常他们正好是“黑客”.当你开始使用键盘操作一切时,便能体会到无需用鼠标瞄准按钮时的干脆,无需在键盘和鼠标之间移动手时的轻松. Chrome 原生自带大量快 ...