记一次Linux权限小事

325 阅读1分钟

事件经过

某天,Pupuu第一次接触服务器资源部署,发现新上传的测试脚本没执行权限。 疑问:

  • 1.同样一个工程里git拉下来,为什么其他文件有执行权限,这个文件没有。
  • 2.有什么办法可以指定某个目录下

于是,去本地跑了一下,发现本地就没有权限,chmod添加权限后,去服务器上拉代码后也能执行了。

  • 所以,git拉下来的文件的执行权限,和提交时的一致。
  • 于是,上边的疑问就演变成了,有什么快捷的方式,可以让文件创建时就有执行权限。

调研结论

经过一圈谷歌,得出了以下几个结论:

  • 1.设置umask(权限补码),可以统一修改新创建文件的默认权限
  • 2.可惜的是,Linux新创建文件,并不允许直接拥有执行权限
  • 3.只能,新建文件后,chmod修改权限。之后,git提交的文件,服务器上就不用再修改权限了。

Linux权限小知识点

字段

-rwxr--r--

第一位(文件/文件夹)用户u组用户g其他用户o
-/drw-r--r--

chmod

  • chmod u+w filename -> -rwxr--r--
  • chmod u=rwx,go+x filename -> -rwxr-xr-x

umask

  • umask效果正好和chmod相反,设置的是权限补码(去掉的权限)
  • 权限最高7=4+2+1
  • 一般默认的umask是022,文件夹权限755,文件权限644(-rw-r--r--
  • 更改umask命令,设置补码000(最高权限,文件夹777,文件666-rw-rw-rw-

umask 000