Java学习者论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

恭喜Java学习者论坛(https://www.javaxxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,购买链接:点击进入购买VIP会员
JAVA高级面试进阶视频教程Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程

Go语言视频零基础入门到精通

Java架构师3期(课件+源码)

Java开发全终端实战租房项目视频教程

SpringBoot2.X入门到高级使用教程

大数据培训第六期全套视频教程

深度学习(CNN RNN GAN)算法原理

Java亿级流量电商系统视频教程

互联网架构师视频教程

年薪50万Spark2.0从入门到精通

年薪50万!人工智能学习路线教程

年薪50万!大数据从入门到精通学习路线年薪50万!机器学习入门到精通视频教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程 MySQL入门到精通教程
查看: 403|回复: 0

[默认分类] 文件属性查看 所有人所有组管理 权限管理 访问控制

[复制链接]
  • TA的每日心情
    开心
    2021-12-13 21:45
  • 签到天数: 15 天

    [LV.4]偶尔看看III

    发表于 2018-4-13 09:41:21 | 显示全部楼层 |阅读模式

      文件属性查看

    ls -l filename

    -      rw-      rw-     r--      1     kiosk     kiosk     0   Oct 2 17:05     file

    [1]    [2]                                  [3]      [4]     [5]       [6]      [7]              [8]



    [1]        ##文件类型

    -        #普通文件

    d        #目录

    s        #socket套接子

    l        #软链接

    p        #管道

    c        #字符设备

    b        #块设备



    [2]        ##读写权限

    rw-|rw-|r--

    @   $   *



    @        #文件拥有者对文件能做的动作

    $        #文件所在组的组成员能对文件做的动作

    *        #其他人对与文件能做的动作



    [3]        #文件内容被系统记录的次数



    [4]        #文件拥有者

    [5]        #文件所在组

    [6]        #文件大小

    [7]        #文件最后一次被更改的时进

    [8]        #文件名称


    例如下图创建文件file
    对file进行ls -l 命令    显示如下




    读写权限分别为读r写w记录x
    ”1”:
    对文件:文件内容被系统记录的次数

    对目录:目录中文件属性的字节数(子目录的个数)
    第一个root
    文件所有人
    第二个root
    文件所有组
    0
    文件内容的大小
    Apr 10 10:13

    文件最后一次被修改的时间
    file
    文件名

    查看目录属性

    ls -ld    directoy

    d   rwxr-xr-x     3     kiosk kiosk  33     Aug 27 09:47         directory

    [1]    [2]           [3]        [4]    [5]      [6]                [7]                  [8]



    [1]        ##类型

    [2]        ##权限

    [3]        ##子目录个数

    [4]        ##目录拥有者

    [5]        ##目录所在组

    [6]        ##目录中内容的属性的大小

    [7]        ##目录中文件增加或减少或被更名的时间


    [8]        ##目录名称










    文件用户组的更改

    chown    user name                     file|dir      ##更改文件所有人
    chgrp    组名称        文件    ##更改文件所有组

    chown     username.groupname        file|dir     ##更改所有人所有组
    chown -R 用户        目录    ##更改目录本身以及目录中的子文件的所有人

    chgrp -R 组名        目录    ##更改目录本身以及目录中的子文件的所有组
    1. [/code]
    2. [u]
    3.   
    4. 此处运用一个监视命令,可以更清楚看到文件用户组的更改
    5. watch  -n 2 ls -lR 目录/文件
    6. [img]http://www.itdaan.com/imgs/2/8/8/8/81/30e544822f99d958c4c174ec3c1dc4a4.jpe[/img]
    7. chown    user name                     file|dir      ##更改文件所有人
    8. [img]http://www.itdaan.com/imgs/3/2/7/9/11/0016ae9be213f1ead8e59d0a8fb55817.jpe[/img]
    9. chown     username.groupname        file|dir     ##更改所有人所有组
    10. [img]http://www.itdaan.com/imgs/5/2/8/4/54/f903014475ce943e22f6ce8c7f060efd.jpe[/img]
    11. 通过上述可以发现,用户及组必须存在方可更改
    12. 权限的识别
    13. rwx                             r-x                      r-x
    14. 用户权限(u)     组成员权限(g)      其他用户权限(o)
    15. 权限种类
    16. r
    17. r权限针对文件,表示可以查看文件内容
    18. r权限针对目录,表示可以ls 查看目录中存在的文件名称
    19. w
    20. w权限针对文件,表示可以更改文件的内容
    21. w权限针对目录,表示是否可以删除目录中的子文件或者子目录
    22. x
    23. x权限对于文件,表示是否可以开启文件当中记录的程序
    24. x权限对于目录,表示是否可以进入目录中
    25. 例如 rwx                             r-x                      r-x
    26. rwx代表文件所有人对文件可进行读写开启记录/进入目录操作
    27. r-x代表文件组成员对文件进行读开启记录/进入目录操作
    28. r -x代表其他成员对文件可进行读开启记录/进入目录操作
    29.         
    30. chmod    ugo+-=rwx    ##改权限
    31. [code][code]chmod [-R] <u|g|o><+|-|=><r|w|x> file|dir   
    32. chmod u+x file         ##file拥有者加上x权限
    33. chmod g+w file         ##file拥有组添加w权限
    34. chmod u-x,g+w file     ##file拥有者去掉x权,file1拥有组添加w权限
    35. chmod ugo-r file       ##file的用户组其他人去掉r权限
    36. chmod ug+x,o-r file   ##file用户和组添加x权限,其他人去掉r权限  
    复制代码
    [/code]



    u=rwx=7    |g=rwx=7|o=rwx=7
      421
    u=rw-=6 g=r--=4 o=r--=4   644
    r=4
    w=2
    x=1
    -=0


    7=rwx,6=rw-,5=r-x,4=r--,3=-wx,2=-w-,1=--x,0=---

    1. [code]rw-|r--|r--
    2. u   g   o
    3. u=rw-=4+2+0=6
    4. g=r--=4+0+0=4
    5. o=r--=4+0+0=4
    6. 所以文件权限表示为644
    7. chmod   修改后权限值  file
    8. chmod   777 file
    9. 7=rwx
    10. 6=rw-
    11. 5=r-x
    12. 4=r--
    13. 3=-wx
    14. 2=-w-
    15. 1=--x
    16. 0=---
    复制代码
    [/code]






    用字符方式修改权限如上图


    系统默认权限的设定
    从系统存在角度来说,开放权力越大,系统存在意义越高;从系统安全角度来说,开放权力越少,系统安全性越高。所以系统设定新建文件或目录会去掉一些权限。
    设定方式:
    umask ##查看系统保留权限默认为022
    umask 077 ##修改该系统保留权限为077,此设定为临时设定,只当前shell中生效
    如下图所示,直接输入umask可查看系统保留权限,umask 077则修改该系统保留权限为077



    以上为临时修改,要想永久修改,可用下属方法
    执行 vim /etc/profile,进入文件进行修改,如下图所示



    vim /etc/bashrc        71行是普通用户的更改,73是超级用户的更改
    然后

    vim /etc/profile    60行是普通用户的更改,62是超级用户的更改

    source /etc/bashrc     ##刷新bash配置
    source /etc/profile     ##刷新系统配置



    以上两个文件umask设定值必须保持一致
    设定刷新完成立即生效


    特殊权限
    stickyid    ###强制位
    o+t    ###之针对目录,当一个目录上有t权限时,这个目录中的文件只能被文件拥有者删除
    t=1
    chmod o+t directroy
    chmod 1777 directory

    sgid        ###粘制位
    g+s        ##针对目录,在目录中创建的文件都自动归属到目录所在组,针对二进制文件,文件内记录的程序在执行时和执行者的组身份没有关系,而是以二进制文件的所有组的身份执行的
    chmod g+s file|directory
    chmod 2777 file|directory


    suid        ###冒险位

    u+s        ###针对文件,文件记录动作在执行时是一文件所有人身份执行的,与是谁发起的无关
    设定方式

    chmod u+s file

    chmod 4xxx file






    文件的访问控制(acl列表)
    (1)acl定义
    acl = access control

    指定特殊用户对特殊文件有特殊权限

    1. [code]drwxrwx---+ 2 root root 17 Jul 18 01:39 /westos/
    2.       ^
    3. 表示/westos目录时有权限列表
    复制代码
    [/code]


    1. [code]getfacl  /westos/
    2. file: westos/       ##文件名称
    3. owner: root         ##文件所有人
    4. group: root         ##文件所有组
    5. user::rwx           ##拥有者权限
    6. user:student:rwx    ##特殊用户权限
    7. group::---          ##组权限
    8. mask::rwx           ##权限掩码
    9. other::---          ##其他人权限
    复制代码
    [/code]
    注意:当文件上有权限列表时,ls -l 能看到的权限是假的
    #查看

    getfacl   file



    #内容如下:

    file: file        #文件名称
    # owner: root        #文件的拥有者
    # group: root        #文件的组
    user::rwx   #文件拥有者的权限
    group::rwx        #文件组的权限

    mask::rwx        #权限最大值

    other::rwx        #其他人的权限


    ##设定
    设定acl列表
    设定方法为:
    1. [code]setfacl -m <u|g>:<username|groupname>:权限    文件|目录
    2. -m    #设定
    3. u     #用户
    4. g     #组
    5. d     ##默认设定权限,只对该目录内新建的文件和目录有效,对本目录及目录内原有的文件和目录无效。
    复制代码
    [/code]

      1
      2
      3
      4
      5

    如下图所示,setfacl这只acl列表后,ls -l 查询文件权限,权限中带有+,此时应使用getfacl 文件名,可查看文件详细完整的权限(ls -l

    查询的权限是不完整的)。



    删除列表中的用户或者组

    1. [code]setfacl -x <u|g>:<username|groupname>   文件|目lu
    复制代码
    [/code]







    删除列表中的用户,在使用getfacl查看就发现列表中没之前添加的用户了。如上图所示。

    关闭列表
    setfacl -b 文件|目录
    如下图所示


    6.acl mask值
    (1)mask 权限掩码
    mask用来标实能够赋予用户最大权限
    当用chmod改变文件普通权限时可能会被破坏

    修复
    setfacl -m m:rwx /mnt/file        #用此命令可以恢复mask的值


    用户westos的权限是rwx,设定mask为rw,getfacl则提示westos的有效权限为rw。如下图所示


    ####acl列表的默认权限#####
    #权限针对与目录生效
    #当对目录设定普通的权限列表后,是不能取定特定用户对在目录中新建的文件由指定权限的
    #如果需要权限自动添加到新建文件上那么要设定目录的默认权限


    setfacl -m d:u:student:rwx /mnt/westos    ##设定在westos目录中
    注意:
    默认权限只对目录中新建立的文件或者目录生效,对已经建立的文件无效,对于目录本身也无效

    如下图所示,对目录linux设置默认权限后,切换到hello用户,删除linux中原有的文件时,系统报错:无权限




    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|手机版|Java学习者论坛 ( 声明:本站资料整理自互联网,用于Java学习者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

    GMT+8, 2024-4-24 15:46 , Processed in 0.341746 second(s), 38 queries .

    Powered by Discuz! X3.4

    © 2001-2017 Comsenz Inc.

    快速回复 返回顶部 返回列表