默认权限umask和特殊权限
用户账户信息包括:帐号名称,密码,UID,GID,主文件夹,登录Shell等等信息。用户和组的信息都会更新。
对于一个文件最大权限达到数字7。新建文件时候都会有默认权限。
一、用户,组和权限
新建一个文件,输入
[root@centos7~]
[root@centos7~]
[root@centos7~]
[root@centos7~]#cd/data
[root@centos7 data]#touchf1
[root@centos7 data]#11
total 0
rw-r--r--1 root root 0 Sep 28 09:04f1
[root@ centos7data ]#suwang
[wang@ centos7data ]$touch f2
touch:cannot touch‘f2’: Permission denied
[wang@ centos7data ]$exit
exit现在是没有权限的,要想让它有权限就得有如下:
[root@centos7 data]#chmod 777/data/
.[root@centos7 data]#su wang
[wang@centos7 data]$touchf2
[wang@centos7 data]$11
total 0
rw-rw-r--1 root root 0 Sep 28 09:04 f1
rw-rw-r--1 wang wang 0 Sep 28 09:04 f2
[wang@ centos7data ]$touchf3
[wang@ centos7data ]$11
total 0
-rw-r--r-1 root root 0 Sep 2809:04f1
-rw-rw-r--1 wang wang 0 Sep 2809:04f2
_ rw-rw-r--1_ wangwang 0 Sep 2809:05f3
默认权限的设置要比账号的权限小,权限越小就越安全。
[wang@ centos7data ]$ umask
umask它本身是一个数字
例如:
0002
[wang@centos7 data]$ usmak+default=666|777^c要避免产生默认权限
运行结果显示
644
022 umask
要是直接退出的话就会回到原来的值,要是想得到的是最终的值就得保存到文件中。
umask+default=666|777
如果umask值换为123,那么新建的文件的默认权限就是543。
123+default=666
default=543
具体如下:换为123是无影响的
0022
[wang¢os7~]$exit
exit
[root@ centos7data ]#suwang
[wang@ centos7data ]$umask
0022
[wang& centos7data ]$umask 123
[wang& centos7data ]$touchf5
[wang@ centos7data ]$77f5
-rw-r--r-1 wang wang 0 Sep 28 09:15f5
[wang@ centos7data ]$umask 123
换为321的话会有一点变化
[wang@ centos7daa ]$mask321
[wang& centos7data ]$touchf6
[wang@ centos7data ]$11f6
--r--rww-1 wangwang0Sep 28 09:15f6
[wang@ ceintos7data ]$666-321=345
umask掩码
110110110
011010001 321是它的umask值
要去掉这个权限为1
100100110
446
666
321 umask
345
二、新建文件和目录的默认权限
amask值可以用来保留在创建文件权限
新建FILE权限:666-umask
如果所得结果某位存在执行(奇数)权限,则将其权限+1,这就是它的计算公式
#vim:ts=4:sw=4
root@ centos7data ]#id-un
root
[root@ centos7data ]#id-u
quot@ centos7data ]#id-un
root
[root@ centos7data ]#id-gn
root
[root@ centos7data ]#id-n id:cannot print only names or real IDs in default format[root@ centos7data ]#id
uid=0(root) gid=0(root) groups=0(root)
[root@ centos7data ]#umaskS
u=rwx,g=rx,O=rx
[root@ centos7data ]#umask
0022[root@ centos7data ]#umask u=rw g=r o=
[root@ centos7data ]#umask
0122
[root@ centos7data ]#mkdirdirt
[root@ centos7data ]#11-ddir1 drw-r-xr-χ2 root root 6 Sep 2809;25 dirl
[root@ centos7data ]#
其次
root@centos7 data]#
root@centos7 data]#
root@ centos7datal #
root@ centos7data ]#umask-p
umask 0122
[root@ centos7data ]#umask
0122
[root@ centos7data ]#umask-p
umask 0122
[root@ centos7data ]#suwang
[wang@ centos7data ]$umask
0022
[wang@ centos7data ]$
新建D权限:777-umask
非特权用户umask是002
root的umask是022
umask:查看
umask#:设定
umask 002
umask-S模式方式显示
umask-p输出可被调用
全局设置:/etc/bashrc也可以写入这个文件,但是一般来说是不介意用户设置:~/. bashrc
1、当用户docker对/testdir 目录无执行权限时,意味着无法做哪些操作?
答:执行权限为目录的基础权限,没有执行权限则无法进入到目录,无法查看目录内容,无法在目录中创建、修改、删除里面的文件,就是什么也做不了
2、当用户mongodb对/testdir 目录无读权限时,意味着无法做哪些操作?
答:无法查看目录中的文件列表
3、当用户redis对/testdir 目录无写权限时,该目录下的只读文件file1是否可修改和删除?
答:修改文件内容需要对文件有写权限才可以,而删除文件则需要对文件父目录有写权限才可以,所以redis对文件file1不可修改也不可删除
4、当用户zabbix对/testdir 目录有写和执行权限时,该目录下的只读文件file1是否可修改和删除?
答:对目录有写、执行权限,则可以进入到目录,可以在目录中创建、删除文件,因此zabbix可以删除file1文件,修改文件需要文件本身有写权限方可,所以zabbix不能修改file1文件
5、复制/etc/fstab文件到/var/tmp下,设置文件所有者为tomcat读写权限,所属组为apps组有读写权限,其他人无权限
答:chown tomcat:apps /var/tmp/fstab
chmod g=rw,o= /var/tmp/fstab
6、误删除了用户git的家目录,请重建并恢复该用户家目录及相应的权限属性
答:cp /etc/skel/. /home/git
还可以用一些字母来显示,例如-S,-P
#vim:ts=4:sw=4
[root@ centos7data ]#id-un
root
[root@ centos7data ]#id-u
o
[root@ centos7data ]#id-un
root
[root@ centos7data ]#id-gn
root
[root@ centos7data ]#id−n id:cannot print only names or real IDs in default format[root@ centos7data ]#id
uid=0(root) gid=0(root) groups=0(root)
[root@ centos7data ]#umask-S
u=rwx,q=rx,o=rX
[rgot@ centos7data ]#umask
0022
[root@ centos7data ]#umask u=rwg=ro=
froot@ centos7data ]#umask
0122
root@ centos7data ]#mkdirdirl
foot@centos?data]#11ddir1 drw-r-xr-x2 root root 6 Sep 2809:25 dirt
[foot@ centos7data ]# umask --help
-bash:umask:--:invalid option
umask:usage:umask[-p][-S][mode]
[root@centos?data]#typeumask
umask is a shell builtin
[root@ centos7data ]#helpumask
umask:umask[-p][-S][mode]
Display or set file mode mask.
Sets the'user file-creation mask to MODE. If MODE is omitted, prints the current value of the mask.
If MODE begins with a digit, it is interpreted as an octal number: otherwise it is a symbolic mode string like that accepted by chmod(1).
if MODE is omitted, output in a form that may be reused as input
makes the output symbolic;otherwise an actal number is output
Exit Status; Returns success unless MODE is invalid or an invalid option is given.
[root@centos7 data]#
[root@centos7 data]#
[root@centos7 data]#umask -p
umask 0122
[root@centos7 data]#umask
0122
[root@centos7 data]#umask -p
umask 0122
[root@centos7 data]#su wang
[wang@centos7 data]$ umask
0022
[wang@centos7 data]$ exit
exit
[root@centos7 data]#wmask -p>>~wang/.bashrc
三、Linux文件系统上的特殊权限
SUID,SGID,Sticky
三种常用权限:r,w,X user,group,other
安全上下文
前提:进程有属主和属组;文件有属主和属组
(1)任何一个可执行程序文件能不能启动为进程,取决发起者对程序文件是否拥有执行权限
(2)启动为进程之后,其进程的属主为发起者,进程的属组为发起者所属的组
(3)进程访问文件时的权限,取决于进程的发起者
(a)进程的发起者,同文件的属主:则应用文件属主权限
(b)进程的发起者,属于文件属组;则应用文件属组权限
(c)应用文件“其它”权限
文件能否访问是由用户决定
总结:
suid:4作用于二进制可执行的文件上,功能:当用户执行此文件,会继承此文件所有者的权限
said:2
⑴作用于二进制可执行的文件上,功能:当用户执行此文件,会继承此文件所属组的权限
⑵作用于目录上,功能:当用户在此目录建新文件时,此新文件的所属组继承目录的所属组
sticky:1作用于目录上,功能:对目录的文件,只能删除自己的文件
四、权限位映射
SUID:user,占据属主的执行权限位
s:属主拥有x权限
S:属主没有x权限
SGID:group,占据属组的执行权限位
s:group拥有x权限
S:group没有x权限
Sticky:other,占据other的执行权限位
t:other拥有x权限
T:other没有x权限
设定文件特定属性
chattr+i不能删除,改名,更改
chattr+a只能追加内容
lsattr显示特定属性
五、访问控制列表
ACL:Access Control List,实现灵活的权限管理
除了文件的所有者,所属组和其它人,可以对更多的用户设置权限
CentOS7默认创建的xfs和ext4文件系统具有ACL功能
CentOS7之前版本,默认手工创建的ext4文件系统无ACL功能,需手动增加tune2fs-o acl/dev/sdb1
mount-o acl/dev/sdb1/mnt/test
ACL生效顺序:所有者,自定义用户,自定义组,其他人