Linux中文件的权限

Linux中文件的权限

基本权限

  • 每个文件都有一个拥有用户User与拥有组Group
  • 文件的User可以不在Group
  • 除了UserGroup外,其余用户都是Others
  • 对于不同的身份,对文件有各自不同的权限操作
  • 权限有r,w,x三种权限分别表示可读,可写,可执行
可通过 ls -l 查看当前目录下文件的权限

total 164K
-rw-------  1 luzelin luzelin  558 Jul 25 12:23 .bash_history
-rw-r--r--  1 luzelin luzelin  220 Jul 25 09:52 .bash_logout
-rw-r--r--  1 luzelin luzelin 3.7K Jul 25 09:52 .bashrc
drwx------  2 luzelin luzelin 4.0K Jul 25 09:59 .cache

在这里插入图片描述

  
  

文件权限的修改

chmod :修改文件的权限

chmod 777 文件名 作用:将文件的权限修改为,三种身份全可读、可写、可执行(777转为2进制111 111 111)

chmod o+rwx 文件名 作用:将文件的others添加读、写、可执行权限(-=同理+

  
  

修改文件的所属者和所属组(扩展)

chown :修改文件的User

chown 用户名 文件名 (修改root用户的话,需要用sudo提权)

chown 用户名:组名 文件名 可以在修改User的同时修改Group

chgrp : 修改文件的Group

chgrp 组名 文件名

  
  

特殊权限SUID、SGID、SBIT

luzelin@DESKTOP-5VT4IIQ ~ % ls -ld /tmp/                                               
drwxrwxrwt 1 root root 4096 Mar 20 00:19 /tmp/

luzelin@DESKTOP-5VT4IIQ ~ % ls -l /usr/bin/passwd                                     
-rwsr-xr-x 1 root root 68208 May 28  2020 /usr/bin/passwd

非常奇怪,/tmp目录和 passwd文件的权限怎么怪怪的,怎么有st权限呢。看了下面的内容你就明白了。

  

SUID

  当s出现在二进制文件拥有者x权限上时,如我们上面看到的/usr/bin/passwd这个文件的权限时-rwsr-xr-x,此时就被称为SET UID简称SUID

SUID对于一个文件有什么限制和功能呢?

  • SUID权限仅对二进制可执行文件有效

  • 执行者对于该文件具有x的权限

  • 本权限仅在执行该文件的过程中有效

  • 执行者将具有该文件拥有者的权限

  例如普通用户用passwd修改自己的命令,实际上最终更改的是/etc/passwd文件. 此文件是用户管理配置文件,只有root权限才能更改。

luzelin@DESKTOP-5VT4IIQ ~ % ls -ld /etc/passwd                                         
-rw-r--r-- 1 root root 1810 Mar 17 23:19 /etc/passwd

既然是root用户才拥有此权限,为什么我们可以通过passwd命令来修改密码呢,那这就要归功于passwd命令设置了SUID权限位了。

luzelin@DESKTOP-5VT4IIQ ~ % which passwd                                               
/usr/bin/passwd

luzelin@DESKTOP-5VT4IIQ ~ % ls -l /usr/bin/passwd                                     
-rwsr-xr-x 1 root root 68208 May 28  2020 /usr/bin/passwd

此时普通用户通过执行passwd命令,临时拥有root权限,间接的修改/etc/passwd,以达到修改自己密码的权限。

  

SGID

s出现在目录或二进制文件所属组x权限上时,此时就称为SET GID简称SGID

SGID对文件和目录分部有哪些功能呢?

  • SGID对目录

    • 使用者若对于此目录具有 rx 的权限时,该使用者能够进入此目录

    • 使用者在此目录下的群组将会变成该目录的群组

  例如使用者在此目录下具有 w 的权限(可以新建文件),则使用者所创建的新文件,该新文件的群组与此目录的群组相同

  • SGID对文件

    • SGID 对二进制可执行文件有效

    • 程序执行者对于该文件来说,需具备 x 的权限。执行者在执行的过程中将会获得该文件群组的支援(用于该文件群组的权限)

  

SBIT

t出现在目录其他用户x权限上时,此时就称为Sticky Bit(粘滞位、防删除位),简称SBIT

SBIT有哪些限制和作用呢?

  • 仅对目录有效,对文件无效

  • 当使用者在该目录下建立文件或目录时(有权限的情况下),仅自己与 root 才有权力删除新建的目录或文件

  
  

特殊权限的修改

操作这些标志与操作文件权限的命令是一样的, 都是chmod. 有两种方法来操作,

(1)符号类型改变权限

chmod u+s testbintestbin文件加上setuid标志.

chmod g+s testdirtestdir目录加上setgid标志

chmod o+t testdirtestdir目录加上sticky标志

(2) 数字类型改变档案权限

  采用八进制方式。对一般文件通过三组八进制数字来置标志, 如 666, 777, 644等. 如果设置这些特殊标志, 则在这组数字之外外加一组八进制数字. 如 4666, 2777等. 这一组八进制数字三位的意义如下,

abc

a - setuid位, 如果该位为1, 则表示设置setuid 4

b - setgid位, 如果该位为1, 则表示设置setgid 2

c - sticky位, 如果该位为1, 则表示设置sticky 1

luzelin@DESKTOP-5VT4IIQ test % touch file  

luzelin@DESKTOP-5VT4IIQ test % ls -l file                                             
-rw-r--r-- 1 luzelin luzelin 0 Oct  2 00:17 file

luzelin@DESKTOP-5VT4IIQ test % chmod 7777 file                                         
luzelin@DESKTOP-5VT4IIQ test % ls -l file       
-rwsrwsrwt 1 luzelin luzelin 0 Oct  2 00:17 file

luzelin@DESKTOP-5VT4IIQ test % chmod 4477 file                                         
luzelin@DESKTOP-5VT4IIQ test % ls -l file                                             
-r-Srwxrwx 1 luzelin luzelin 0 Oct  2 00:17 file

设置完这些标志后, 可以用ls -l来查看. 如果有这些标志, 则会在原来的执行标志位置上显示. 如

rwsrw-r-- 表示有setuid标志

rwxrwsrw- 表示有setgid标志

rwxrw-rwt 表示有sticky标志

那么原来的执行标志x到哪里去了呢? 系统是这样规定的, 如果本来在该位上有x, 则这些特殊标志显示为小写字母 (s, s, t). 否则, 显示为大写字母 (S, S, T)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值