什么“chmod 777 -R /”在/ var / www / html / … / … / … /?
不幸的是我在一个项目中奔跑并运行sudo chmod 777 -R /
。 我应该担心它开始从root( /
)开始为我的所有文件夹添加777权限吗?
我应该担心它开始从root(/)开始为我的所有文件夹添加777权限吗?
不,不用担心。 如果你在它前面使用“sudo”或做了“sudo -i”,我可以保证。 否则它应该显示权限错误。
如果您想要恢复系统,有办法实现此目的,但您需要一个当前(即最新的个人数据)备份系统。 使用ACL工具 ……
-
您可以从备份系统上
/
上执行getfacl -R > permissions.txt
来创建权限列表。 -
在损坏的机器上使用实时会话,将文件复制到
/
并在/
执行setfacl --restore=permissions.txt
以恢复它们。
我会建议你重新安装。
是的,你绝对需要担心
你运行了sudo chmod 777 -R /
,它将通过整个文件系统进行递归。
对于大多数文件,这是一个小小的不便。 对于某些文件,如果某些攻击者设法通过shell或CGI攻击来破坏您的系统,那将是一个严重的安全风险(想想/etc/passwd
等)。
但最重要的是,如果文件过于开放,有些文件会中断 。 例如,如果你打开~/.ssh/*
(你的ssh密钥,authorized_keys,hosts ……),那么出于安全原因, ssh
或sshd
会将这些文件视为不在那里。 如果您依靠~/.ssh/authorized_keys
通过ssh + Public Key登录,最糟糕的情况是,这可能意味着您被锁定在自己的计算机之外。 还有许多其他安全相关的软件包也可以这样做,主要是因为它们在/etc
的配置或者/var
某些文件。
因此,虽然我们显然不能肯定地说,因为我们对您的机器知之甚少。 这肯定不是一个无害的问题,正如其他一些答案所提出的那样。
如果您运行:
readlink -f /var/www/html/../../..
你会得到/
它意味着你自己说你的命令已经在/
上运行,只是你的系统现在坏了,得到你的数据备份,重新安装Ubuntu。
chmod
的工作是更改文件/目录的mod(权限位), 777
意味着每个人都可以在你的系统上读取,写入,执行任何东西,同时你已经删除了很多其他的东西,比如sticky,suid, SGID。
在尚未提出的一点上,
…它从root开始为我的所有文件夹添加了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 or # remove read permission from other