SRM已加入macOS Sierra(10.12)


33

我刚刚更新到macOS 10.12,当我尝试srm在Terminal中执行时,它显示为-bash: srm: command not found

srm删除了吗?如何解决这个问题?


附带说明:这srm是2000年代初一个垂死的项目。苹果公司向该项目投入了一些资源,它最早出现在10.3中。您应该意识到,使用srm不能保证数据不可恢复。
fd0

@ fd0,您能提出一个更好的主意还是安全地从更新的Mac上的SSD中删除文件?
Niktin Roman

1
全盘加密(尽管我不使用它)和/ rm或GUI中为空废纸rash。
fd0

4
@NiktinRoman for SSDs rm并不比rm安全-srm仅对硬盘有意义。我怀疑这是它已被删除的原因
user151019 '16

Answers:


3

尚未运行macOS 10.12,但是在OS X 10.8.5下srm,该NOTES部分的手册页指出:

srm的开发和讨论在< http://sourceforge.net/project/?group_id=3297 >上进行,也可以通过< http://srm.sourceforge.net >进行访问。

现在,您必须下载源代码并自己编译。这将需要安装Xcode的命令行工具。但是不确定在macOS 10.12下是否仍然适用,请参阅如何在OS X Mavericks&Yosemite(无Xcode)中安装命令行工具以了解详细信息。或在终端中使用以下命令:xcode-select --install

我下载了最新的源代码,并且在OS X 10.8.5下进行了编译,没有错误,尽管这并不意味着它将在macOS 10.12下进行,但是如果srm被删除,它可能是您唯一的选择。

话虽如此,我可能只会srm使用旋转硬盘而不是固态硬盘。


3
如果您使用自制软件,则NB srm可以自制/重复使用。它将抱怨MacOS已经提供了该软件。在Sierra中并非如此,但是无论如何要使用自制软件安装它,您必须brew install srm && brew link --force srm
kojiro

1
@kojiro不起作用。“在提交7957c4b98中从自制/核心中删除了srm”
AfterWorkGuinness

@AfterWorkGuinness是的,苹果表面上删除了srm,因为他们认为这会破坏人们的ssds。github.com/Homebrew/homebrew-dupes/issues/725。我有些怀疑,他们确实想到了这个原因,但是重点仍然是,安全删除命令在ssd上的作用不如旋转生锈。(苹果公司可能从未想过有人要
挂上

27

从此评论:

您能提出一个更好的主意还是安全地从更新的Mac上的SSD中删除文件?– Niktin Roman

有没有必要srm; 前提是您的计算机上启用了TRIM 1

TRIM支持为您处理此问题。当您从驱动器中删除文件时,操作系统会将文件空间标记为“未使用”-这适用于任何驱动器。与HDD不同,在SSD上,发送了TRIM命令以擦除该标记空间中的所有数据。这使您的SSD能够将数据写入该标记的空间,就好像它是全新的并且从未使用过一样,并且可以跳过传统的删除过程。

如果您需要更高的安全性,请打开FileVault

每个苹果支持

注意:对于SSD驱动器,“磁盘工具”中不提供“安全擦除”和“擦除可用空间”。SSD驱动器不需要这些选项,因为标准擦除使其很难从SSD恢复数据。为了提高安全性,请考虑在开始使用SSD驱动器时打开FileVault加密。

我也建议不要使用srm它,因为它会对SSD发出更多和不必要的写入操作,从而缩短其使用寿命。从手册页

srm通过覆盖,重命名和删除每个指定文件
在取消链接之前将其截断


如果Mac上预装有SSD,则默认情况下会启用1 TRIM。如果事后添加了SSD,则必须通过sudo trimforce enable在Terminal中发出命令来启用TRIM 。


3
这应该是公认的答案。
LS

当您在终端中管理文件时,TRIM是否以这种方式标记空间(已删除的文件将不会显示在“废纸rash”中),还是仅在“定期”删除(将其移到废纸rash中)时才标记?谢谢!
ScienceFriction

1
“回收站”只是您主目录-中的隐藏文件夹~/.Trash。因此,“将文件移至垃圾桶”就是这样-移动文件。当您清空垃圾箱时,实际上是您删除文件的时间。通过此方法实际删除文件的时间是rmTRIM生效的时间。
艾伦(Allan)

2
不应信任TRIM命令以可靠地擦除SSD上的数据。它仅允许OS告知SSD某些块已不再使用。正确实施TRIM取决于SSD固件控制器。驱动器制造商在这里没有良好的记录。甚至不一致地实现了更强大的“安全擦除” ATA命令,甚至有时当所有数据保留在驱动器上时也会报告成功。有关更多信息,请参见cseweb.ucsd.edu/~swanson/papers/Fast2011SecErase.pdf
威廉·布丁顿'18

1
@WilliamBudington-您的信息已过时。看到这个帖子: apple.stackexchange.com/questions/269863/…–
艾伦(Allan)

25

rm有一个-P开关,它将在删除前覆盖文件3次。我想总比没有好。


在这种使用情况下,这在技术上是正确的。三倍的总比没有好。
里米安

9

要在不使用外部公用程序的情况下安全地删除MacOS Sierra上的文件/文件夹rm,请对该-P开关使用:

## delete a single file
rm -Pv wikileak1.txt

## delete a folder recursively
rm -Pvrf ~/.wikileaks

手册页

 -P          Overwrite regular files before deleting them.  Files are
             overwritten three times, first with the byte pattern 0xff,
             then 0x00, and then 0xff again, before they are deleted.

 -v          increase verbosity

注意:如果您使用默认名称(例如)从自制软件安装GNU coreutilsbrew install coreutils --default-names,则根据您配置PATH的方式,GNU版本的rm可能会掩盖Mac版本,/bin/rm并且它将不接受该-P选项。用于which -a rm仔细检查。


7

自从最初回答此问题以来,发生了两件事:

  • homebrew-dupes 被合并到 homebrew-core
  • srm 已从中删除 homebrew-core

如果您现在尝试安装它,它将为您提供删除提交的详细信息,并在您仍然需要时建议您创建自己的水龙头。我在这里

您可以使用Homebrew安装它:brew install khell/homebrew-srm/srm



0

有充分的理由不使用安全删除工具(srmshredrm -P对现代系统等)(启用了TRIM-SSD和/或轴颈文件系统)。@Allan的答案特别明确。

但是,如果你真的真的想恢复srm谁家公布了家酿自来水在这里工作的。即:

brew install khell/homebrew-srm/srm
srm secrets.txt

(显然,在安装Homebrew之后。)


-2

sudo port install srm会做


3
这可能会导致-bash: port: command not found错误,因此此处可能需要更多详细信息。
nohillside

1
安装macports:macports.org/install.php
eggonlegs

这可能是我在某些操作系统升级期间卸载Macports时所做的。这是我书中的首选方法,但不是完整的答案,因此无法投票...哦,很好。然后,我使用sudo srm -RfvD TargetDirectoryToWipe命令。不在SSD上...
NOTjust – user4304
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.