自学Linux Shell7.3-linux共享文件
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共享文件的更多相关文章
- linux上挂载windows共享文件夹
linux上挂载windows共享文件夹 1.共享windows目录 挂载之前得创建一个有password的用户(当前用户也能够),并将你要挂载的目录进行共享,并赋予读写权限 如图. watermar ...
- 配置VirtualBox Linux系统与Windows共享文件
手动方式配置VirtualBox Linux系统与Windows共享文件 首先,要安装VirtualBox自带的扩展工具,这个ISO可以在虚拟主机安装目录下找到. 将这个文件Copy到你的Linux主 ...
- [Linux] - Windows与Linux网络共享文件夹挂载方法
Windows与Linux网络SMB方式文件夹共享挂载 本示例系统: Windows 2003+ Linux-Centos/Ubuntu 本示例全为命令行操作,如何使用Windows.Linux命令行 ...
- linux(ubuntu)共享文件夹
Linux系统的文件或目录的共享功能是非常强大,而且是非常灵活的,其对权限的控制可以做到非常的细致,当然如果你是通过命令行方式进行设置的 话,那么对于刚接触linux系统的用户来说将是一件十分头痛的事 ...
- (转)关于linux挂载window下共享文件
关于linux挂载window下共享文件的方法: ①事先建立linux下文件夹,例如“ /mnt/linux-folder”②用mount命令挂载 mount -o username=windo ...
- VMware,win7与linux centos6.4文件互传,linux下挂载windows共享文件夹,vmware tools安装方法
本方法是以win7,VMware9.0.1 ,centos6.4为基础实验的. 对于linux的初级使用阶段,都会Windows中使用linux虚拟机VMWare或者其它的.在Windows与linu ...
- VirtualBox中Linux虚拟机与主机共享文件夹
VirtualBox中Linux虚拟机与主机共享文件夹 一.Linux虚拟机安装增强功能 二.点击虚拟机 设置-->选择 共享文件夹-->点击右侧的带加号的文件夹图标,执行下面的操作1. ...
- Linux基础与Linux下C语言编程基础
Linux基础 1 Linux命令 如果使用GUI,Linux和Windows没有什么区别.Linux学习应用的一个特点是通过命令行进行使用. 登录Linux后,我们就可以在#或$符后面去输入命令,有 ...
- Linux基础-兄弟连Linux
Linux基础增强与辅助知识梳理... ------------ Linux学习基础需要学习那些知识 学习Linux对于程序开发的好处 怎样开始学习Linux Linux的学习方法参考 Linux系统 ...
- 【转】Linux基础与Linux下C语言编程基础
原文:https://www.cnblogs.com/huyufeng/p/4841232.html ------------------------------------------------- ...
随机推荐
- Nginx URL后面不加斜杠301重定向
今天开发碰到一个问题,其实之前就有这个问题,但是一直都没去关注,今天测试碰到了就解决一下. 问题情况: 当我请求 http://admindev.jingruiauto.com/store/views ...
- 关于小程序登录时获取openId和unionId走过的坑
目前的项目是在做小程序这方面的,接触过的人应该都知道,同一个微信开放平台下的相同主体的App.公众号.小程序的unionid是相同的,这样就可以锁定是不是同一个用户.微信针对不同的用户在不同的应用下都 ...
- [Oracle]In-Memory的Join Group 位于内存的何处?
In-Memory的Join Group 的数据字典位于内存的何处? 有客户问到,使用Oracle 的In-Memory功能时,如果用到了 Join Group,那么这些这些Join Group,位于 ...
- dp方法论——由矩阵相乘问题学习dp解题思路
前篇戳:dp入门——由分杆问题认识动态规划 导语 刷过一些算法题,就会十分珍惜“方法论”这种东西.Leetcode上只有题目.讨论和答案,没有方法论.往往答案看起来十分切中要害,但是从看题目到得到思路 ...
- qa_model
[code=python] import os import sys import time import numpy import shelve import theano import thean ...
- text3
GitHub地址https://github.com/gaodejian/gaodejian/blob/master/firework 课题研究的目的和意义 java编程语言在编程方面的具体应用,以及 ...
- 递归拼装Tree结构数据
@Override public List<Map<String, Object>> queryListTree() { List<Map<String,Objec ...
- maven私服 Nexus2.x.x私服安装配置
一.Nexus的下载和安装 1.下载nexus ,下载地址:https://www.sonatype.com/download-oss-sonatype 2.打开目录nexus-2.x.x-xx-b ...
- 通过JDOM实现XML与String的相互转换
利用JDOM实现XML与String之间的相互转换: package com.util.xml; import java.io.ByteArrayOutputStream; import java.i ...
- [cnblog新闻]历史性时刻:云硬件支出首次高于传统硬件
https://news.cnblogs.com/n/617487/ 据调研公司 IDC 声称,2018 年第三季度云硬件支出占 IT 总收入的 50.9%. 知名调研公司 IDC 声称,面向云的 I ...