警告- 做不是运行上述命令
所以,我似乎做了一件相当愚蠢的事情。我试图将目录中一些文件的权限更改为.
仅限 sudo/root 读取/写入。
我尝试同时更改多个文件,但似乎造成了非常可怕的全局性问题。在目录中(不是根目录)我运行了sudo chmod 600 .*
,现在我正在用手机发布这篇文章……我现在仍然打开终端窗口,但我很确定如果笔记本电脑进入睡眠状态,我就完全完成了。有趣的是,这意味着这个问题有点紧迫。
哦,我猜这似乎改变了几乎所有地方的权限。我甚至无法运行ls
或cd ..
命令。尝试cd /home/brian
或cd ~
给出错误bash: cd: /home/brian: Permission Denied
,任何尝试命令都sudo
只会说bash: /usr/bin/sudo: Permission Denied
我害怕重启,不知道是否有任何内置的恢复功能可以从这种愚蠢的事情中恢复,但我想在事情变得更糟之前尝试在这里问一下。我刚刚开始将 Linux 作为我的主要操作系统,最近一直在提倡使用它,但哎呀,这个有点刺痛。任何关于尝试的想法都将不胜感激。
编辑:我想澄清一下这个命令是如何/在何处执行的。这是从/.atx $
任意目录执行的,但下面有更多详细信息。
当我以我的常规用户名登录时brian
,我打开了一个终端,/.atx
其中包含三个配置类型的纯文本文件。每个文件名都以 开头.
。该目录/名称/文件不是通用包的任何部分,只是一组我以编程方式移动的任意配置。文件包含一些 SQL 服务器连接字符串信息,我只是希望它们半模糊。
答案1
呼,这里的恢复实际上比我预期的要顺利,而且一切似乎又恢复了良好的状态。
非常感谢@CharlesGreen 解释该命令如何扩展目录。还要感谢@Panther 提供有关进入恢复模式以解决相关问题的信息。(如果你们都想将你们的评论重新分享为答案,我会点赞)
幸运的是,与链接的帖子不同,这个问题似乎有一个非常简单的修复方法。似乎当我sudo chmod 600 .*
只从下面的一个目录运行命令时/
,它将部分向上扩展.*
到真正的根目录,.
从而更改了权限,/
导致其他所有权限都失效。
解决此问题的方法是启动恢复模式,重新将驱动器安装为读/写,转到主根目录(cd /
),然后chmod +rx .
。 重新启动后,一切似乎都恢复正常。
这个故事的寓意是,执行命令.*
至少有时会影响当前目录之上的目录。我原本打算只影响以.
...oops 开头的文件。
非常感谢所有发表评论和帮助的人。
答案2
解决此问题的方法是启动到恢复模式,将驱动器重新安装为读/写,转到主根目录(cd /),然后 chmod +rx .. 重新启动后,一切似乎都恢复正常。
为了让未来的读者明白,他们可能会认为这是可接受的答案,但这个chmod +x
解决方案作为一般解决方案存在一些问题。这个特定问题似乎是用户主目录,因此下面的一些问题可能不大,但如果这应用于业务服务器并影响多个用户或其他数据目录,则不建议采用该解决方案。
积极的一面,此步骤将允许用户重新获得对文件的访问权限,以便将文件复制到备份介质以防止进一步丢失。归根结底,这是任何数据恢复工作的主要目标。
最大的担忧是原始文件可能已应用特定权限,但现在这些权限已丢失。某些程序(特别是 ssh)会强制执行文件权限以进一步确保其安全性,如果+rw
在其文件夹和文件上设置了权限,则它们将无法工作。
另一个问题是,如果将此递归应用于根 ( /
) 文件夹,则系统上的任何人都可能查看和修改其他文件。在服务器可能包含敏感数据(PCI/财务或医疗保健/HIPAA 信息)的商业环境中,这种访问可能会导致审计结果和影响。
在个人/家庭环境中,这种恢复可能完全可以接受。但请注意,有些东西可能会悄无声息地损坏或行为异常。
在商业环境中,可能会使用此恢复来重新获得对数据的访问权限,但最终任何此类重大变化都应通过重新安装服务器并从备份中恢复来解决。
(您确实有当前备份,不是吗?;-))