最近在 linux 搞东西的时候,执行了 chmod -R a+wrx /opt 把整个文件夹的权限给搞乱了。

好在这个文件夹下没有什么重要的东西。这里记录一下恢复到默认权限的过程。

恢复的原理

原理其实很简单: 文件和文件夹都有默认权限。找到默认权限,再用 chmod 设置一下就行了。

一般情况下:

  • 对于文件来说默认的权限是 rw-r–r—
  • 对于目录来说默认的权限是 rwxr-xr-x
  • 默认的权限分类是: u = 所属的用户, g = 所属组, o = 其他人

怎么查看呢:

  • 查看默认权限:umask [-S]
  • 选项与参数:-S 以符号形式显示 (u=rwx,g=rx,o=rx)

设置默认权限:umask 权限数

  • 对于目录来说最大权限是777(rwxrwxrwx)
  • 对于文件来说最大权限是666(rw-rw-rw-)

所以默认权限是:

  • 当权限数为022时代表:目录权限(777-022)=755(rwxr-xr-x)
  • 当权限数为022时代表:目录权限(666-022)=644(rw-r–r—)

恢复的步骤

知道了默认权限后,就比较简单了:

  • 设置当前文件夹下的全部目录为默认权限:chmod 755 $(find . -type d)
  • 设置当前文件夹下的全部文件为默认权限:chmod 644 $(find . )

参考: http://wiki.jikexueyuan.com/project/learn-linux-step-by-step/default-permissions-and-hidden-permissions.html