基本文件权限

  • Post author:
  • Post category:其他



目录


1.文件权限管理1.1基本权限UGO


1.2设置权限


1.3更改权限


2.权限案例UGO


2.1设置权限案例


2.2rwx对文件的影响实战案例1:rwx对文件的影响


2.3rwx对目录的影响实战案例2:对目录没有w,对目录下的文件有rwx


2.4实战案例4:对目录有r和没有r的区别


2.5实战案例5:对目录有x,和没有x的区别


2.6@@@对文件的影响


2.7权限掩码umask用户掩码


2.8###root用户默认最高权限


2.9高级权限高级权限suid  sgid  sticky


3.高级权限的类型


3.1设置特殊权限


3.2案例一(suid    chmod u+s     )


3.3案例二(sgid    chmod g+s        )


3.4案例三 (sticky   chmod o+t     )


4.目前给普通用户提权手段   4.1 放开所有命令使用权


4.2 放开个别命令使用权


1.文件权限管理

1.1基本权限UGO


权限对象:

属主——->u

属组——->g

其他人—–>o

基本权限类型

读(read):r———>4

写(write):w——–>2

执行(exec):x——->1

案例

r   w   x                 r   w  –                  r–               alice      hr        file1.txt

属主权限              属组权限               其他人权限    属主     属组       文件

1.2设置权限


chown:改变文件或目录的所属主以及所属组

chmod:为文件或目录设置访问目录

chown

chown 属主.属组  文件名    //修改属主,属组

chown  属主    文件名     //修改属主

chown  .属组   文件名    //只改属组

chown -R 属主.属组   目录名   //递归修改–针对目录(连同目录下内容一起修改)


1.3更改权限


a.使用符号

对象:u(属主)   g(属组)     o(其他人)      a(所有人)

赋值号   +      –        =

权限类型  r     w     x

chmod u+x file1.txt       //属主增加执行

chmod a=rwx  file1.txt   //所有人等于读写执行

chmod  a=-  file1.txt     //所有人都没有权限

chmod ug=rw ,o=r   file1.txt   //属主属组等于读写,其他人只读

b.使用数字

chmod 644 file1.txt   //rw-r–r–

chmod 755 file1.txt  //rwxr-xr-x

2.权限案例UGO

2.1设置权限案例


1.root用户和hr组的员工可以读,写,执行

2.其他用户没有任何权限

groupadd hr    //创建一个用户

useradd hr01 -G hr   //创建hr01用户添加hr组里

useradd hr02 -G hr   //创建hr02用户添加到hr组里

mkdir /home/hr       //在/home下创建一个hr目录

chown  .hr /home/hr   //将/home/hr目录的所属组设置成hr

chmod 770 /home/hr //将/home/hr的权限设置成770

ll -d /home/hr      //查看/home/hr/目录本省的权限(rwxrwx—)

2.2rwx对文件的影响

实战案例1:rwx对文件的影响


vim /home/file1     //往文件中写入内容(date)

ll /home/file1     //查看文件权限

su – alice     //切换到普通用户

cat /home/file1     //查看问件,权限足够

/home/file1     //执行文件里面的内容,权限不够

chmod o+x /home/file1  //给文件加上执行权限

chmod 0+w /home/file1  //给文件加上写权限

vim /hime/file1     //可以更改文件内容

2.3rwx对目录的影响

实战案例2:对目录没有w,对目录下的文件有rwx


mkdir /dir10   //创建目录

touch /dir10/file1   //在目录下创建文件

chmod 777 /dir10/file1    //给目录下的文件全部权限

su – alice    //切换到alice用户

cat /dir10/file1    //可以查看目录下的文件

rm -rf /dir10/file1    //权限不够

touch /dir10/file1    //权限不够

实战案例3:对目录有w,对文件没有任何权限

chmod 777 /dir10/   //给目录所有权限

chmod 000 /dir10/dile1 // 给目录下的文件不分配任何权限

su – alice  //切换到alice用户

cat /dir/file1   //没有权限查看

rm -rf /dir/10/file1    //可以删除文件

touch /dir10/file1    //可以创建文件


2.4实战案例4:对目录有r和没有r的区别

chmod 070 /dir10/   //其他用户没有权限

su – alice    //切换用户

ll /dir10/      //没有权限

chmod 074 /dir10   //给其他用户分配读权限

su – alice   //切换用户

ls /dir10/  //会显示没有权限,但会列出目录下内容


2.5实战案例5:对目录有x,和没有x的区别


chmod 770 /dir10/    //其他用户没有权限

su – alice  //切换用户

cd /dir10/      //没有权限

chmod o+w /dir10/    //给其他用户分配执行权限

su – alice    //切换用户

cd    /dir10/      //可以访问目录

2.6

@@@对文件的影响


r———>cat

w——–>vi,vim

x———>bash /dir/file   (执行文件里的内容)

对目录的影响

r——->ls  ll

w——>touch,rm

x——->cd(可以进入目录)

2.7权限掩码

umask用户掩码


0022  root账户默认

0002  普通用户默认


2.8###root用户默认最高权限


目录777  文件666

###通过计算root用户创建文件目录的权限为

目录:755

文件:644

#umask   0111   //修改umask

2.9高级权限

高级权限suid  sgid  sticky


问题一:为什么会失败

chmod root.root /root/file1.txt       //修改文件的所属主和所属组

vim /root/file1.txt          //向文件中加入123内容

ll /root/file1.txt          //查看权限,发现有读权限

su – alice    //进入用户

cat /root/file1.txt     //没有权限查看


3.高级权限的类型


suid====4 提权    (只对二进制命令文件生效,其他无用)

sgid====2组继承    (只对目录生效)

sticky===1     权限控制


3.1设置特殊权限


a.字符—语法

chmod u+s   file

chmod g+s   dir

chmod o+t   dir

b.数字

chmod 4777   file

chmod 2770   dir

chmod 1770   dir


3.2案例一(suid    chmod u+s     )


sudo    普通用户通过suid提权      <针对二进制命令文件>

chmod u+s /usr/bin/cat       //给cat命令文件提权

chmod u+s /usr/bin/rm      // 给rm命令文件提权

su – alice        //切换用户

cat /root/file1.txt      //可以使用cat命令

rm -rf /root/file1.txt   //可以使用rm命令

chmod u-s /usr/bin/rm   //取消提权


3.3案例二(sgid    chmod g+s        )


把s放到文件的所属用户组的x位置上的话,就是SGID。那么SGID的功能是什么呢?

和SUID一样,只是SGID是获得该程序所属用户组的权限。

SGID主要用在目录上—–如果用户在此目录下具有w权限的话,使用者在此目录下建立新文件,

则创建的这个文件的群组与此目录的群组相同。(简单地说新创建内容与所在目录属的组相同)

[root@linux-server ~]# mkdir /opt/dir1  #创建目录

[root@linux-server ~]# groupadd hr  #创建一个组

[root@linux-server ~]# chmod 775 /opt/dir1/  #设置权限

[root@linux-server ~]# ll -d /opt/dir1/

drwxrwxr-x. 2 root root 6 Nov  6 21:26 /opt/dir1/

[root@linux-server ~]# chown .hr /opt/dir1/  #设置属组

[root@linux-server ~]# chmod g+s /opt/dir1/  #设置sgid

[root@linux-server ~]# ll -d /opt/dir1/

drwxrwsr-x. 2 root hr 6 Nov  6 21:26 /opt/dir1/

[root@linux-server ~]# touch /opt/dir1/a.txt

[root@linux-server ~]# ll /opt/dir1/a.txt

-rw-r–r–. 1 root hr 0 Nov  6 21:33 /opt/dir1/a.txt

[root@linux-server ~]# chmod o+w /opt/dir1/ -R

[root@linux-server ~]# su – alice

Last login: Wed Nov  6 21:34:59 CST 2019 on pts/2

[alice@linux-server ~]$ touch /opt/dir1/b.txt

[alice@linux-server ~]$ ll /opt/dir1/b.txt

-rw-rw-r–. 1 alice hr 0 Nov  6 21:35 /opt/dir1/b.txt

3.4案例三 (sticky   chmod o+t     )


BIT(Sticky Bit)目前只针对目录有效,

对于目录的作用是:当用户在该目录下建立文件或目录时,仅有自己与 root才有权力删除。

[root@linux-server ~]# cd /home/

[root@linux-server home]# mkdir dir2

[root@linux-server home]# chmod 757 dir2/

[root@linux-server home]# chmod o+t dir2/

[root@linux-server home]# ll -d dir2/

drwxr-xrwt. 2 root root 52 Oct 31 16:49 dir2/

[root@linux-server home]# useradd jack  #创建用户

[root@linux-server home]# su – alice

Last login: Wed Nov  6 21:48:12 CST 2019 on pts/2

[alice@linux-server ~]$ touch /home/dir2/alice.txt  #用户alice创建文件

[alice@linux-server ~]$ exit

logout

[root@linux-server home]# su – jack

Last login: Wed Nov  6 21:48:36 CST 2019 on pts/2

[jack@linux-server ~]$ touch /home/dir2/jack.txt   #用户jack创建文件

[jack@linux-server ~]$ rm -rf /home/dir2/alice.txt

rm: cannot remove ‘/home/dir2/alice.txt’: Operation not permitted

测试jack删除alice创建的文件,无法删除

4.目前给普通用户提权手段

4.1 放开所有命令使用权


配置解释:

root表示用户名

第一个 ALL 指示允许从任何终端、机器访问 sudo

第二个 (ALL) 指示 sudo 命令被允许以任何用户身份执行

第三个 ALL 表示所有命令都可以作为 root 执行

[root@linux-server ~]# visudo    #打开配置文件

90 ##

91 ## Allow root to run any commands anywhere

92 root    ALL=(ALL)       ALL

93 jack    ALL=(ALL)       NOPASSWD: ALL   #添加内容

94 ## Allows members of the ‘sys’ group to run networking, software,

测试

[root@linux-server ~]# su – jack

Last login: Wed Nov  6 22:04:46 CST 2019 on pts/2

[jack@linux-server ~]$ sudo mkdir /test1

4.2 放开个别命令使用权


[root@linux-server ~]# visudo

91 ## Allow root to run any commands anywhere

92 root    ALL=(ALL)       ALL

93 jack    ALL=(ALL)       NOPASSWD:ALL

94 alice   ALL=(ALL)       NOPASSWD:/usr/bin/mkdir, /usr/bin/rm, /usr/bin/touch

95

96 ## Allows members of the ‘sys’ group to run networking, software,

测试:

[root@linux-server ~]# su – alice

Last login: Fri Jul 24 00:52:13 CST 2020 on pts/1

[alice@linux-server ~]$ touch /file

touch: cannot touch ‘/file’: Permission denied

[alice@linux-server ~]$ sudo touch /file



版权声明:本文为qq_46042388原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。