不使用 sudo 的递归 chmod

不使用 sudo 的递归 chmod

我不小心执行了以下命令:(chmod -R 741 /*忘记了点,是的)。所以我知道的下一件事是我的终端充满了错误,我将其停止在 /mnt/ 目录中。此时我意识到我犯了一个多么可怕的错误,我的终端死机了。经过一番探索后,我回到了755我的主目录,现在一切似乎都工作正常。但是,我可以破坏系统中的某些东西吗?我没用过sudo,所以我想我没有搞砸太糟糕?如果我有另一个未受我的错误影响的用户,我是否可以恢复主目录的至少一些默认权限?

答案1

正如其他人指出的那样,如果没有 root 权限,您不会损坏系统本身的任何部分。您将更改您拥有的文件和目录的权限。

以下是如何将它们返回到一组(大部分)合理的值:

chmod u=rwx,go= ~                                              # Ensure we can access our home directory
cd                                                             # Let's go...
find . -type d -exec chmod u=rwx,go=rx {} +                    # All directories
find . ! -type d -exec chmod u=rw,go=r {} +                    # Everything else
find .bash_history .config .gnupg .ssh -exec chmod go= {} +    # Lock out sensitive data

这将设置所有目录权限,以便您可以读取/写入/搜索它们,其他人也可以读取/搜索它们。如果您想阻止任何人访问您的目录,请更改go=rx为。go=

然后,它将设置所有文件权限,以便您可以读/写它们,并且其他人都可以读取它们。如果您想将文件内容保密,请更改go=r为。go=

最后,它将删除除您自己之外的所有人对敏感目录的所有访问权限。

如果您有任何可执行文件(程序、脚本),您需要将可执行位添加回:

chmod a+x ~/some/important/program

和以前一样,这赋予每个人(“所有”)执行该程序的权利。如果您只想为自己拥有该权利,请更改a+x为。u+x

答案2

由于您运行此命令时没有使用sudo任何对系统至关重要的文件或目录,因此不会受到影响。

不过,您可能已经更改了自己的所有文件和目录的权限,并且根据您所拥有的内容$HOME,这对您来说可能是也可能不是大问题。

您可能已将所有文件设置为可由您自己和“其他人”执行。对于一小部分文件,手动将常规文件的权限更改回644755对于目录)或任何默认权限相当简单。

您无需成为 root 即可执行此操作。

相关内容