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

7.3-linux共享文件

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

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

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

SUID设置用户ID用s表示。

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

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

 对文件,sgid功能如下:

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

 对目录,sgid功能如下:

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

粘着位 sticky bit 

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

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

2. 如何共享文件

通过以上的介绍,SGID位对共享文件非常重要,以下就是建立共享文件步骤:

  • 用mkdir命令创建共享目录
  • 通过chgrp命令将目录的默认属组改成包含所有需要共享文件的用户的组
  • 更改目录的SGID位置位,确保目录中的新建文件都用shared作为默认属组
  • 所有组成员将umask值设置成文件对属组成员可写
  • 最后,,组成员能到共享目录下创建新文件,同时shared组内的所有用户都能访问这个文件

自学Linux Shell7.3-linux共享文件的更多相关文章

  1. linux上挂载windows共享文件夹

    linux上挂载windows共享文件夹 1.共享windows目录 挂载之前得创建一个有password的用户(当前用户也能够),并将你要挂载的目录进行共享,并赋予读写权限 如图. watermar ...

  2. 配置VirtualBox Linux系统与Windows共享文件

    手动方式配置VirtualBox Linux系统与Windows共享文件 首先,要安装VirtualBox自带的扩展工具,这个ISO可以在虚拟主机安装目录下找到. 将这个文件Copy到你的Linux主 ...

  3. [Linux] - Windows与Linux网络共享文件夹挂载方法

    Windows与Linux网络SMB方式文件夹共享挂载 本示例系统: Windows 2003+ Linux-Centos/Ubuntu 本示例全为命令行操作,如何使用Windows.Linux命令行 ...

  4. linux(ubuntu)共享文件夹

    Linux系统的文件或目录的共享功能是非常强大,而且是非常灵活的,其对权限的控制可以做到非常的细致,当然如果你是通过命令行方式进行设置的 话,那么对于刚接触linux系统的用户来说将是一件十分头痛的事 ...

  5. (转)关于linux挂载window下共享文件

    关于linux挂载window下共享文件的方法: ①事先建立linux下文件夹,例如“ /mnt/linux-folder”②用mount命令挂载    mount -o username=windo ...

  6. VMware,win7与linux centos6.4文件互传,linux下挂载windows共享文件夹,vmware tools安装方法

    本方法是以win7,VMware9.0.1 ,centos6.4为基础实验的. 对于linux的初级使用阶段,都会Windows中使用linux虚拟机VMWare或者其它的.在Windows与linu ...

  7. VirtualBox中Linux虚拟机与主机共享文件夹

    VirtualBox中Linux虚拟机与主机共享文件夹 一.Linux虚拟机安装增强功能 二.点击虚拟机 设置-->选择 共享文件夹-->点击右侧的带加号的文件夹图标,执行下面的操作1. ...

  8. Linux基础与Linux下C语言编程基础

    Linux基础 1 Linux命令 如果使用GUI,Linux和Windows没有什么区别.Linux学习应用的一个特点是通过命令行进行使用. 登录Linux后,我们就可以在#或$符后面去输入命令,有 ...

  9. Linux基础-兄弟连Linux

    Linux基础增强与辅助知识梳理... ------------ Linux学习基础需要学习那些知识 学习Linux对于程序开发的好处 怎样开始学习Linux Linux的学习方法参考 Linux系统 ...

  10. 【转】Linux基础与Linux下C语言编程基础

    原文:https://www.cnblogs.com/huyufeng/p/4841232.html ------------------------------------------------- ...

随机推荐

  1. POJ3301 Texas Trip 计算几何、随机化贪心

    传送门--Vjudge 三分写法似乎有问题,可以去Udebug上看Morass的\(666\)个测试点的数据,我的乱搞有很多比正解答案小,但还是能在SPOJ和POJ过,可见数据之水. 可以对正方形的角 ...

  2. BZOJ3817 清华集训2014 Sum 类欧几里得

    传送门 令\(\sqrt r = x\) 考虑将\(-1^{\lfloor d \sqrt r \rfloor}\)魔改一下 它等于\(1-2 \times (\lfloor dx \rfloor \ ...

  3. BZOJ4985 评分 二分答案、DP

    传送门 题意:自己去看 答案满足单调性,所以考虑二分答案. 二分答案很好想,但是check并不是很好想. 考虑DP:设$f_i$表示队列中第$i$个人的分数$\geq \, mid$的代价,最开始$N ...

  4. C# webApi上传图片 代码篇

    十年河东,十年河西,莫欺少年穷 学无止境,精益求精 代码篇,不多说 如下: using System; using System.Collections.Generic; using System.D ...

  5. Luogu P3959 宝藏

    这道题正解是状压DP,不过我不会所以写一下随机化算法来骗骗分. 听说当时考场上就有很多写prim然后挂掉的神仙,其实这道题是可以prim过的 prim是一种基于贪心的算法,在本题中由于盲目的选择当前最 ...

  6. Luogu P2312 解方程

    据大佬的说法这种大力乱搞题出在除NOIp以外的任何比赛都是很好的然而就是被出在了NOIp 首先对于想直接上高精的同学,我还是祝你好运吧. 我们考虑一个十分显然的性质,若\(a=b\),则对于任一自然数 ...

  7. JQuery_自带的动画效果

    1.方法: show:显示选中元素. hide:隐藏选中元素. toggle:显示或隐藏选中元素. fadeIn:将选中元素的不透明度逐步提升到100%. fadeOut:将选中元素的不透明度逐步降为 ...

  8. 成功安装的Sublime Text3

    安装指南 1:下载官网:https://www.sublimetext.com/3 2:安装指南:https://jingyan.baidu.com/article/b0b63dbfe1b8ff4a4 ...

  9. first time to use github

    first time to use github and feeling good. 学习软件工程,老师要求我们用这个软件管理自己的代码,网站是全英的,软件也简单易用,方便 https://githu ...

  10. 《软件工程》小组团队项目-小学生四则运算APP(First Sprint)

    <软件工程>团队项目我们小组选择了小学生四则运算APP,在上学期原有的项目基础上进行更新升级.(自我感觉我们团队上学期的小学生四则运算APP是较为成功且实用的,不过这学期学习到了新的知识, ...