自学Linux Shell7.3-linux共享文件

点击返回 自学Linux命令行与Shell脚本之路html

7.3-linux共享文件

在linux系统中共享文件的方法是经过建立组。linux

1. linux为每一个文件和目录存储了3个额外的信息位:

  • SUID设置用户ID 
    当文件被用户使用时,程序会以文件属主的权限运行
  • SGID设置组ID     
    对文件来讲,程序会以文件属组的权限运行
    对目录来讲,目录建立的新文件会以目录的默认属组做为默认属组
  • 粘着位    
    进程结束后文件还驻留在内存中

SUID设置用户ID用s表示。shell

  • 用户对应的前三位的x位上若是有,就用小s表示suid。当x位上没有x的时候,suid就是大写的S。
  • 设置用户ID位就是让普通用户能够以root或其余用户的权限运行只有root或其它用户才能运行的程序或命令,或程序命令对应原本没有权限操做的文件等。
  • 仅对二进制命令程序有效,不能用在shell等相似脚本文件上。shell脚本仅仅是调用二进制命令程序而已,所以,具体权限还须要看二进制命令自己。
  • 二进制命令程序须要有可执行权限x\
  • suid权限仅在程序执行过程当中有效。
  • 执行命令的任意用户能够得到该命令程序执行期间拥有这的权限。
  • suid是双刃剑,是一个比较危险的功能,对系统安全有必定的威胁。

SGID设置组ID    
与suid不一样,sgid既能够针对文件,也能够阵地目录设置。sgid是针对用户权限修改的。
sgid主要用在目录中,当为某个目录设置了sgid位之后,在该目录中建立的文件具备该目录的全部这权限,而不是建立该文件的用户的默认全部者。这样,使得在多个用户之间共享一个目录中的文件 变得简单。安全

 对文件,sgid功能以下:ui

  • sgid仅对二进制命令程序有效。
  • 二进制命令或程序须要可执行权限。
  • 执行程序的任意用户能够得到该命令程序执行期间所属组的权限。

 对目录,sgid功能以下:命令行

  • 用户在此目录下建立的文件和目录,具备和此目录相同的用户组设置。

粘着位 sticky bit htm

粘滞位功能用得少,不过对于/tmp目录这样的,是整个系统临时文件存放地,须要设置粘滞位。
一个目录即便开发全部权限rwxrwxrwx,若是设置了粘滞位,除非目录属主和root用户有权限删除它,其它用户不能删除这个目录。
让全部用户都具备/tmp目录全部权限,可是每一个用户只能删除本身的文件。用t表示,若是没有执行权限,那么就是T。/tmp目录谁均可以写,经常是木马第一手跳板地点。blog

 如上图,/tmp权限位最后一位是t。这就是设置了粘滞位。进程

2. 如何共享文件

经过以上的介绍,SGID位对共享文件很是重要,如下就是创建共享文件步骤:内存

  • 用mkdir命令建立共享目录
  • 经过chgrp命令将目录的默认属组改为包含全部须要共享文件的用户的组
  • 更改目录的SGID位置位,确保目录中的新建文件都用shared做为默认属组
  • 全部组成员将umask值设置成文件对属组成员可写
  • 最后,,组成员能到共享目录下建立新文件,同时shared组内的全部用户都能访问这个文件
相关文章
相关标签/搜索