linux 文件怎么不让删,请问如何设置权限,可以禁止用户删除文件

原帖由 WHITLACK 于 2009-9-28 08:48 发表 thread-1956190-1-1.html

针对某个文件,如何设置权限,可以禁止删除?

文件权限的r-w-x好像不能禁止删除的啊,

谢谢指教!

1:使用粘滞位可以做到,下面是介绍.

强制位与冒险位、粘滞位

针对u,g,o,分别可设 set uid,set gid,及sticky bit(粘滞位)。

强制位与冒险位、粘滞位添加在执行权限的位置上。如果该位置上原已有执行权限,则强制位与冒险位以小写字母s或t的方式表示;否则,以大写字母表示,大写字母S、T表示为空。(因为文件本身就不具备执行权限,那就没有权限给其他人使用了,所以为空。)

set uid与set gid在u和g的x位置上各采用一个s,sticky使用一个t。

suid: 意味着如果某个用户对属于自己的程序(只适用于二进制程序且对目录无效)设置了这种权限,那么其他用户在执行这程序时,就会暂时具有该文件拥有者的权限,完成之后恢复对应的权限。 对于shell脚本无效,因为shell脚本是将很多二进制执行文件调用而已,所以suid的权限部分还是要看shell脚本调用进来的程序设置,而不是shell脚本本身。

例如password命令

[root@node1 ~]# ll /usr/bin/passwd

-rwsr-xr-x 1 root root 22960 Jul 17  2006 /usr/bin/passwd

[root@node1 ~]#

sgid: 可以用在两个方面:

文件:如果sgid设置在二进制文件上,则不论用户是谁,执行该程序的时候,它的有效用户组将会变成该程序的用户组所有者。

目录:如果sgid是设置在A目录上,那么则该A目录内所建立的文件或目录的用户组将会是A目录的用户组。如tmp目录。

sticky Bit: 当前只针对目录有效,对文件无效。默认情况下,如果一个目录上有w和x权限,则任何人可以在此目录中建立与删除文件。但是如果在该目录上设置了sticky Bit,、那么在该目录中创建的文件或目录,只有文件的拥有者与系统管理员(root)才有权限删除该文件。

强制位与冒险位、粘滞位对应的权限数字为:

suid:4

sgid:2

sticky Bit: 1

2:使用chattr命令

功能介绍

设置文件隐藏属性,使用权限超级用户(chattr changes the file attributes on a Linux second extended file system.)。

语法格式

chattr [-RV] [-+=AacDdijsSu] [-v version] 文件或目录

参数

-R:递归处理所有的文件及子目录。

-V:详细显示修改内容,并打印输出。

-:取消某个特殊参数。

+:增加某个特殊参数。

= :指定特定的参数。

A:Atime,告诉系统不要修改对这个文件的最后访问时间。

S:Sync,当应用程序对这个文件执行了写操作,使系统立刻把修改的结果写到磁盘。

s:当文件设置了s参数时,它将会彻底从这个硬盘空间中删除掉,它的数据块会用0填写。

a:Append Only,系统只允许在这个文件之后增加数据,而不能删除这个文件。如果目录具有这个属性,系统将只允许在这个目录下建立文件,而不允许删除任何文件,也不允许修改目录下原有的文件。只有root用户可以设置这个属性。

i:Immutable,系统不允许对这个文件进行任何的修改,包括删除、修改、设置连接(可以设置软链接),也无法增加数据。如果目录具有这个属性,那么任何的进程都不能修改目录之下的文件,不允许建立和删除文件。

-j:当ext3格式文件系统挂载的时候使用了参数"data=ordered" or "data=writeback" options时,设置j属性将会使文件在写入时先记录在journal中;但是,当文件系统设置参数为data=journalled时,由于已经设置了日志,那么设置无效。

D:当应用程序对某个目录执行了写操作,使系统立刻把修改的结果写到磁盘。

d:如果一个文件设置了d参数,那么当dump程序运行的时候将忽略归该文件的dump。

c:Compress,系统以透明的方式压缩这个文件。从这个文件读取时,返回的是解压之后的数据;而向这个文件中写入数据时,数据首先被压缩之后才写入磁盘。

u:Undelete,当一个应用程序请求删除这个文件时,系统会保留其数据块以便以后能够恢复删除这个文件。

说明

chattr 命令的作用很大,其中一些功能是由Linux内核版本来支持的,如果Linux内核版本低于2.2,那么许多功能不能实现。另外,通过chattr命令修改属性能够提高系统的安全性,但是它并不适合所有的目录。chattr命令不能保护/、/dev、/tmp、/var目录。

例如1:

[root@node1 mnt]# chattr +a test

[root@node1 mnt]# cat /etc/init.d/httpd > test

-bash: test: Operation not permitted

[root@node1 mnt]# rm -rf test

rm: cannot remove `test': Operation not permitted

[root@node1 mnt]# mv test test.bak

mv: cannot move `test' to `test.bak': Operation not permitted

[root@node1 mnt]#

例如2:

[root@node1 mnt]# chattr +i redhat

[root@node1 mnt]# cat /etc/init.d/httpd > redhat

-bash: redhat: Permission denied

[root@node1 mnt]# rm -rf redhat

rm: cannot remove `redhat': Operation not permitted

[root@node1 mnt]# mv redhat hh

mv: cannot move `redhat' to `hh': Operation not permitted

[root@node1 mnt]# ln redhat nn

ln: creating hard link `nn' to `redhat': Operation not permitted

[root@node1 mnt]# ln -s redhat jack

[root@node1 mnt]# ls -l jack

lrwxrwxrwx 1 root root 6 May 13 08:01 jack -> redhat

[root@node1 mnt]#

例如3:

[root@node1 mnt]# chattr +a duck

[root@node1 mnt]# cd duck/

[root@node1 duck]# touch girl

[root@node1 duck]# ls

girl

[root@node1 duck]# rm -rf girl

rm: cannot remove `girl': Operation not permitted

[root@node1 duck]# cat /etc/init.d/httpd > girl

-bash: girl: Operation not permitted

[root@node1 duck]# mv girl dd

mv: cannot move `girl' to `dd': Operation not permitted

[root@node1 duck]#

例如4:

[root@node1 mnt]# chattr +i duck

[root@node1 mnt]# cd duck

[root@node1 duck]# ls

girl

[root@node1 duck]# touch mm

touch: cannot touch `mm': Permission denied

[root@node1 duck]# rm -rf girl

rm: cannot remove `girl': Permission denied

[root@node1 duck]# mv girl mm

mv: cannot move `girl' to `mm': Permission denied

[root@node1 duck]# cat /etc/init.d/httpd > girl

-bash: girl: Operation not permitted

##################################################

希望可以满足你的要求!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/558031.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux运行中望cad,国产CAD软件中望的Linux版适配UOS, 我在国产系统里试了试

可能大家都知道,以往我们在国产操作里运行的软件,很多都是国外开源的软件。在以前很长一段时间里,国产操作中,国内企业很少去适配的。据说,国产深度之所以有很多国产软件,其中一个原因就是他们一家一家去拜…

linux内核死锁检测机制 | oenhan,Linux内核CPU负载均衡机制 | OenHan

还是神奇的进程调度问题引发的,参看Linux进程组调度机制分析,组调度机制是看清楚了,发现在重启过程中,很多内核调用栈阻塞在了double_rq_lock函数上,而double_rq_lock则是load_balance触发的,怀疑当时的核间…

linux下IPROTO_TCP,TCP/IP协议栈在Linux内核中的运行时序分析

可选题目三:TCP/IP协议栈在Linux内核中的运行时序分析在深入理解Linux内核任务调度(中断处理、softirg、tasklet、wq、内核线程等)机制的基础上,分析梳理send和recv过程中TCP/IP协议栈相关的运行任务实体及相互协作的时序分析。编译、部署、运行、测评、…

vs2019Linux守护,Visual Studio 2019将支援Ninja显着提升Linux专案建置效率

微软更新Visual Studio 2019,新增多个可提升Linux开发体验的功能,包括在Linux上支援建置系统Ninja,以及更完整地支援gdbserver,而且现在开发者也可以使用连接管理器(Connection Manager),编辑和配置预设的远端连接。使…

c语言程序中必不可少的,C语言程序设计(第3章程序控制语句)2

3.2 数据的输入与输出在程序的运行过程中,往往需要由用户输入一些数据,而程序运算所得到的计算结果等又需要输出给用户,由此实现人与计算机之间的交互,所以在程序设计中,输入输出语句是一类必不可少的重要语句&#xf…

android 九宫格封装,Android 九宫格布局

演示image需求满足0-9个图的适配图数量演示1image2image3image4image5image6image7image8image9image使用手动设置android:layout_width"match_parent"android:layout_height"wrap_content"app:ngl_gridSpace"10dp"app:ngl_oneChildHeight"…

android放大镜无广告,Android放大镜的实现代码

快三个月了没写博客了,因为工作调动,很多经验、心得都没有时间记录下来。现在时间稍微充裕了点,我会尽量抽时间将之前想写而没写的东西补上。进入正题。去年某个时候,我偶然看到一篇文章,讲android里面放大镜的实现。文…

鸿蒙和宙斯谁厉害,漫威宇宙宙斯vs奥丁,到底谁更强

宙斯在漫威里,是希腊神话中的众神之王,奥林匹斯十二主神之一,也是奥林匹斯大部分神和神奇女侠戴安娜的父亲,同时也是沙赞的力量来源之一能力:不朽(只有宙斯的血能杀死宙斯)宙斯神力雷霆之怒控制天气宙斯的力量并不是某…

背计算机专业英语词汇,计算机专业英语词汇1500词(五)

201. exit n. & vi. 出口;退出202. report vt. & n. 报告,报表203. execution n. 执行204. backup n. 备份,后备,后援205. version n. 版本206. find v. 寻找,发现207. pointer n. 指针,指示字208.…

优考试在线考试系统计算机,使用优考试在线考试系统解决企业员工考核评比

随着信息时代的高速发展,很多实体传统的东西已经慢慢搬到网络上了,在线考试就是在其中发展的很迅速的一种,企业的员工考核、员工的培训、评比都可以使用企业在线考试系统来解决了,电脑微信小程序手机考试相结合,让考试…

计算机专业申请phd美国,美国计算机专业博士的申请个人陈述范文

美国计算机专业博士的申请个人陈述范文2020-08-24 618人阅读摘要:美国计算机专业博士的申请个人陈述范文美国计算机专业博士申请个人陈述范文共享,公文个人陈述是美国博士申请公文中非常关键的构成部分,针对计划申请办理美国计算机专业博士研究生的同学们…

计算机桌面壁纸怎样拉伸,win10桌面壁纸怎么拉伸?手把手教你拉伸win10桌面壁纸的方法...

现在大家喜欢用自己拍摄的照片做电脑桌面壁纸,设置好win10桌面壁纸后,总感觉壁纸很显大,想要重新拉伸一下。那么win10桌面壁纸如何拉伸?针对此疑问,小编手把手教你拉伸win10桌面壁纸的方法。1、首先来看一下原因&#…

html+dom+深入,DOM 深入学习 - 1

本文章记录本人在深入学习Javascirpt DOM中看书理解到的一些东西,加深记忆和并且整理记录下来,方便之后的复习。DOM 版本w3c 指定的DOM规范包括多个版本,不同的版本(或称知为级别)又包含不同的子规法和模块,不同浏览器对DOM的支持…

计算机应用常用的30个函数,Excel中常用函数的使用

ISSN1009—30“咖船rKno别b内eand伯叻肋叻电奠知识…

cam350怎么看顶层_厉害的人是怎么分析问题的?(实操干货)

“经常做一个方案,几十页PPT还没把问题讲清楚,老板一个问题就貌似发现了关键,这到底是一种怎么样的思维方式?”我在职场这么多年,也遇到过很多次这样的问题。在我初入职场时,经领导点拨后,也产生…

抓球球的机器人应该怎么玩_王者荣耀:在游戏中当自己优势队友劣势的时候应该怎么玩?...

游戏里时常会有这么一种情况出现,我们疯狂Carry,一看战绩十几杠几,C得不行,但是队伍就是要输,颓势总是无法挽回。今天我就给大家说一下,是什么样的原因导致这种情况的发生。队友劣势的原因分析:…

ajax获得excel文件流在前端打开_主流前端技术讲解,面试必考!

Vue.js是Web前端的一个框架,用来快速开发单页面应用。当Vue.js开发变成主流的时候,许多公司的技术团队都打算把下一个新项目换成用Vue.js来开发。但是当我们详细了解Vue.js以后,会发现一个很尴尬的问题,那就是Vue.js的页面是采用客…

计算机无法用telnet,telnet不是内部或外部命令解决办法 Windows10开启Telnet功能方法...

一般情况下,Windows10正式版系统的telnet服务都是处于关闭状态的,需要我们手动开启才可以。telnet服务可以调试端口,其重要性不容小视。今天,就告诉教大家Windows如何配置telnet服务?虽然说今天以Windows10来示例&…

计算机主板另一个名称,主板名称太复杂 看这几点就秒懂了

现在的主板厂商特看重个性化和市场细分,恨不得给每个人定制最适合的主板,所以主板型号多到爆,名称还都特别长,看得人眼晕还看不懂。其实这些名字虽然拉拉杂杂一长串,但都带有很好理解的“关键词”,只要扫一…

亚马逊产品描述计算机语言编辑,亚马逊Listing产品描述编辑讲解

烂人的虚伪我从头看到尾优质答主01-24TA获得超过2782个赞自建listing,就是根据自己的产品,自己打造产品客户端的展示内容,让顾客了解自己的产品,有下单的欲望!建好如果效果不好,还要进行优化,最…