当前位置: 首页 > 编程日记 > 正文

Linux中的粘滞位

Linux中的粘滞位

Sticky 位是一个访问权限标志位,可以用来标示文件和路径。

历史:

粘滞位是在1974年Unix的第5版中引入的,用来设置可执行文件。当可执行文件设置粘滞位之后,它能够指示操作系统在程序退出后,保留程序的代码段到swap空间。当程序再次执行时,内核只需将程序从swap搬到内存即可,这能够加速程序的执行。所以,频繁使用的程序比如编辑器能够更快的打开。目前,这种应用只是适用于HP-UX, NetBSD和UnixWare,Solaris在2005年放弃了这种应用,linux没有版本支持过这种行为。

当今使用:

当今,粘滞位最常用是应用于路径。当路径被设置粘滞位后,路径下的文件只有文件的owner, 或者root 才能够重命名、删除文件。如果没有粘滞位,任何用户,不管是不是owner, 只要有路径的写/执行权限就可以重命名、删除文件。典型的应用就是/tmp路径,粘滞位可以阻止一般用户删除/重命名其他用户的文件。这种特性首次引入是在1986年4.3BSD, 今天在现在的Unix系统中都可以找到这个特性。另外,Solaris定义了独有的行为:当粘滞位设置到非执行文件时,当访问这种文件时,内核将不会缓存。这常用于设置swap文件,用来阻止访问这些文件时冲刷掉系统缓存中更重要的数据。

Sticky bit在不同系统中的异同

HP-UX:当程序的最后一个用户退出时,阻止系统丢弃程序段swap-space image. 当下一个用户执行这个程序时,系统只需要swap in,而不需要重从磁盘新读入文件到内存,节约程序启动时间。

[...] prevents the system from abandoningthe swap-space image of the program-text portion of the file when its last userterminates. Then, when the next user of the file executes it, the text need notbe read from the file system but can simply be swapped in, thus saving time.

Linux: 当粘滞位设置到文件时,内核将会忽略。当设置路径时,路径中的文件只能够被root或者文件的owner重命名或者unlinked。

[...] the Linux kernel ignores the stickybit on files. [...] When the sticky bit is set on a directory, files in thatdirectory may only be unlinked or renamed by root or their owner.

举例:

Sticky bit 设置:

chmod 命令,可以用八进制模式1000或者它的符号t.

比如:添加粘滞位到路径/usr/local/tmp,

1.      chmod +t /usr/local/tmp

2.      chmod 1777 /usr/local/tmp

在Unix 文件系统 符号中,sticky bit t 是在最后一位。比如:在Solaris 8, /tmp路径默认有粘滞位,如下:

$ ls -ld /tmp
 drwxrwxrwt   4 root     sys          485 Nov 10 06:01 /tmp
如果粘滞位设置的路径或者文件没有可执行(x)位,它的符号用T(大写的t)
# ls -l test
 -rw-r--r--   1 root     other          0 Nov 10 12:57 test
 # chmod +t test; ls -l test
 -rw-r--r-T   1 root     other          0 Nov 10 12:57 tes

From http://en.wikipedia.org/wiki/Sticky_bit


相关文章:

Java项目:实现权限管理系统(java+SpringBoot+MyBatis+AOP+LayUI+Mysql)

源码获取:博客首页 "资源" 里下载! springbootmybatis使用面向切面编程(AOP)实现的权限管理系统。 共五个模块,角色管理,菜单管理,实验室管理,学生管理,管理员…

阅读10、11、12章

第10章 假设用户交付给我们一个 任务,然后我们通过调研的出来的结果进行设计,最后的结果跟用户想象的不一样,这应该怎么做? 第11章 团队合作真的需要有那么繁琐的步骤(例如每日例会)吗? 第12章 …

SQL删除重复数据方法

原文:SQL删除重复数据方法例如: id name value 1 a pp 2 a pp 3 b iii 4 b pp 5 b …

#pragma once与#ifndef

在C/C中,在使用预编译指令#include的时候,为了防止重复引用造成二义性的两种方法。 #ifndef 它不光可以保证同一份文件不会被包含两次,也能够保证不同文件完全相同的内容不会被包含两次。但,同样的,如果自定义的宏名不…

grep 在HP-UX下的递归查找

grep 在HP-UX下的递归查找Linux: man grep 可以看到 -r 选项-R, -r, --recursiveRead all files under each directory, recursively; this is equivalent to the -d recurse option.即:-r 选项可以查找指定目录下每个子目录下的所有文件eg:grep -r "28281&quo…

Java项目:实现个人博客系统(java+springboot+mybatis+redis+vue+elementui+Mysql)

源码获取:博客首页 "资源" 里下载! springbootmybatis前端vue,使用前后端分离架构实现的个人博客系统,共7个模块,首页,写博客,博客详情页,评论管理,文章分类&a…

软件工程--总作业(已经完成)

用户调研:http://www.cnblogs.com/OuZeBo/p/4580146.htmlalpha阶段总结:http://www.cnblogs.com/OuZeBo/p/4580146.html对其他组评价的反馈:已评论其他组,暂时没有其他组对我们组进行评论描述项目的典型用户与场景:已完…

linux各文件夹的作用域

目錄應放置檔案內容/bin系統有很多放置執行檔的目錄,但/bin比較特殊。因為/bin放置的是在單人維護模式下還能夠被操作的指令。在/bin底下的指令可以被root與一般帳號所使用,主要有:cat, chmod, chown, date, mv, mkdir, cp, bash等等常用的指…

LOJ 2721 「NOI2018」屠龙勇士——扩展中国剩余定理

题目:https://loj.ac/problem/2721 1.注意别一输入 p[ i ] 就 a[ i ] % p[ i ] ,因为在 multiset 里找的时候还需要真实值。 2.注意用 multiset 。并且,因为要 upper_bound( a[ i ] ) ,而 a[ i ] 是一个 long long 类型的&#xf…

setuid和setgid

setuid 和 setgid (全称分别是:set user ID upon execution 和 set group ID upon execution)是Unix的访问权限标志位,它允许 用户以可执行文件owner或group的权限来运行这个可执行文件。它们经常适用于:为了运行特定的任务,可以允…

Java项目:宠物医院预约挂号系统(java+JSP+Spring+SpringBoot+MyBatis+html+layui+maven+Mysql)

源码获取:博客首页 "资源" 里下载! 一、项目简述功能包括: 用户分为宠物,医生,管理员,宠物主人可进行注册选择医生挂号,选择日期,选择号源,医生可进行宠物接诊…

大智慧面试经验

15-06-18下午1点,大智慧面试; 面试题全英文,第一部分基础的,诸如echo print printf的区别,include与require的区别等; 第二部分细节方面的,如在string中\n的意义,ucwords函数&#x…

Android 获取apk签名的fingerprint

为什么80%的码农都做不了架构师?>>> 假定安装了JDK,如果想查HelloWorld.apk所使用的签名的fingerprint,可以这样做:1. 查找apk里的rsa文件 (Windows) > jar tf HelloWorld.apk |findstr RSA…

Dinic二分图匹配 || Luogu P3386

题面:【模板】二分图匹配 思路:Dinic实现二分图匹配,要建一个超级源点(S)和超级汇点(T),分别定为NM1和NM2 然后S去和N中的数建正边和反边,正边权值为1,反边权…

shell中引号的使用方法

1. shell使用引号(单引号/双引号)和反斜线("\")用于向shell解释器屏蔽一些特殊字符. 反引号[h2] 对shell则有特殊意义. 1.1 单引号和反斜线 [h1] 可以阻止shell代入变量的值; 1.2 双引号不能阻止代入 例如: sles10i32-1:han$ personha…

Java学习笔记(二)不定时更新

Java语言画图 package cn.witksy.dev;import javax.imageio.ImageIO; import java.awt.*; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException;/*** Author: Alfred* Created: 2015/5/7*/ public class Main {public void run() {Buffered…

Java项目:前台后台玩具商城系统(java+JSP+SSM+Springboot+Jsp+maven+Mysql)

源码获取:博客首页 "资源" 里下载! 一、项目简述本系统主要实现的功能有: 网上商城系统,前台后台管理,用户注册,登录,商品展示,分组展示,搜索,收货…

Tempdb数据库详细介绍

Tempdb数据库详细介绍一、Tempdb简介tempdb是SQLServer的系统数据库一直都是SQLServer的重要组成部分,用来存储临时对象。可以简单理解tempdb是SQLServer的速写板。应用程序与数据库都可以使用tempdb作为临时的数据存储区。一个实例的所有用户都共享一个Tempdb。很明…

java——逻辑运算符与(和)或(|和||)

区别: 1意思不同: &&是“与”的意思,||是“或者”的意思。 2 使用上不同:a && b:a和b同时为true 才返回 true, 否则返回false;a || b:a或b任意一个为true 就返回tru…

UTRAN 的用户面和控制面

UTRAN接口的通用协议模型如下图: 通俗地讲,通讯网络由终端(terminal)、连接(links)、网络节点(nodes)组成, links将nodes 关联起来。源终端(MO)发送的消息是怎样才能到目的终端(MT)呢? 消息经过links 和nodes,直至到达MT,其中关键是nodes怎么…

Java项目:疫情人员流动管理系统(java+JSP+SSM+Springboot+maven+Mysql)

源码获取:博客首页 "资源" 里下载! 一、项目简述 本系统主要实现的功能有: 社区疫情流动人员管理系统,住户管理,出入管理,访客管理,体温录入,高风险警示等等。 二、项目运…

[原创]CentOS下Mysql双机互为备份

一、环境: 1.安装Centos-6.5-x64位系统的机器两台: host1:192.168.2.3 host2:192.168.2.4 (互相能ping通) 2.安装Mysql。 命令:Yum install mysql-* 二、配置: 1、启动mysql。命令&…

《Effective Java》读书笔记--创建和销毁对象

2019独角兽企业重金招聘Python工程师标准>>> 考虑用静态工厂方法代替构造函数。 当我们在写一个工具类时,是不希望用户将该类实例化的,所以应该定义一个private的构造函数,而不 是将类声明成abstract,因为这样用户可以…

用chrome的snippets片段功能创建页面js外挂程序,从控制台创建js小脚本

用chrome的snippets片段功能创建页面js外挂程序,从控制台创建js小脚本 Chrome的snippets是小脚本,还可以创作并在Chrome DevTools的来源面板中执行。可以访问和从任何页面运行它们。当你运行一个片段,它从当前打开的页面的上下文中执行。 要创…

两个类相互包含引用的问题--类前向声明

在构造自己的类时,有可能会碰到两个类之间的相互引用问题,例如:定义了类A类B,A中使用了B定义的类型,B中也使用了A定义的类型 class A { int i; B b; } class B { int i; A* a; } 请注意上面的定义内…

Java项目:网上电子书城项目(java+SSM+JSP+maven+Mysql)

源码获取:博客首页 "资源" 里下载! 项目描述: spring mvc jsp实现的简单书城项目,可以在支付宝沙箱内实现支付 运行环境: jdk8tomcat9mysqlIntelliJ IDEA 项目技术: springspring mvcmybati…

[nowCoder] 局部最小值位置

定义局部最小的概念。arr长度为1时&#xff0c;arr[0]是局部最小。arr的长度为N(N>1)时&#xff0c;如果arr[0]<arr[1]&#xff0c;那么arr[0]是局部最小&#xff1b;如果arr[N-1]<arr[N-2]&#xff0c;那么arr[N-1]是局部最小&#xff1b;如果0<i<N-1&#xff…

log parser 微软iis 日志分析

Log Parser 2.2 您可以从 Microsoft 下载中心下载 Log Parser。 Log Parser 2.2 是一个功能强大的通用工具&#xff0c;它可对基于文本的数据&#xff08;如日志文件、XML 文件和 CSV 文件&#xff09;以及 Windows 操作系统上的重要数据源&#xff08;如事件日志、注册表、文件…

ubuntu 大小写指示的小工具

最近买个了小本lenovo x100e&#xff0c;结果发现这小本没有大小写指示灯&#xff0c;在windows用也无妨&#xff0c;不过我常常用这本在ubuntu中调试linux代码&#xff0c;vi 常用的编辑器&#xff0c;熟悉的都知道&#xff0c;大小写很关键的&#xff0c;用google搜了一下&am…

mysql主键约束和唯一性约束

主键约束和唯一性约束都是索引&#xff0c;它们的区别是&#xff1a; 主键字段可以确保唯一性&#xff0c;但主键字段不能为NULL.唯一性约束可以确保唯一性&#xff0c;但唯一性约束的字段可以为NULL唯一性约束对含有NULL的记录不起作用&#xff0c;即可以重复加入含有NULL的记…