不幸的是,我当时太匆忙,sudo chmod 777 -R /
在一个项目中运行。我是否应该担心它开始为从 root () 开始的所有文件夹添加 777 权限/
?
答案1
我是否应该担心它开始为从 root(/) 开始的所有文件夹添加 777 权限?
不,不用担心。我可以保证,如果你在前面使用了“sudo”或执行了“sudo -i”,那么它应该会显示权限错误。
如果你想恢复系统,有多种方法可以做到,但你需要一个最新的(即个人数据最新的)备份系统。ACL 工具...
您可以
getfacl -R > permissions.txt
在/
备份系统上创建权限列表。在损坏的机器上使用实时会话,将文件复制到
/
并执行setfacl --restore=permissions.txt
恢复/
它们。
我建议您重新安装。
答案2
是的,你绝对需要担心
您运行了sudo chmod 777 -R /
,它将遍历整个文件系统。
对于大多数文件来说,这只是一个小小的不便。对于某些文件来说,如果某些攻击者设法通过 shell 或 CGI 攻击破坏您的系统,这将是一个严重的安全风险(想想/etc/passwd
吧)。
但最重要的是,一些文件休息如果它们太开放。例如,如果您打开~/.ssh/*
(您的 ssh 密钥、authorized_keys、hosts...),那么出于安全原因,ssh
或sshd
将把这些文件视为不存在。如果您依靠~/.ssh/authorized_keys
通过 ssh+Public Key 登录,那么最糟糕的情况是,您可能被锁定在自己的机器之外。还有许多其他与安全相关的软件包也会这样做,主要是因为它们的配置/etc
或可能是 中的一些文件/var
。
因此,虽然我们显然无法肯定地说,因为我们对您的机器了解甚少。但正如其他一些答案所指出的那样,这肯定不是一个无害的问题。
答案3
如果你运行:
readlink -f /var/www/html/../../..
你会明白/
这意味着正如你自己所说的,你的命令已经在上运行/
,只是你的系统现在坏了,备份你的数据,重新安装 Ubuntu。
chmod
的工作是更改文件/目录的 mod(权限位),777
意味着每个人都可以读取、写入、执行系统上的任何内容,同时您删除了许多其他位,如 sticky、suid、sgid。
答案4
关于一个还没有提出的问题,
...它开始为从根目录开始的所有文件夹添加 777 权限...
您不仅添加了 777 个权限,还从所有文件中删除了 setuid、setgid 和 sticky 位。这将导致sudo
和之类的东西su
停止工作,因为它们依赖 setuid 来更改用户。
请注意,chmod 777
是 的缩写chmod 0777
。另一个八进制数字代表我刚才提到的位。例如,chmod 4777
设置 setuid 位,清除 setgid 和 sticky 位,并添加所有权限。
将来,我建议使用的chmod
其他语法:
chmod +rwx # what you probably intended
chmod ug+w # add write permission to user and group
chmod o-r # remove read permission from other