这可能与rm命令无关,因为有简单的方法可以删除文件而不使用它。如果问题是您的朋友无意间滥用了该rm命令,那么专门限制该命令的使用或导致该命令以不同方式工作的解决方案可能会有所帮助。相反,如果问题是您的朋友故意以您不想要的方式处理数据,则您需要实施实际的安全措施,并且没有解决方案着眼于rm命令本身(或任何离散的命令集)将使您安全。

您需要控制访问权限,还是只是防止诚实的错误?

假设您的朋友知道您不希望他们删除文件,则有两种可能性:

他们可能是故意这样做的。在这种情况下,您的朋友有意删除您的文件,您甚至不能信任他们尝试遵守您对使用计算机时如何处理数据的要求。正如托马斯·沃德(Thomas Ward)详细解释的那样,解决此问题的唯一方法是使用实际有效的安全措施。通常,最好的措施是阻止他们使用您的计算机。但是让他们使用自己的用户帐户可以提供一定的保护。

他们可能会错误地这样做。在这种情况下,您的朋友极容易发生意外,并且他们继续运行rm他们本来希望没有的命令。他们想尊重您和您的数据,但实际上在实践中却很糟糕,因为他们会继续运行错误的命令,删除错误的文件……之类的东西。尽管最好相信这是正在发生的事情,但我告诫您不要假设那些在您告诉他们停止数据后继续删除您的数据的人没有恶意地在工作。

此外,即使他们的意图很好,给他们一个单独的用户帐户仍然是防止他们删除文件的最简单的方法,除了不允许他们使用您的计算机。

如果情况确实是#2-您的朋友不是在尝试删除您的文件,而是需要帮助,不要意外删除它们,而他们意外删除它们的唯一方法是无意间滥用了少量命令(例如rm)他们在正确使用上有特别的麻烦-那么Videonauth答案中的技术可能有用。但是您必须了解它们不是安全措施,因为该rm命令只是删除文件的许多简便方法之一。有关详情,请参见下文。

我建议您问自己:“我的情况与我(而不是其他使用我的计算机的人)使用rm错误的情况基本相同吗?”

如果答案为否,则这是信息安全问题,您需要阻止朋友使用您的用户帐户。如果答案是肯定的,那么你可以使用同样的方法,如果你想使用你是我的唯一滥用rm:

教育。您的朋友需要知道他们在做什么以及如何避免。

界面更改。在不丧失删除文件的实际能力(需要单独的用户帐户)的情况下,您可以通过使其仅自行运行而不进行任何进一步的操作来立即删除它,从而使意外删除文件变得更加困难。Videonauth的答案为此提供了一种方法。在这个答案中,我提出另一个。rm filefile

但是,即使您的朋友没有尝试做任何错误的事情,您仍然应该考虑让他们使用自己的单独用户帐户。这仍将解决问题-保护数据免遭故意破坏的相同安全措施也将保护其免受意外破坏。即使没有恶意的意图,如果某人继续做您不希望他们做的事情,那么您也不能相信他们会拒绝这样做。

制作rm之前缺失可以帮助提示防止一些错误。

为了帮助人们避免意外删除文件rm,可以设置rm一个实际运行的shell别名rm -i。将-i标志传递给rm导致它在删除每个文件之前提示用户(请参阅参考资料man rm)。

您可以通过添加alias rm='rm -i'到.bash_aliases或.bashrc文件中(针对您的用户帐户)执行此操作。有关详细信息,请参见此问题和该问题。这将对您新打开的bash shell生效。

这没有提供任何实际的安全性,并且在防止错误方面也不是万无一失的,因为:

出现提示时,他们可以选择继续删除。

他们可以通过多种方式绕过别名,包括通过运行/bin/rm或取消别名(unalias rm)。

在许多情况下不会发生别名扩展,并且在这些情况下rm将不会使用别名扩展-i。

他们仍然可以通过使用不需要的任何技术来删除文件rm(就像Videonauth的方法一样 -见下文)。

他们仍然可以在不删除任何文件的情况下损坏数据,例如通过覆盖它们或以其他方式更改其内容(Videonauth的方法也是如此)。

但是,如果您不需要实际的安全性(请参见上文),那么这可能是可行的方法。与防止您的朋友使用系统提供的rm命令的方法相比:

别名化rm对rm -i防止错误的效果不佳-直到他们继续使用其他技术来删除文件为止。到那时rm,即使他们没有尝试做任何错误,阻止他们使用也将完全无效,因为大概他们将以unlink相同的粗心大意来使用(或其他无数个删除文件的命令)。

另一方面,由于别名扩展仅在某些情况下发生-粗略地说,是对shell的常规交互式使用-您的朋友可能会认为,在未真正提示时会提示他们(因为该命令位于例如脚本,或从其他外壳发布)。Videonauth的方式不存在此问题,这是该方法相对于的客观优势alias rm='rm -i'。

运行脚本时,除非故意编写脚本以使用别名,否则不会在其中扩展别名。这意味着混叠rm到rm -i是不太可能打破任何东西。这是的客观优势alias rm='rm -i'。

rm 不能做任何其他完美的普通程序不能做的事情。

真的没有什么特别的rm。这是一种方便且自文档记录的删除文件的方式,因此限制对其的访问可能会破坏许多依赖该文件的脚本。但这不是删除文件的唯一方法,它只是一个普通程序。

一些命令执行某些任务,如果不运行这些命令,受限用户(非root用户)将无法执行这些命令。例如,sudo在确保您被允许进行检查之后,允许您以其他用户身份运行程序。passwd编辑存储用户密码的数据库,但只能让您更改自己的密码(除非您是root用户,在这种情况下,您可以更改任何人的密码)。

/usr/bin/sudo并/usr/bin/passwd可以这样做,因为它们设置了setuid位,如s在运行时显示在最左列中的所示ls -l:

ek@Io:~$ type -a sudo passwd rm

sudo is /usr/bin/sudo

passwd is /usr/bin/passwd

rm is /bin/rm

ek@Io:~$ ls -l /usr/bin/sudo /usr/bin/passwd /bin/rm

-rwxr-xr-x 1 root root 60272 Feb 18 2016 /bin/rm

-rwsr-xr-x 1 root root 54256 Mar 29 2016 /usr/bin/passwd

-rwsr-xr-x 1 root root 136808 Aug 17 09:20 /usr/bin/sudo

请注意,/bin/rm有没有s:它的权限-rwxr-xr-x,而/usr/bin/passwd和/usr/bin/so有-rwsr-xr-x代替。这样,无论谁运行passwd或sudo,它实际上都以root用户身份运行,因为root是可执行文件的所有者。(还有一个setgid位,设置该位后,将使可执行文件以其组所有者而​​不是调用者的组身份运行。)

除了那些没有被发现(或已经发现但尚未被修补)的任何安全漏洞,sudo并且passwd是安全的,因为工具都是非常精心编写的,使他们只能做的事情,调用者应该允许去做。

/bin/rm这样行不通。它不是setuid的,因为它不需要。目录权限(有时是文件权限)控制用户可以删除哪些文件,而无需成为root用户即可删除。只是为了清楚起见,请永远不要将setuid位设置为onrm。从那时起,安全隐患将是灾难性的,从那时起,无论由谁运行rm,就好像是root在运行它!(实用程序喜欢sudo并passwd检查谁真正在运行它们,并在执行某项操作之前先检查是否已允许;rm请勿执行此类操作。)

检查是否在可执行文件上设置了setuid(或setgid)位将告诉您是否限制谁可以运行它可以提高安全性。不是setuid(或setgid)的可执行文件没有任何特殊状态,任何人都可以简单地复制它们并运行该副本,从另一台计算机上带来他们自己的副本,编写执行相同操作的脚本或程序,或使用另一个程序来做。

不删除文件 rm

不rm使用Ubuntu 删除文件的一种明显方法是导航到图形文件浏览器中的位置(如果使用的是Unity或GNOME Shell,则为Nautilus)并删除文件。还有许多命令可用于从终端删除文件,而无需使用rm。

例如,要删除foo.txt当前目录中的文件,可以在Ubuntu上直接使用且不需要访问的以下命令即可rm实现。(可以肯定的是,我在16.04最低系统上进行了测试删除后仅安装了标准系统实用程序/bin/rm。)

unlink foo.txt

busybox rm foo.txt

perl -e 'unlink("foo.txt")'

python3 -c 'import os; os.remove("foo.txt")'(python而不是python3在较早的版本中)

当然,这个清单还远远不够完整。无法提供此类命令的完整列表。防止文件删除是单独的用户帐户以及存在要实现的文件和目录权限的事情之一。他们很好地防止了这种情况。相反,更改rm命令(使其要求输入密码或以任何其他方式)或限制访问rm根本不会阻止它。

计算机设置密码命令,如何为“ rm”命令设置密码?相关推荐

  1. CentOS下的rm命令改造成移动文件至回收站

    将linux下的rm命令改造成移动文件至回收站 rm是Linux下文件删除的命令,它是Linux下非常强大却又非常危险的一条命令,特别是rm -rf有时候强大到让你欲哭无泪,当你想清除当前目录下的所有 ...

  2. Linux rm命令:删除文件或目录

    当 Linux 系统使用很长时间之后,可能会有一些已经没用的文件(即垃圾),这些文件不但会消耗宝贵的硬盘资源,还是降低系统的运行效率,因此需要及时地清理. rm 是强大的删除命令,它可以永久性地删除文 ...

  3. linux 垃圾箱位置,如何将Linux rm命令删除的文件放入垃圾箱

    因为rm命令删除的文件是不会放入垃圾箱的,所以无法恢复,下面小编就给大家介绍一种方法,通过替换Linux rm命令的方法,从而将rm命令删除的文件放入垃圾箱. 方法: 1. 在/home/userna ...

  4. Linux管理文件命令(2)rm命令-删除文件或者目录

    目录 前言 一.rm命令的介绍 二.命令语法及参数 三.参考实例 四.删错文件如何恢复 前言 rm是一个很危险的命令,使用的时候要特别当心,尤其对于新手更要格外注意,如执行"rm -rf / ...

  5. linux rm 命令详解,Linux rm命令使用指南

    Linux系统的众多命令中,rm命令主要用于删除文件,下面小编就来详解介绍下Linux系统的rm命令,希望对初学者有一定的帮助. 名称:rm 使用权限:所有使用者 使用方式:rm [options] ...

  6. python rm 条件_python版rm命令

    安全的linux rm 命令 -- python版rm命令 众所周知 linux 下 大杀器之一 rm 是多么恐怖的东西存在 众多系统管理员 对此命令是又爱 又恨, 基于本人也是一枚系统管理员, 写下 ...

  7. 【Linux】rm 命令:删除文件/文件夹

    文章目录 一.删除文件/文件夹:rm 命令 二.删除文件(即这个文件被删除) 三.删除文件夹 四.注意 参考链接 一.删除文件/文件夹:rm 命令 rm 是强大的删除命令,它可以 永久性地 删除文件系 ...

  8. 一文搞懂Linux rm命令 删除文件/文件夹

    文章目录 一 rm命令简介 二 rm命令通用格式 三 使用示例 删除文件/文件夹 3.1 rm删除文件 3.2 rm删除文件夹 四 总结 一 rm命令简介 rm命令是Linux系统的一个命令.rm命令 ...

  9. Git基础-删除文件 rm/git rm 命令详解

    1.文章概述 本文介绍git中删除文件的操作: 主要涉及命令如下 : 1.rm 2.git rm3.git rm -f4.git rm --cached5.git rm -r : 在删除文件夹的时候, ...

  10. Linux之mkdir和rm命令选项

    Linux之mkdir和rm命令选项 1. mkdir命令选项 命令选项 说明 -p 创建所依赖的文件夹 mkdir命令选项效果图: 2. rm命令选项 命令选项 说明 -i 交互式提示 -r 递归删 ...

最新文章

  1. 图灵五周年回馈读者活动现在开始啦!
  2. JMeter性能测试,验证请求数据的准确性(wc命令)
  3. TCP/IP详解--第一章
  4. ims系统 呈现服务器,基于IMS的呈现服务器的设计与实现
  5. java 正则表达式 数量
  6. 1.3 单一数字评估指标
  7. Struts与Servlet的冲突
  8. ThreadLocal可以解决并发问题吗?
  9. 「mac操作指南」WidsMob HEIC将HEIC/HEIF 转换为 JPEG/PNG/TIFF格式
  10. Java虚拟机类加载机制--类加载的过程详解
  11. 【华南理工大学】PC客户端配置-如何在家连接学校的校园网
  12. python之time:基于python语言利用time模块计算运行时间—计算机器学习模型训练前后的时间代码实现
  13. 为Navicat ER图增添字段备注
  14. apache roller_Apache Roller RC支持Java EE 6服务器,Alex Ruiz离开了Oracle
  15. 小苹果源地址_越狱常用源地址推荐
  16. 前端面试 - 项目流程
  17. perl novel可变剪接识别(3)
  18. 固定偏置放大电路为何不能保证静态工作点的稳定性?
  19. 科密指纹考勤机B329采集
  20. 可调速气体采样泵和液体采样泵选型介绍

热门文章

  1. 简单Web服务器程序设计与实现
  2. 女生学java软件开发怎么样?就业前景如何?
  3. 【信号与系统】DTFT离散时间傅里叶变换
  4. web前端面试题(必背面试题)
  5. Linux 的camera sensor 驱动代码分析:基于rv1108
  6. 南京大学2020计算机考研分数线,2020南京大学考研复试分数线已公布
  7. 简单计算机c++代码
  8. CMD命令制定打印机,打印测试页
  9. 酒店小程序线上营销解决方案-思途智旅
  10. 何凯明新作MAE 学习笔记