linux中用户对文件的权限

一、文件权限的意义及查看方法

1.文件权限存在的意义:是系统最底层安全设定方法之一,是保证文件可以被可用的用户做相应的使用

2.文件权限查看

如图:

写法及含义

  • ls  -l   文件      (可查看文件的属性与权限等数据)
  • ls  -ld  目录     (可查看目录本身的属性与权限等数据 )
  • ll         文件      (相当于ls -l 的用法)
  • ll    -d    目录     (相当于ls  -ld 的用法)

二、文件权限的读取

在查看文件权限时会出现例如下面的内容

-   |rw-rw-r--| 1 |root| root| 0 | Jul 21 09:18 | file

[1]    [2]        [3] [4]    [5]     [6]           [7]         [8]  

注:  -   |rw-rw-r--| 1 |root| root| 0 | Jul 21 09:18 | file   的含义

【1】  表示文件的类型

有以下几种:

  •    -    表示空文件或文本
  •    d    表示目录
  •     l    软链接   (连接文本)
  •    s     套接字    (数据接口文件)
  •    b      块设备     (设备文件里面的可供存储的接口设备)
  •    c      字符设备

【2】文件的权限

如    rw-    rw-     r--

     (1)(2)(3)

(1)[u]  代表文件所有者对文件的使用权限

(2)[g]   代表文件所有组对文件的使用权限

(3)[o]   代表其他人对文件的使用权限

【3】对文件:文件硬链链接个数  (文件内容被记录的次数)

         对目录:目录中子目录的个数

【4】文件的所有者

【5】文件的所有组

【6】对文件:文件的大小

         对目录:目录中子文件元数据大小

        注: 元数据(matedate可以理解为文件的属性)

【7】文件的内容被修改的时间

三、如何改变文件的所有者和所有组

1.chown   改变文件的所有者

方式:

  chown      username   file/dir      表示改变文件或目录的所有者

   chown      user.group file/dir   表示同时改变文件或目录的所有者和所有组

   chown -R   user.group  dir  (可以连目录下的所有子目录或文件都同时更改文件所有者)

2.chgrp    改变文件的所有组

方式:

  chgrp     group       file/dir    改变文件或目录的所有组

  chgrp -R  group        dir(可以连目录下的所有子目录或文件都同时更改文件所有组)

四、如何改变文件的权限

1.对权限的理解

  • r   可读(read)

 对文件:是否可以查看文件中的内容 

 对目录:是否查看目录中有什么子文件或者子目录

  • w   可写(write) 

  对文件:是否可以改变文件里面记录的字符

  对目录:是否可以对目录中子目录或子文件的元数据进行更改

  • x  可执行(execute)

  对文件:是否可以通过文件名称调用文件内记录的程序

  对目录:是否可以进入目录

2.权限更改方式

(1)符号类型改变文件权限

如下表所示:

chmod

u

g

0

+

-

=

r

w

x

文件或目录

 

 

 

例如:给文件的所有者加上 x 权限     即可使用  chmod   u+x   文件

           给文件的所有组去掉 r 权限      即可使用  chmod    g-r    文件

          其他人对文件有 rx 权限            即可使用  chmod 0=rx  文件

 操作如下图:

         去掉全部人对文件的 r 权限       即可使用   chmod   -r   文件

         同时给文件的所有者与所有组都去掉 r 权限           即可使用 chmod  ug-r   文件

         给文件的所有者去掉 r 权限,所有组加上 x 权限    即可使用   chmod u-r,g+x  文件

操作如下图:

(2)数字类型改变文件权限

  • rwx 的权限数分别为:r =4 , w=2, x=1
  • 算法:如 r-xr----x   [u]=4+0+1=5,[g]=4+0+0=4, [o]=0+0+1=1
  • 用法: chmod 541 file1  表示将这个文件的权限改为 r-xr----x

如图所示:

五、文件默认权限(umask)

1.临时更改umask (当重新打开一个shell时会自动恢复成默认)
当umask 为077 时,创建的文件权限是777-077-111=600

2.永久更改umask

一共分为三步:

(1)更改系统配置文件的 umask

(2)更改shell配置文件的umask

(3)立即让更改生效

      source /etc/profile  , source /etc/bashrc

如图: 

注:普通用户的 umask 002

       超级用户的 umask 022

       根据自己的用户身份去执行相应的操作

六、特殊权限

1.suid     冒险位

(1)作用

       只针对与二进制可执行文件

       本权限仅在执行该程序的过程中有效

       执行者将具有该程序所有者的权限

(2)  设定方式

      chmod u+s file /dir  或  chmod 4xxx file/dir

在没设定冒险位之前先 执行 watch  并查看其进程的所有者为 root

修改/bin/watch 的所有者,设定冒险位,执行watch ,查看其进程的所有者改为 student

 2.sgid       强制位

(1)作用

      对文件:只针对二进制可执行文件,当文件上有sgid时任何执行此文件产成的进程都属于文件的组

      对目录:当目录上有sgid权限时任何人在此目录中建立的文件都属于目录的所有组

(2)设定方式

      chmod g+s file /dir  或  chnod 2xxx file/dir

对文件:

用 ls 对 /bin/watch 进行查看,执行 watch -n 1 date  命令 ,使用 ps ax -o comm.user,group | grep watch 查看 进程,可以发现 watch 进程的所有组属于 root

修改 /bin/watch 的所有组为 student ,并且设置强制位,再次执行 watch ,使用 ps 对其进程进行查看,所有组变为 student

对目录:

在/mnt下创建 noah 目录,并查看其所有组属于 root

将目录中其他人的权限加上 w ,用普通用户在 noah 下进行操作,查看目录的所有组改为 普通用户

对目录设定强制位权限,并查看 目录权限, 其中出现 s 表示设定成功  再次进入普通用户,对/mnt进行操作

3.sticky     粘制位

(1)作用

    只针对目录生效,当一个目录上有sticky权限时,在这个目录中的文件只能被文件的所有者删除

(2)设定方式

     chmod 0+t  dir 或  chmod 1xxx dir

有以下步骤:

先建立一个 /cute 目录,在这个目录下创建 三个 文件,并查看文件权限。

将 目录及其里面的文件权限全改为 777

u

在设置粘滞位之前切换到普通用户,对/cute下的文件进行操作,发现可以执行。

使用 chmod 1777  /cute 设置粘滞位  可以发现 /cute 权限后面的 x 变成了 t 即表示设置成功。

再次切换到普通用户,对/cute进行操作,发现被拒绝。

七、acl 的使用

1.acl 的作用

 让特定的用户对特定的文件拥有特定的权限

2.acl 的设置技巧

getfacl : 可以查看某个文件或目录的 acl 设置项目

setfacl : 可以设置某个文件或目录的 acl 

(1)setfacl 命令用法

setfacl -m u:username:rwx file   设定username对file拥有rwx权限

setfacl -m g:group:rwz  file     设定group 组成员对file拥有rwx权限

setfacl -x u:username   file     从cal列表中删除username

setfacl -b file                  关闭file上的acl列表

(2)getfacl 命令用法

  #file :  file                文件名称

  #owner: root                 文件所有者

  #group: root                 文件所有组

  user: :rw-                  文件所有者的权限

  user:wstos:rwx              指定用户的权限

  group: :r--                 文件所有组的权限

  mask: :rwx                  能赋予用户的最大权力伐值

  0ther: :r--                 其他人的权限

3.mask 值

 mask 标示能生效的权力值,当用 chmod 减少开启 acl 的文件权限时 mask 值会发生变化

  chmod g-w westos

如果要恢复mask值使用:setfacl -m m:rw westos

4.acl 的默认权限设定

acl 默认权限只针对目录设定

acl权限只针对设定完成之后建立的文件或目录生效,而已经存在的文件是不会继续默认权限

操作如下:

先创建一个目录 /westos ,在/westos下创建 文件 ,切换成普通用户,对这个文件进行操作,发现权限被拒绝。

设定/westos的默认权限,在/westos下创建一个目录 noah 和 一个文件 file1

切换到普通用户,对设定默认权限的 /westos/file 进行操作,发现被拒绝。

对 设定默认权限后的 /westos/noah 和 /westos/file1 进行操作,发现可以操作。

  • 30
    点赞
  • 135
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值