基本文件权限

 

目录

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Linux系统中,我们可以使用chmod命令来改变文件的权限。 chmod命令用于修改文件或目录的访问权限,它可以控制文件或目录的读、写和执行权限。一般情况下,文件权限分为三个级别:用户、用户组和其他用户。 使用chmod命令改变文件权限基本语法是: chmod [权限模式] 文件名 权限模式可以使用数字表示或符号表示。数字表示的权限模式是由三位数字组成,每位数字分别代表用户、用户组和其他用户的权限,分别对应读、写和执行权限。其中,读权限用4表示,写权限用2表示,执行权限用1表示。我们可以使用这些数字的和来表示某一级别的对应权限。例如,如果想将文件的权限设置为读写权限,即用户可以读写但不能执行,可以使用chmod 600 文件名。 符号表示的权限模式是由字母和运算符组成。字母用来指定权限的级别,'u'代表用户级别,'g'代表用户组级别,'o'代表其他用户级别,'a'代表所有用户级别。运算符用来指定操作,'+'代表增加权限,'-'代表减少权限,'='代表设置权限。例如,如果想将文件的用户和用户组的执行权限关闭,可以使用chmod ugo-x 文件名。 改变文件权限前,我们需要确认自己是否对该文件拥有足够的权限。对于普通用户,只能修改自己的文件权限。 总的来说,通过使用chmod命令,我们可以方便地改变Linux系统中文件的权限,以保护文件的安全性和完整性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值