当前位置: 首页 > news >正文

Linux入门篇-权限管理

简介

用户管理也是和权限相关的知识点。

权限的作用

权限对于普通文件和目录文件作用是不一样的
[kiosk@foundation0 ~]$ ls -l
total 264
-rw-rw-r--. 2 kiosk kiosk 31943 May 29 2019 ClassPrep.txt
-rw-rw-r--. 2 kiosk kiosk 7605 Jun 14 2019 ClassRHAPrep.txt
-rw-rw-r--. 2 kiosk kiosk 20950 May 29 2019 ClassroomReset.txt
-rw-r--r--. 2 root root 1806 May 30 2019 ClassroomSetup-RH294.txt
-rw-rw-r--. 2 kiosk kiosk 49827 Aug 20 2019 ClassroomSetup.txt
-rw-rw-r--. 2 kiosk kiosk 41135 Jun 27 2019 ClassroomTroubleshooting.txt
-rw-rw-r--. 1 kiosk kiosk 992 Nov 10 2018 DHCP-ranges.txt-foundation0
drwxrwxr-x. 3 kiosk kiosk 27 Feb 25 10:15 Desktop
drwxr-xr-x. 2 kiosk kiosk 6 Feb 25 02:25 Documents
drwxr-xr-x. 2 kiosk kiosk 6 Feb 25 02:25 Downloads
-rw-rw-r--. 1 kiosk kiosk 81759 May 1 2019 History-7.x.txt
-rw-rw-r--. 2 kiosk kiosk 13102 Aug 28 2019 History.txt
drwxr-xr-x. 2 kiosk kiosk 6 Feb 25 02:25 Music
drwxr-xr-x. 2 kiosk kiosk 6 Feb 25 02:25 Pictures
drwxr-xr-x. 2 kiosk kiosk 6 Feb 25 02:25 Public
drwxr-xr-x. 2 kiosk kiosk 6 Feb 25 02:25 Templates
drwxr-xr-x. 2 kiosk kiosk 6 Feb 25 02:25 Videos
drwxrwxr-x. 2 kiosk kiosk 72 Feb 25 10:15 survey
rw-rw-r--
rwxr-xr-x
文件的权限列

权限对普通文本文件的作用

9列权限,前三列表示文件的拥有者对该文件具有的权限,中间三列表示文件的所属组对该文件具有的
权限,后三列表示其他人对该文件具有的权限。其它人人的意思就是既不是拥有者,也不是所属组,就
是其他人。对于一个文件来说,它的权限列表示它对世界上的三种人具备的权限,这三种人就分别是
owner(拥有者),group(所属组),others(其他人),任何一个文件的权限列所表达的意思都是
这样的。
一般来说(并不强行规定),owner的权限>group的权限>others的权限,注意一点,文件的owner
一定属于该文件的所属组。
权限列常见的内容有4个,分别是rwx-。总共9列,分割成33列。分别表示对三类人的权限。
33列的第一列要么是r,要么是-,如果是r,则表示该类人对该文件具有读(
read)权限。第二列
要么是w,要么是-,如果是w,则表示该类人对该文件具有写(write)权限。第三列要么是x,要么
-,如果是x,就表示该类人对该文件有执行execute(x)权限
r=read
[kiosk@foundation0 ~]$ ls -l
total 264
-rw-rw-r--. 2 kiosk kiosk 31943 May 29 2019 ClassPrep.txt
-rw-rw-r--. 2 kiosk kiosk 7605 Jun 14 2019 ClassRHAPrep.txt
-rw-rw-r--. 2 kiosk kiosk 20950 May 29 2019 ClassroomReset.txt
-rw-r--r--. 2 root root 1806 May 30 2019 ClassroomSetup-RH294.txt
-rw-rw-r--. 2 kiosk kiosk 49827 Aug 20 2019 ClassroomSetup.txt
-rw-rw-r--. 2 kiosk kiosk 41135 Jun 27 2019 ClassroomTroubleshooting.txt
-rw-rw-r--. 1 kiosk kiosk 992 Nov 10 2018 DHCP-ranges.txt-foundation0
drwxrwxr-x. 3 kiosk kiosk 27 Feb 25 10:15 Desktop
drwxr-xr-x. 2 kiosk kiosk 6 Feb 25 02:25 Documents
drwxr-xr-x. 2 kiosk kiosk 6 Feb 25 02:25 Downloads
-rw-rw-r--. 1 kiosk kiosk 81759 May 1 2019 History-7.x.txt
-rw-rw-r--. 2 kiosk kiosk 13102 Aug 28 2019 History.txt
drwxr-xr-x. 2 kiosk kiosk 6 Feb 25 02:25 Music
drwxr-xr-x. 2 kiosk kiosk 6 Feb 25 02:25 Pictures
drwxr-xr-x. 2 kiosk kiosk 6 Feb 25 02:25 Public
drwxr-xr-x. 2 kiosk kiosk 6 Feb 25 02:25 Templates
drwxr-xr-x. 2 kiosk kiosk 6 Feb 25 02:25 Videos
drwxrwxr-x. 2 kiosk kiosk 72 Feb 25 10:15 survey
rw-rw-r--
rwxr-xr-x
文件的权限列
24w=write
x=execute执行
看文件权限3步:
①找到权限9列,将其3等分。
②确定拥有人权限的三列,所属组权限的三列,其他人权限的三列
③确定每一类人的权限,有r就是有读权限,有w就是有写权限,有x就是有执行权限
-rw-rw-r--. 1 kiosk kiosk 992 Nov 10 2018 DHCP-ranges.txt-foundation0
①rw- rw- r--
②owner group others
③读写 读写 读
拥有人有读写权限,所属组由读写权限,其它人有读权限。

通过上面的步骤之后,给你任何一个文件,你应该能判断出这个文件对三类人有哪些权限了。
对于普通文件来说,rwx权限表达的意义是什么呢?
如果一个普通文件有r权限,就表示该文件的内容可以被查看到。
如果一个普通文件有w权限,就表示该文件的内容可以被修改(加内容,删内容,修改内容)
如果一个普通文件有x权限,就表示该文件可以当做脚本一样执行。
权限对应的可操作性内容就是上面描述的
对于目录文件来说,rwx权限表达的意义是什么呢?
如果一个目录文件有r权限,就表示该目录下的文件可以被查看属性(查看文件属性的命令ls
如果一个目录文件有r权限,能否查看这个目录下的普通文件的内容(不一定)
一个普通文件能否查看它的内容和它所在的目录没有任何关系,而是和它自己是否具备r权限有关系。
如果一个目录文件有w权限,就表示可以在该目录下创建或删除或修改文件属性
如果一个目录文件有w权限,是否能修改这个目录下的普通文件的内容?(不一定)
一个普通文件能否修改它的内容和它自己是否具备w权限有关系,而和它是否在具备w权限的目录没有
任何关系。
如果一个目录文件有x权限,就表示可以进入该目录,如果一个目录连x权限都没有,这个目录是无法进
入的。
一个目录没有x权限,能不能在该目录下创建删除文件,或者我查看文件属性?(可以)
-rw-rw-r--. 1 kiosk kiosk 992 Nov 10 2018 DHCP-ranges.txt-foundation0
rw- rw- r--
owner group others
读写 读写 读
拥有人有读写权限,所属组由读写权限,其它人有读权限。
如果一个目录没有执行权限,那么即使有r权限或者w权限,也表示该目录是一个问题目录。
对于目录来说只有3类权限有意义。
---表示目录没有任何权限
r-x表示目录有读权限
rwx表示目录有写权限
一个目录如果有-wx权限。
一个目录如果有--x权限。

 针对一个文件设置权限(切换到root操作)

useradd hcj
useradd zk
你想理解一个文件的权限,你必须要知道,一个文件的权限和文件的owner和group息息相关。
如何修改文件的owner和group
[root@foundation0 zk]# touch women
[root@foundation0 zk]# ls -l
total 0
-rw-r--r--. 1 root root 0 Apr 15 21:03 women
[root@foundation0 zk]# chown hcj women
[root@foundation0 zk]# ls -l
total 0
-rw-r--r--. 1 hcj root 0 Apr 15 21:03 women
[root@foundation0 zk]# chgrp zk women
[root@foundation0 zk]# ls -l
total 0
-rw-r--r--. 1 hcj zk 0 Apr 15 21:03 women
[root@foundation0 zk]# chown zk:hcj women
[root@foundation0 zk]# ls -l
total 0
-rw-r--r--. 1 zk hcj 0 Apr 15 21:03 women
[root@foundation0 zk]# chown :zk women
[root@foundation0 zk]# ls -l
total 0
-rw-r--r--. 1 zk zk 0 Apr 15 21:03 women

使用chmod设置文件权限

chmod u/g/o
u=user (owner)
g=group
o=others
[root@foundation0 zk]# chmod u=rwx,g=rwx,o=rwx women
[root@foundation0 zk]# ls -l
total 0
-rwxrwxrwx. 1 zk hcj 0 Apr 15 21:03 women
表示将拥有人的权限设置为rwx,所属组的权限设置为rws,其他人的权限设置为rwx
测试权限的效果
对于文件的执行权限解释(shell脚本)
当执行一个普通文本文件的时候,相当于将该文件里面的每一行都当成linux的命令去执行
如何执行一个文件
以绝对路径或者相对路径指定那个文件,回车,如果有执行权限,就会执行成功
[root@foundation0 zk]# chmod u-x,g-wx,o-rwx women
[root@foundation0 zk]# ls -l
total 0
-rw-r-----. 1 zk hcj 0 Apr 15 21:03 women
[root@foundation0 zk]#
表示将文件的拥有人减去x权限,文件的所属组减去wx权限,文件的其他人减去rwx权限
[root@foundation0 zk]# chmod u-x,g-wx,o=--- women
[root@foundation0 zk]# ls -l
total 0
-rw-r-----. 1 zk hcj 0 Apr 15 21:03 women
[root@foundation0 zk]# chmod u+x,g+w,o+r women
[root@foundation0 zk]# ls -l
total 0
-rwxrw-r--. 1 zk hcj 0 Apr 15 21:03 women
表示拥有人加上x权限,所属组加上w权限,其他人加上r权限
通过上面的“加权限”,“减权限”,“等于权限”就能设置文件为任何权限。
[root@foundation0 zk]# chmod o+w women
[root@foundation0 zk]# ls -l
total 0
-rwxrw-rw-. 1 zk hcj 0 Apr 15 21:03 women
[root@foundation0 zk]# chmod o-w women
[root@foundation0 zk]# ls -l
total 0
-rwxrw-r--. 1 zk hcj 0 Apr 15 21:03 women

测试权限的效果

当你操作Linux的时候,必须要知道你是谁,你在哪,你要干什么?
3个角色来测试权限的效果
我(root)
张凯(zk)
黄橙🐔(hcj)

对于文件的执行权限解释(shell脚本)

当执行一个普通文本文件的时候,相当于将该文件里面的每一行都当成linux的命令去执行
如何执行一个文件
以绝对路径或者相对路径指定那个文件,回车,如果有执行权限,就会执行成功
[root@foundation0 zk]# chmod u-x,g-wx,o-rwx women
[root@foundation0 zk]# ls -l
total 0
-rw-r-----. 1 zk hcj 0 Apr 15 21:03 women
[root@foundation0 zk]#
表示将文件的拥有人减去x权限,文件的所属组减去wx权限,文件的其他人减去rwx权限
[root@foundation0 zk]# chmod u-x,g-wx,o=--- women
[root@foundation0 zk]# ls -l
total 0
-rw-r-----. 1 zk hcj 0 Apr 15 21:03 women
[root@foundation0 zk]# chmod u+x,g+w,o+r women
[root@foundation0 zk]# ls -l
total 0
-rwxrw-r--. 1 zk hcj 0 Apr 15 21:03 women
表示拥有人加上x权限,所属组加上w权限,其他人加上r权限
通过上面的加权限减权限等于权限就能设置文件为任何权限。
[root@foundation0 zk]# chmod o+w women
[root@foundation0 zk]# ls -l
total 0
-rwxrw-rw-. 1 zk hcj 0 Apr 15 21:03 women
[root@foundation0 zk]# chmod o-w women
[root@foundation0 zk]# ls -l
total 0
-rwxrw-r--. 1 zk hcj 0 Apr 15 21:03 women
当你操作Linux的时候,必须要知道你是谁,你在哪,你要干什么?
3个角色来测试权限的效果
我(root
张凯(zk
黄橙🐔hcj
十进制
1+1=2
2+1=3
3+1=4
4+1=5
5+1=6
6+1=7
7+1=8
8+1=9
9+1=10
十进制是逢101
二进制
0+0=000 0 --- 0
0+1=001 1 --x
1+1=010 2 -w-
10+1=011 3 -wx
11+1=100 4 r--
100+1=101 5 r-x 5
101+1=110 6 rw-
110+1=111 7 rwx 7

Linux的三种特殊权限 

Linux的三种特殊权限,考试只考一种,实际在生产环境当中,用的并不是特别多
①SET UID
SET UID特殊权限应用于可执行的普通文件,当一个文件被设置SET UID特殊权限时,任何人一旦执行
该文件,都会临时获得文件拥有人的权限。
[zk@foundation0 dir-test]$ ls -l /bin/passwd
-rwsr-xr-x. 1 root root 34512 Aug 13 2018 /bin/passwd
在文件拥有者的权限列的执行权限位置,如果该位置是s或者S,就表示该文件被设置了set UID特殊权
限。
[root@foundation0 ~]# chmod u-s /bin/passwd
[root@foundation0 ~]# ls -l /bin/passwd
-rwxr-xr-x. 1 root root 34512 Aug 13 2018 /bin/passwd
[root@foundation0 ~]# chmod u+s /bin/passwd
[root@foundation0 ~]# ls -l /bin/passwd
-rwsr-xr-x. 1 root root 34512 Aug 13 2018 /bin/passwd
②SET GID(考试要考的)
SET GID特殊权限应用于目录文件,当一个目录被设置SET GID特殊权限时,任何用户在该目录下创建
文件,
文件的所属组都会变成被设置SET GID那个目录的所属组。
[zk@foundation0 dir-test]$ chmod g+s zk-dir1
[zk@foundation0 dir-test]$ ls -ld zk-dir1
drwxrwsrwx. 2 zk zk 23 Apr 15 23:07 zk-dir1
在文件所属组的权限列的执行权限位置,如果该位置是s或者S,就表示该文件被设置了set GID特殊权
限。
③Sticky(粘置位)
针对有写权限的目录设置的特殊权限位,当一个有写权限的目录被设置了sticky特殊权限,那么任何人
在该目录下创建的文件就只有自己和root可以删除。该特殊权限位,限制了目录的写权限。
对于目录的写权限来说,该权限有点太大了,sticky就是限制目录写权限的。
[hcj@foundation0 tmp]$ ls -l /tmp/ -d
drwxrwxrwt. 17 root root 4096 Apr 15 23:19 /tmp/
如果其他人权限列的执行权限位置被设置为t或者T,就表示该文件被设置了stiky特殊权限。
[root@foundation0 zk]# chmod o-t /tmp/
[root@foundation0 zk]# ls -ld /tmp/
drwxrwxrwx. 17 root root 4096 Apr 15 23:21 /tmp/
[root@foundation0 zk]# chmod o+t /tmp/
[root@foundation0 zk]# ls -ld /tmp/
drwxrwxrwt. 17 root root 4096 Apr 15 23:21 /tmp/
[zk@foundation0 ~]$ touch /tmp/zk2
[hcj@foundation0 tmp]$ rm -rf zk2
rm: cannot remove 'zk2': Operation not permitted
[hcj@foundation0 tmp]$ ls -ld /tmp/
drwxrwxrwt. 17 root root 4096 Apr 15 23:23 /tmp/
[hcj@foundation0 tmp]$ ls -l /bin/passwd
-rwsr-xr-x. 1 root root 34512 Aug 13 2018 /bin/passwd
[hcj@foundation0 tmp]$ ls -ld /tmp/dir-test/zk-dir1
drwxrwsrwx. 2 zk zk 40 Apr 15 23:09 /tmp/dir-test/zk-dir1
当设置特殊权限时,执行权限会被“覆盖”,如果是小写字母的特殊权限,那么执行权限就还在,如果是
大写字母的特殊权限,那么执行权限就不在了
[root@foundation0 zk]# chmod o-x /tmp/
[root@foundation0 zk]# ls -ld /tmp/
drwxrwxrwT. 17 root root 4096 Apr 15 23:25 /tmp/
[root@foundation0 zk]# chmod u-x /bin/passwd
[root@foundation0 zk]# ls -l /bin/passwd
-rwSr-xr-x. 1 root root 34512 Aug 13 2018 /bin/passwd
[root@foundation0 zk]# chmod g-x /tmp/dir-test/zk-dir1/
[root@foundation0 zk]# ls -ld /tmp/dir-test/zk-dir1/
drwxrwSrwx. 2 zk zk 40 Apr 15 23:09 /tmp/dir-test/zk-dir1/

系统缺省权限设置umask(想当有用)

[root@foundation0 ~]# umask
0022
[zk@foundation0 ~]$ umask
0002
一般来说umask只看后3位
创建目录的缺省权限是777
创建普通文件的权限是666
正常来说任何用户创建目录后,该目录的权限是rwxrwxrwx
任何用户创建普通文本文件,该文件的权限是rw-rw-rw-
普通文件如果带上执行权限,是不安全的.
umask能帮助用户修改创建文件的默认权限。
创建目录的最终权限,就是目录777减去umask的后3位
创建普通文件的最终权限,就是666减去umask的后3位
root创建的目录权限应该是777-022=755
root创建的普通文件权限应该是666-022=644
普通用户创建的目录权限应该是777-002=775
普通用户创建的文件权限应该是666-002=664
umask可以修改的。
[root@foundation0 ~]# umask 0033
[root@foundation0 ~]# umask
0033
033=----wx-wx
666-033=(rw-rw-rw-)-(----wx-wx)=(rw-r--r--)
问题:创建目录权限是什么? 777-033=744=rwxr--r--
创建文件权限是什么? 666-033=633=rw--wx-wx
umask的缺省权限设置需要将umask转换成权限,再去和缺省权限做减法,才能得到正确的创建文件权
限。
命令行的修改只是临时修改,只在当前shell有效。如果想永久修改。
将某个普通用户的umask永久设置。
[zk@foundation0 ~]$ cat .bashrc
# .bashrc
umask 066
# Source global definitions
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi
# User specific environment
PATH="$HOME/.local/bin:$HOME/bin:$PATH"
export PATH
# Uncomment the following line if you don't like systemctl's auto-paging
feature:
# export SYSTEMD_PAGER=
# User specific aliases and functions
有一个普通文件file,需要对该文件进行权限设置,有3个用户,tgb,lxs,xzx。
①要求tgb对file文件有rwx权限
②要求lxs对file文件有rw权限
③要求xzx对file文件有r权限
[root@foundation0 ~]# useradd tgb
[root@foundation0 ~]# useradd lxs
[root@foundation0 ~]# useradd xzx
[root@foundation0 ~]# mkdir /tmp/test
[root@foundation0 ~]# cd /tmp/test/
[root@foundation0 test]# ls
[root@foundation0 test]# touch file
[root@foundation0 test]# ls -l
total 0
-rw-r--r--. 1 root root 0 Apr 18 20:14 file
两条命令来实现上面的需求
第一个问题,能否实现上面的需求? 可以实现
第二个问题,如何实现?
[root@foundation0 test]# chown tgb:lxs file
[root@foundation0 test]# ls -l
total 0
-rw-r--r--. 1 tgb lxs 0 Apr 18 20:14 file
[root@foundation0 test]# chmod u=rwx,g=rw,o=r file
[root@foundation0 test]# ls -l
total 0
-rwxrw-r--. 1 tgb lxs 0 Apr 18 20:14 file
有一个普通文件file,需要对该文件进行权限设置,有3个用户,tgb,lxs,xzx。
①要求tgb对file文件有rwx权限
②要求lxs对file文件有rw权限
③要求xzx对file文件有r权限
④要求hzz对file没有任何权限
--------------------------
⑤要求zz对file有w权限
⑥要求zzb对file有wx权限
[root@foundation0 test]# useradd hzz
第一个问题,能否实现上面的需求?(用我们现在所学的知识)
第二个问题,如何实现?
针对超出三类人以上的权限,我们使用文件表面的权限已经无法实现了。
应对类似这种非常复杂的权限问题,如何解决呢?文件的ACL权限(Access Control List访问控制列表)
ACL就是对访问进行控制的一张表
文件的ACL设置可以通过ACL让指定的某个用户或用户组对某个文件设置特别的权限(后门) --公式
1
2
3
4
文件的ACL设置可以通过ACL让hzz用户对file文件设置---权限 --把韩壮壮和权限套进上面
的公式
[root@foundation0 test]# setfacl
set(设置),f(文件file),acl(访问控制列表)
[root@foundation0 test]# setfacl -m u:hzz:--- file
上面命令的意义就是设置hzz用户对file没有任何权限。
-m参数表示modify(修改)
u表示针对用户设置特殊的权限
u后面的"hzz"就是那个设置特殊的特殊权限的用户
hzz后面的"---"就表示针对hzz用户设置的权限
[hzz@foundation0 ~]$ cd /tmp/test/
[hzz@foundation0 test]$ ls -l
total 0
-rwxrw-r--+ 1 tgb lxs 0 Apr 18 20:14 file
[hzz@foundation0 test]$ cat file
cat: file: Permission denied
一旦针对文件设置了acl权限,那么该文件的9列权限后就会变成+,此时该文件表面上看到的权限全都
不一定生效。如果想看到该文件的真实权限,需要使用getfacl来查看
[hzz@foundation0 test]$ getfacl file
# file: file
# owner: tgb
# group: lxs
user::rwx
user:hzz:---
group::rwmask::rwother::r--
如何看一个文件的acl权限
#开头的有三列,分别表示的是文件的名字,文件的拥有人,文件的所属组。
#file:文件名
#owner:文件的拥有者
#gorup:文件的所属组
前三列之后,全部都是acl的表格内容。
表格的内容主要有两类,一类是user开头,一类是group开头,user开头表示该行是针对用户设置的
权限
group开头表示该行是针对用户组设置的权限
格式如下:
user:user1:rwx
user:user2:rw
group:group1:rwx
group:group2:rw
上面4行表示的意思是user1对该文件有rwx权限,user2对该文件有rw权限,group1组的用户对该
文件有rwx权限,group2组内的用户对该文件有rw权限。
我们都能清晰的看出来,“冒号”将3列分隔开了。
如果第一列是user,第二列没有值,就表示该行设置的是owner的权限。
如果第一列是group,第二列没有值,就表示该行设置的是group的权限
如果第一列是others,那么该行就表示对其他人的权限,others行总在最后一行。
[root@foundation0 test]# setfacl -m g:hzz:r-- file
[root@foundation0 test]# getfacl file
# file: file
# owner: tgb
# group: lxs
user::rwx
user:hzz:---
group::rwgroup:hzz:r--
mask::rwother::r--
问题,hzz对这个file有什么权限
[hzz@foundation0 test]$ cat file
cat: file: Permission denied
ACL表示由上至下匹配的,匹配到之后就停止匹配。
acl权限的添加,删除,修改,查看
[root@foundation0 test]# setfacl -x u:hzz file
[root@foundation0 test]# getfacl file
# file: file
# owner: tgb
# group: lxs
user::rwx
group::rwgroup:hzz:r--
mask::rwother::r--
[root@foundation0 test]# setfacl -x g:hzz file
[root@foundation0 test]# getfacl file
# file: file
# owner: tgb
# group: lxs
user::rwx
group::rwmask::rwother::r--
[root@foundation0 test]# ls -l
total 0
-rwxrw-r--+ 1 tgb lxs 0 Apr 18 20:14 file
[root@foundation0 test]# setfacl -b file
[root@foundation0 test]# ls -l
total 0
-rwxrw-r--. 1 tgb lxs 0 Apr 18 20:14 file
针对普通文件设置的acl权限就说到这。

针对目录设置acl权限

针对目录设置acl权限意义不大。
目录的权限只有3种组合才有意义
--- tgb
r-x xzz
rwx lxs
针对目录设置acl权限,意义不大。
因为普通的权限设置,只是针对3类人的,恰好,目录只有三种权限有意义,那么针对三类人分别设置这
3种权限就ok了。
一般我们对目录设置的acl权限和对普通文件设置的acl权限意义不一样。
我们希望对目录设置的acl权限是,当一个新的文件在目录中被创建的时候,默认携带的acl权限。
对目录设置默认的acl权限
[root@foundation0 tmp]# setfacl -m d:u:hzz:r test/
[root@foundation0 tmp]# getfacl test/
# file: test/
# owner: root
# group: root
user::rwx
group::r-x
other::r-x
default:user::rwx
default:user:hzz:r--
default:group::r-x
default:mask::r-x
default:other::r-x
多了一个default开头的行,default开头的所有字段,表示在该目录下创建文件,会继承的acl权限
mask表示该文件acl的最大权限,在default的acl权限存在的情况下,创建文件的acl权限,不能超
过mask指定的权限。
[root@foundation0 tmp]# touch test/file
[root@foundation0 tmp]# getfacl test/file
# file: test/file
# owner: root
# group: root
user::rwuser:hzz:r--
group::r-x #effective:r--
mask::r--
other::r--权限委派(生产环境必备)
[root@foundation0 tmp]# setfacl -m mask:r-x test/file
[root@foundation0 tmp]# getfacl test/file
# file: test/file
# owner: root
# group: root
user::rwuser:hzz:r--
group::r-x
mask::r-x
other::r--
针对目录设置acl权限,要求以后在该目录创建的文件,acl权限如下:
文件的拥有人有rwx权限
文件的所属组有rw权限
文件的其他人有r权限
hzz没有任何权限
[root@foundation0 tmp]# setfacl -m d:user::rwx test/
[root@foundation0 tmp]# setfacl -m d:group::rw test/
[root@foundation0 tmp]# setfacl -m d:other::r test/
[root@foundation0 tmp]# setfacl -m d:user:hzz:--- test/
[root@foundation0 tmp]# getfacl test/
# file: test/
# owner: root
# group: root
user::rwx
group::r-x
mask::rwx
other::r-x
default:user::rwx
default:user:hzz:---
default:group::rwdefault:mask::rwdefault:other::r--

权限委派(生产环境必备)

权限委派就是让普通用户能获得管理员权限的一种方式
我们在权限委派部分只会讲/etc/sudoers文件操作,不会将pam模块高级设计。
## Sudoers allows particular users to run various commands as
## the root user, without needing the root password.
sudoers文件允许特定的用户在运行某些命令的时候能将权限提升到和root一样,甚至不需要使用
root密码。进程管理(地位非常高)
作业调度
前台进程后台进程
服务
tgb ALL=(ALL) ALL
表示tgb用户能在任何地方运行任何命令
%tgb ALL=(ALL) ALL
表示tgb用户组内的用户能在任何地方运行任何命令
tgb ALL=/sbin/useradd
表示tgb用户只能运行useradd管理命令
%tgb ALL=(ALL) NOPASSWD: ALL
表示tgb用户组内的用户能在任何地方运行任何命令,且不需要输入tgb自己的密码
后面讲到ansible,所有的被管理主机都不能使用root权限操作,都需要使用普通用户提权到root来
进行自动化操作。
post installation,都会修改/etc/sudoes

相关文章:

Linux入门篇-权限管理

简介 用户管理也是和权限相关的知识点。权限的作用 权限对于普通文件和目录文件作用是不一样的 。[kioskfoundation0 ~]$ ls -l total 264 -rw-rw-r--. 2 kiosk kiosk 31943 May 29 2019 ClassPrep.txt -rw-rw-r--. 2 kiosk kiosk 7605 Jun 14 2019 ClassRHAPrep.txt -rw-rw-r…...

Linux(基于 Centos7) 常用操作

1.Linux 简介Linux 是一种 免费使用、自由传播的类 Unix 操作系统Linux操作系统内核,由林纳斯托瓦兹在1991年10月5日首次发布...Linux 是一套开源操作系统,它有稳定、消耗资源小、安全性高等特点大多数人都是直接使用 Linux 发行版(就是将 Li…...

Math类详解与Random类、三种随机数生成方式(java)

文章目录📖前言:🎀认识Random类🎀三种随机数生成方式🎀Math类的用途🎀Math类的方法📖前言: 本篇博客主要以介绍Math类的常用方法及认识Random类,及三种随机数生成方式 …...

Mac编译QT程序出现Undefined symbols for architecture x86_64

在Mac编写日志服务类, Logging_d.h内容如下 #pragma once #include <QLoggingCategory> Q_DECLARE_LOGGING_CATEGORY(hovering) Q_DECLARE_LOGGING_CATEGORY(creation) Q_DECLARE_LOGGING_CATEGORY(mouseevents) Q_DECLARE_LOGGING_CATEGORY(state) Q_DECLARE_LOGGING_C…...

蓝桥杯-李白打酒加强版

蓝桥杯-李白打酒加强版1、问题描述2、解题思路3、代码实现1、问题描述 话说大诗人李白, 一生好饮。幸好他从不开车。 一天, 他提着酒显, 从家里出来, 酒显中有酒 2 斗。他边走边唱: 无事街上走&#xff0c;提显去打酒。 逢店加一倍, 遇花喝一斗。 这一路上, 他一共遇到店 N 次…...

AtCoder Beginner Contest 292 (A - E) 记录第一场ABC

AtCoder Beginner Contest 292 A - E前言Q1 A - CAPS LOCKQ2 Yellow and Red CardQ3 Four VariablesQ4 D - Unicyclic ComponentsQ5 E - Transitivity前言 本来晚上在打Acwing周赛&#xff0c;最后一题Trie想不出来咋写&#xff0c;看群里有人说ABC要开始了&#xff0c;想着没…...

ubuntu安装使用putty

一、安装 安装虚拟机串口 sudo apt-get install putty sudo apt install -y setserial 二、使用 虚拟机连接串口 sudo setserial -g /dev/ttyS* 查看硬件对应串口 找到不是unknown的串口 sudo putty...

【CS144】Lab5与Lab6总结

Lab5与Lab6Lab汇总Lab5概述Lab6概述由于Lab5和Lab6相对比较简单&#xff08;跟着文档一步一步写就行&#xff09;&#xff0c;于是放在一起做一个简单概述&#xff08;主要是懒得写了…&#xff09; Lab汇总 Lab5概述 lab5要求实现一个IP与Ethernet&#xff08;以太网&#x…...

GDScript 导出变量 (Godot4.0)

概述 导出变量的功能在3.x版本中也是有的&#xff0c;但是4.0版本对其进行了语法上的改进。 导出变量在日常的游戏制作中提供节点的自定义参数化调节功能时非常有用&#xff0c;除此之外还用于自定义资源。 本文是&#xff08;Bilibili巽星石&#xff09;在4.0官方文档《GDScr…...

shell:#!/usr/bin/env python作用是什么

我们经常会在别人的脚本文件里看到第一行是下面这样 #!/usr/bin/python或者 #!/usr/bin/env python 那么他们有什么用呢&#xff1f; 要理解它&#xff0c;得把这一行语句拆成两部分。 第一部分是 #! 第二部分是 /usr/bin/python 或者 /usr/bin/env python 关于 #! 这个…...

计算机行业AIGC算力时代系列报告-ChatGPT芯片算力:研究框架

报告下载&#xff1a; 计算机行业AIGC算力时代系列报告-ChatGPT芯片算力&#xff1a;研究框架 简介 “AI算力时代已经来临&#xff0c;计算机行业正在经历着一场前所未有的变革&#xff01;” 这是一个充满活力和兴奋的时代&#xff0c;人工智能&#xff08;AI&#xff09;已…...

『MyBatis技术内幕』源码调试前提

准备源代码包 下载源代码 3.4.6 版本 https://github.com/mybatis/mybatis-3/releases?page2 通过 idea 导入然后回自动下载所有依赖&#xff0c;根据 3.4.6 版本的 pom.xml 找到依赖的 mybatis-parent 版本 <parent><groupId>org.mybatis</groupId><ar…...

# Linux最新2022年面试题大汇总,附答案

# Linux最新2022年面试题大汇总&#xff0c;附答案 ### [1、cp&#xff08;copy单词缩写&#xff0c;复制功能&#xff09;](最新2021年面试题大汇总&#xff0c;附答案.md#1cpcopy单词缩写复制功能) cp /opt/java/java.log /opt/logs/ ;把java.log 复制到/opt/logs/下 cp /…...

css中重难点整理

一、vertical-align 在学习vertical-align的时候&#xff0c;可能会很困惑。即使网上有一大推文章讲veitical-align,感觉看完好像懂了&#xff0c;等自己布局的时候用到vertical-align的时候好像对它又很陌生。这就是我在布局的时候遇到的问题。 本来vertical-align就很不好理…...

JavaScript-扫盲

文章目录1. 前言2. 第一个 JavaScript 程序3. javaScript 的基础语法3.1 变量3.2 数据类型3.3 运算符3.4 条件语句3.5 数组3.6 函数3.7 作用域3.8 对象4. WebAPI4.1 DOM 基本概念4.2 常用 DOM API4.3 事件4.4 操作元素4.5 网页版猜数字游戏4.6 留言版1. 前言 提问 java 和 java…...

bpftrace 笔记

bpftrace -e BEFIN {printf("hello world!\n");}获取调用 vfs_read 函数的进程id, 每2s打印一次 bpftrace -e kprobe:vfs_read {ID pid;} interval:s:2 {printf{"ID:%d\n", ID);}用户态调试 bpftrace -e uprobe:/*/a.out:and {printf("ID:%d\n&qu…...

DELL-Vostro-5468电脑 Hackintosh 黑苹果efi引导文件

原文来源于黑果魏叔官网&#xff0c;转载需注明出处。硬件型号驱动情况主板DELL-Vostro-5468处理器Intel Core i3-7100U 2.40 GHz, 3M Cache已驱动内存Samsung 8GB DDR4-2133MHz已驱动硬盘TOPMORE CAPRICORNUS NVMe 1TB已驱动显卡Intel HD Graphics 620已驱动声卡Realtek ALC2…...

阶段二11_面向对象高级_学生管理系统案例2

主要内容&#xff1a; 添加学生 static关键字一.添加学生时判断id是否存在 0.思路图片&#xff1a; 04/图片/2_添加学生判断id存在的问题分析.png 1.思路实现详细步骤&#xff1a; StudentController【客服接待】 /** 接收到学生id后&#xff0c;判断该id在数组中是否存在 这…...

spring源码篇(3)——bean的加载和创建

spring-framework 版本&#xff1a;v5.3.19 文章目录bean的加载bean的创建总结getBean流程createBean流程doCreateBean流程bean的加载 beanFactory的genBean最常用的一个实现就是AbstractBeanFactory.getBean()。 以ApplicationContext为例&#xff0c;流程是: ApplicationCon…...

Spring 中事务的传播级别

Spring 中事务的传播级别 REQUIRED(默认)&#xff1a;默认的隔离级别&#xff0c;如果当前存在一个事务&#xff0c;就加入该事务&#xff0c;如果当前没有事务&#xff0c;就创建一个新的事务。 REQUIRED_NEW&#xff1a;不管当前是否存在事务&#xff0c;都创建一个新的事物…...

ECharts可视化库--常用组件

目录 一.series系列 二.常见组件 1.标题title 2.图例legend 3.工具栏toolbox 4.提示框tooltip 5.坐标轴 xAxis yAsix 6.series系列 上一篇已经介绍了ECharts库的导入工作和绘制基本的图标&#xff0c;今天我们来了解一下常用的组件&#xff0c;如果对数据可视化感兴…...

openpnp - 设备开机后, 吸嘴校验失败的解决方法

文章目录openpnp - 设备开机后, 吸嘴校验失败的解决方法概述重新校验吸嘴ENDopenpnp - 设备开机后, 吸嘴校验失败的解决方法 概述 设备开机后, 默认会校验吸嘴座上已经安装的2个吸嘴. 如果开机校验吸嘴失败, 就需要用向导重新校验失败的吸嘴. 具体是哪个吸嘴校验失败, 可以看…...

【Linux学习】基础IO——软硬链接 | 制作动静态库

&#x1f431;作者&#xff1a;一只大喵咪1201 &#x1f431;专栏&#xff1a;《Linux学习》 &#x1f525;格言&#xff1a;你只管努力&#xff0c;剩下的交给时间&#xff01; 基础IO&#x1f353;软硬链接&#x1f332;软链接&#x1f332;硬链接&#x1f353;动静态库&…...

如何分辨on-policy和off-policy

on-policy的定义&#xff1a;behavior policy和target-policy相同的是on-policy&#xff0c;不同的是off-policy。 behavior policy&#xff1a;采样数据的策略&#xff0c;影响的是采样出来s,a的分布。 target policy&#xff1a;就是被不断迭代修改的策略。 如果是基于深度…...

第三讲:ambari编译后的安装包制作流程说明

一、概述 前两讲,我们已经将 Ambari 源码编译成功。现在我们想将 Ambari 编译后的 rpm 包,都放到 yum 本地仓库中,这样 Ambari 与 HDP 在安装部署时,就直接使用的我们自己编译的安装包了。 Ambari 的 rpm 包,有这么几类: ambari-server rpmambari-agent rpmambari metr…...

Python进阶-----面对对象6.0(绑定方法[类方法、静态方法]与内置方法)

目录 前言&#xff1a; 1.绑定方法 &#xff08;1&#xff09;实例方法 &#xff08;2&#xff09;类方法 &#xff08;3&#xff09;静态方法 2.类型检测 &#xff08;1&#xff09;issubclass() 函数 &#xff08;2&#xff09;isinstance() 函数 3.内置方法&#xf…...

java8四大基本函数式接口

1.什么是函数式接口? 只包含一个抽象方法的接口&#xff0c;称为函数式接口你可以通过Lambda表达式来创建该接口的对象。&#xff08;若Lambda表达式抛出一个受检异常&#xff0c;那么该异常需要在目标接口的抽象方法上进行声明&#xff09;我们可以在任意函数式接口上使用Fu…...

Junit测试框架

一、简介 Junit框架是一个开源的Java语言单元测试框架&#xff0c;Java方向使用最广泛的单元测试框架&#xff0c;使用Java开发者都应该学习Junit并能掌握单元测试的编写。 对于Junit和Selenium的关系&#xff1a;通俗点来说Selenium如果比喻为灯泡&#xff0c;那么Junit就是电…...

操作系统复习题

什么是线程&#xff1f; 线程&#xff08;Thread&#xff09;&#xff1a;轻量级进程&#xff0c;是操作系统进行调度的最小单位。一个线程是一个任务&#xff08;一个程序段&#xff09;的一次执行过程。线程不占有内存空间&#xff0c;它包括在进程的内存空间中。在同一个进程…...

web项目的初始化

Tomcat 安装配置 Tomcat 官方站点&#xff1a;Apache Tomcat - Welcome! 。 安装 得到下载的安装包&#xff08;一般是 zip 文件&#xff09;&#xff0c;并解压到你指定的目录&#xff08;建议不要解压在 c 盘&#xff09;&#xff1b;&#xff08;这里以 windows10 系统为例…...