原帖由 WHITLACK 于 2009-9-28 08:48 发表

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

文件权限的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

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

希望可以满足你的要求!

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

  1. linux中nobody添加所有权限,LINUX用户权限问题(nobody用户删除文件)

    用户提问 apache是通过nobody用户启动的,通过apache的应用程序来删除root用户的文件肯定是不行的. 1.那么用root用户给我的文件"chmod 777 file &quo ...

  2. android 获取文件夹的字节数,android java file 清理垃圾获取文件大小 删除文件等操作...

    这么久没有写博客了,今天给大家分享一些多file文件的操作.一般可以用到清理垃圾获取文件大小 删除文件等操作,可以直接用于工具类里面,直接做操作便可以 public final class FileU ...

  3. iis设置允许或禁止访问的文件类型,以及能够解析的文件类型

    refs: https://blog.csdn.net/dofun333/article/details/74079760 设置iis能够解析的文件类型,比如".woff2"文件 ...

  4. win10系统获取管理员权限卸载程序、删除文件等听语音 浏览:9507|更新:2016-02-23 02:27 很多用户升级win10系统以后,发现卸载某些程序或者删除某些文件的时候,会出现权限不够,

    win10系统获取管理员权限卸载程序.删除文件等 听语音 浏览:9507 | 更新:2016-02-23 02:27 很多用户升级win10系统以后,发现卸载某些程序或者删除某些文件的时候,会出现权限 ...

  5. nginx配置文件被删怎么找回_隔行如隔山之nginx服务器删除文件

    虽然我平时比较喜欢折腾博客网站,也喜欢折腾WordPress主题等,但是从未折腾过nginx服务器,就连我现在用的这台阿里云ECS服务器都是找张戈博主帮忙安装的,所以对于nginx服务器真的是一窍不通 ...

  6. 计算机用户删除文件找回,文件删除了怎么找回来_文件删掉了怎么恢复-win7之家...

    有用户说在清理电脑文件的时候,不小心把一些重要的文件给删除了,想把那些文件给找回来,但不知道要怎么做,这个情况相信也有他人用户也遇到过,那么文件删除了怎么找回来呢,下面小编给大家分享恢复文件删掉的方法 ...

  7. linux将用户删除文件,linux 用户配制文件 用户增加及删除 以及用户属于的更改...

    1.用户密码文件 /etc/passwd root  :   x   :    0    :       0    :          root      :     /root    :    / ...

  8. linux centos root用户删除文件夹显示Operation not permitted如何解决

    背景 真的是很奇怪,root用户使用rm -rf删除命令的时候居然报错Operation not permitted错误,无法删除 神奇, 还有root用户无法直接删除的东西 解决办法 查看属性 ls ...

  9. bat 删除文件_利用电脑文本文档建立一个简单方便的删除文件的小程序

    删除文不需要的文件或者资料,是日常工作中必定会遇到了. 各种的杀毒软件或者防护软件都具备删除文件的功能,例如360.腾讯电脑管家.这些操作起来其实也不是太麻烦! 不过呢!今天来和大家分享一个更简单的方 ...

最新文章

  1. usaco Calf Flac(O(n)时间求回文串长度)
  2. 苹果修复iPhone漏洞突显手机安全隐忧
  3. java摄像头推流_悄摸直播(一)—— 推流器的实现(获取笔记本摄像头画面,转流推流到rtmp服务器)...
  4. 如何在Python3.x上安装Sentry,实时监控业务错误
  5. vue-cli2.9.6 build项目无法访问资源 无法访问elementUI字体
  6. WebSocket——[Error during WebSocket handshake: Unexpected response code: 403]解决方案
  7. 从 Hive 大规模迁移作业到 Spark 在有赞的实践
  8. Jquery的ajax提交成功后刷新页面
  9. wxhtmltopdf 图片路径问题_图片引入路径问题
  10. mfc之DDX_Control作用
  11. SetConsoleTextAttribute 设置Windows控制台字体背景颜色(转载)
  12. python时间序列预测不连续怎么办_用Python处理非平稳时间序列攻略
  13. 一维非齐次热传导方程的紧致差分格式(附Matlab代码)
  14. Python圆通快递单号查询官方接口-快递鸟
  15. 【案例分析】PCB行业产业服务平台开发案例分析
  16. Element UI快速入门
  17. 这行情我还老是管不住手,少kui点就偷着笑吧
  18. Spring关于@required注解
  19. 《哈利·波特与混血王子》(Harry Potter and the Half-Blood Prince)[DVDRip]
  20. freeswitch配置软电话

热门文章

  1. nextboolean()_Java Random nextBoolean()方法与示例
  2. 再见Postman,这款API神器更好用!
  3. 高质量SQL的30条建议!(后端必备)
  4. python回测量化交易策略收益率
  5. windows10 vscode 构建最强大的 Mingw C++ gcc 编译环境
  6. CentOS7 shell脚本安装jdk
  7. mysql5.6.24安装perl_mysql5.6源码安装
  8. 从前序与中序遍历序列构造二叉树
  9. Algorithm学习笔记 --- 迷宫问题
  10. 灰度值怎么降级_微服务生态的灰度发布如何实现?