• 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用户的,做出对应的修改保存即可

  • 相关阅读:
    Unity WebGL MoonSharp崩溃问题
    UISprite(NGUI)扩展 图片镂空
    自动化交易机器人Beta猪
    如何成为一个真正在路上的Linuxer
    课堂里学不到的C与C++那些事(一)
    Android ART运行时与Dalvik虚拟机
    用Dockerfile构建docker image
    论docker中 CMD 与 ENTRYPOINT 的区别
    sshfs远程文件系统挂载
    docker镜像与容器存储结构分析
  • 原文地址:https://www.cnblogs.com/xiaoqingtian/p/13708957.html
Copyright © 2020-2023  润新知