Linux权限管理之基本权限

linux服务器上有严格的权限管理,如果权限过高导致误操作会增加服务器的风险。所以对于了解linux系统中的各种权限及要给用户,服务等分配合理的权限十分重要。

1.基本权限

我们使用ll命令,可以查看到当前目录下的文件权限情况

从左至右依次是文件类型、权限、链接数、所属用户、所属用户组、文件大小(字节)、最后修改时间、文件名
第一列的第一个字符就表示文件类型,其中linux的文件类型一共有7中,分别是

  • - :普通文件
  • d :目录(文件夹)
  • l : 软链接(类似Windows的快捷方式)
  • b :块设备文件(例如硬盘、光驱等)
  • p :管道文件
  • c :字符设备文件(例如猫等串口设备)
  • s :套接口文件/数据接口文件

紧接着往后9个字符代表文件的权限,它们分为三组,分别是所属用户(u)、所属组(g)、其他用户(o)权限
对应关系是:

  • r(4) :可读
  • w(2):可写
  • x(1):可执行

修改文件权限 chmod

chmod [选项] 模式 文件名

  • 选项
    • -R 递归
  • 模式
    • [ugoa][+-=][rwx]
    • [mode=421]

举个例子:

chmod u+x test  //表示给test文件所属用户增加可执行权限
chmod g+w,o+w test //表示给test文件所属组和其他用户增加可写权限
chmod u=rwx,g=rw test //表示给test文件所属用户赋予rwx权限,给所属组赋予rw权限
chmod a=rwx test //表示给所有人赋予rwx权限

上面的写法有些繁琐,一般场景下,我们会使用权限的数字来表示:
我们要给文件test赋予 rwxr-xr-x 权限可以像下面这样

chmod 755 test // 等同于 chmod u=rwx,g=rx,o=rx test

常用权限

  • 777(每个用户都是最高权限)
  • 644(所属用户读写、所属组读、其他用户读,这是linux创建文件的默认权限)
  • 755(所属用户读写执行、所属组读执行、其他用户读执行,)

比如467、477之类的权限一般是不会配置的,没有用

权限的作用

权限对文件的作用

  • r:读取文件内容(cat more head tail)
  • w:编辑、新增、修改文件内容(vi echo),但是不包含删除文件
  • x:可执行
对文件来讲:最高权限是x,所以对文件应少赋执行权限

权限对目录的作用

  • r:可以查询目录下的文件名(ls)
  • w:具有修改目录结构的权限。如新建文件和目录,删除此目录下的文件和目录,重命名此目录下的文件和目录,剪切等(touch rm mv cp)
  • x:可以进入目录(cd)
对目录来讲:最高权限是w,所以对目录应少赋写权限,对目录赋予权限应注意,只能赋予0 5 7,其他都没有意义

其他的权限命令

  • chown 用户名 文件/目录名
chown user1 test // 将文件/目录test的所有者修改为user1
  • chgrp 组名 文件/目录名
chgrp user1 test // 将文件/目录test的所属组修改为user1
  • chown 用户名:组名 文件/目录名
chgrp user1:group1 test // 将文件/目录test的所属用户和所属组同时修改为user1和group1

2.默认权限

查看默认权限

我们可以使用 umask 命令查看linux的默认权限,输出 0022
第1位的0表示文件的特殊权限,后面3位表示文件的默认权限

文件的默认权限

默认文件权限的意思就是我们在linux中创建文件时,文件默认赋予的权限

  • 文件默认创建后没有执行权限,必须手动赋予执行权限(为什么? 出于安全考虑,假如用户给服务器上传木马病毒文件,假如建立后就有执行权限,那么后果可想而知)
  • 文件默认权限最大是666
  • 默认权限需要换算成字母相减
  • 文件建立后的默认权限为666减去umask的值
    • 比如文件默认权限并不是由666-022=644得来的,而是由666(rw-rw-rw-)减去022(----w--w-)得来644(rw-r--r--)
    • 再比如我们设置默认权限为033,我们通过减法得666-033=633,着很明显是不对的,应该是 666(rw-rw-rw-)减去033(----wx-wx)还是644(rw-r--r--)

目录的默认权限

  • 目录的默认权限最大是777
  • 默认权限同样是需要换算成字母再相减
  • 建立目录后的默认权限为777-umask

临时修改umask

重启之后就会还原

umask 0002

永久修改umask

重启之后也不会改变

vim /etc/profile

if里面是针对普通用户的,else里面是针对root用户的,做出对应的修改保存即可

posted @ 2020-09-22 12:16  等一个,晴天  阅读(502)  评论(0编辑  收藏  举报