Linux权限管理小结

关于权限命令,我们最常用的还是利用二进制数字授权哦,也只建议使用这种方法。Linux下一切皆文件。windows中的文件类型是以后缀区分的,但是linux下只有七类文件,我们只需要记住三类:文件,目录文件和软连接文件。

学习Linux权限之前你应该了解一下Linux用户和用户组相关知识,新建一个默认用户不指定用户组的话,就会默认添加一个同名用户组,管理员组wheel和root组是不一样的。

  • 新建一个文件,这个文件的u即拥有者,g表示和拥有者同用户组的用户,o表示其他用户。该文件默认权限为644,我们经常需要修改为755,甚至有时候需要改为777,数字权限表示法用到了二进制思想。

  • 任何一个文件都可以拥有rwx权限,即读写执行三大权限,普通文件的r权限可以使用命令cat,more,head,tail;w权限可以使用命令vi,echo;x权限就是可执行,一般为shell脚本,默认配色都不一样哦。

  • 对目录有读权限就是可以使用ls这样的命令了;写权限就是可以改变文件目录的结构了,比如mv,cp,touch;对目录的执行全兴就是cd命令,目录是无法执行的,而是进入。对目录只能给予0和7权限。

  • 所以说,对普通文件来说,最高权限是x执行;但是对文件目录来说,最高权限是w写入权限。

  • 对文件即使有写权限,你也无法删除该文件,删除文件的话你必须对该文件的文件目录具有可写权限。

  • ll命令就是利用alias别名修改了带参数的ls -l而已,ll第一列看到的就是十位数的文件权限,第一位数是文件类型,-是文件,d是文件目录,l是软连接。

  • 我们常用的授权命令是chmod,即改变权限模型。这个命令最常用的参数是 -R 权限递归。给文件增加或者减少权限,我们可以使用:

1
2
3
4
5
chmod u+x,g+wr filename
chmod u-x,g-wr filename
chmod u=xr,g=wrx filename
  • 这种写法在线上是不可能出现的,除非你学习权限的时候了解一下。
1
chmod 557 filename
  • 但是这样使用也有些不方便,你也可以对所有用户授予同样权限,例如给所有用户最高权限:
1
chmod a+wrx filename
  • 修改文件的所有者,chown 用户名 文件或者用户名:
1
chown user1 filename
  • 其实你也可以使用这个命令同时改变文件所属用户和所属用户组,先用户名再用户组,使用点号或者分号分隔:
1
chown user1:wheel filename
  • 修改所属组,chown 用户组 文件或者用户名(直接使用上面的chown也可以实现)
1
chgrp user1 filename
  • windows中你添加的所有用户都在users这个用户组中,但是Linux中你添加的用户,系统会默认建立一个同名用户组。

  • 普通文件默认权限是644,目录文件默认权限是755(可以设置为777),这是由umask决定的。默认文件不能为可执行文件,可执行文件必须手动赋予权限哦。

  • umask默认权限为0022。第一位数是特殊权限,022就是文件默认权限。可是这022到底是怎么算出来的644呢?由于默认文件不能为可执行文件,所以默认权限最大只能为666,和022相减即为644。

  • umask=0000时候最小,此时普通文件和目录文件默认权限分别为666和777。

  • 严格来说上面的说法是错误的,因为文件不能创建就拥有执行权限。严格来说相减之前需要把数字转换为字母,字母相减得到默认文件的权限,负数无效。这也是逻辑与运算的结果。

  • 普通用户的uid从500开始。root用户的uid为0。

  • 让配置文件永久生效的办法是修改写入默认shell文件,该文件为/etc/profile。

  • CentOS6后,这十位数后面加了个.号,这是ACL权限的问题。

坚持原创技术分享,您的支持将鼓励我继续创作!
0%