Linux学习笔记(2)----文件权限

Linux文件权限

安全性是linux的一大特点,Linux是一个多用户,多任务的环境.
在Linux中,有三种访问身份 : owner,group,others.
其中权限又有3种类别 : read,write,execute(执行)
这里引入用户和用户组的两个概念,用户简单地指单个成员.


用户组,顾名思义由多个相关性的用户组成.鸟哥解释说,比如你在同一个系统搞团队开发的时候,假设有组A,组B,每组有自己的不同成员,一般来说同组组员之间可以相互查看修改报告,而不同组的组员则不可以查看其它组的报告,如此组A,组B可称为两个用户组.
当然,继续细分的话用户和用户之间(即使处于同一个用户组)也可以设置不同的权限.
有趣的是,用户也可以属于多个用户组.

-Linux文件属性:
我们输入命令 ls -al可以查看文件信息(-al 表示列出所有文件详细权限与属性,隐藏文件则其文件名第一个字符为“.”,如.cache,.config)
这里写图片描述

其中 第一位表示文件类型:

  • d 指目录文件 如上图的 Desktop

  • - 指文件 如.bash_history

-权限:
第2-10位分别表示,文件所有者,同组用户,其他用户组 的权限.
rwx r-x rw-
则说明
用户 可以 读 写 执行
用户组 可以读 - 执行,
其他 可以读 写 -


如上图,
第一个dh 表示文件所有者帐号,
第二个是dh指所属用户组,
第五列(如Documents的 4096)表示这个文件容量大小,默认单位B.
第六列则为创建日期或者最近修改日期.


  • 改变文件属性权限
    chgrp: 改变文件所属用户组.首先,用户组肯定必须存在于/etc/group ,比如文件 a.log 原本属于用户组A,现在改为属于用户组B
    修改命令语法为: chgrp B a.log
    chown:改变文件所有者.语法同上方类似, chown User1 A.log ,另外一点就是如果更改的文件是一个目录,可以在命令间 插一个 -R ,表示递归(Recursive)持续更改,连同子目录下所有文件一起改变.
    如:chown -R User1 A 表示把目录A及其包含子目录和文件所属用户都改为User1
    chmod:改变文件权限.改变权限的指令相对复杂一点,一般有两种:
    1.数字类型.在linux中我们约定俗成可以认为,用数字代表权限的话,r:4,w:2,x:1.
    所以每个文件的权限数字都代表唯一的组合,举个例子,
    rwx = 4+2+1 =7;
    r-x = 4+0+1 =5;
    rw- = 4+2+0 =6;
    因此我们如果输入:chmod 760 .bash
    表示 .bash 在用户的权限是rwx=7,用户组的权限是rw-=6,其他用户组权限是- - -=0.
    2.符号类型.
    用小写字母表示不同身份,u:user g:group o:others 值得注意的是还引入了一个 a:表示all,以上三种同时修改
    =号表示设置,+表示添加, -表示除去
    chmod u=rwx,go=rx .bash
    表示user设置rwx,group,others设置为rx.其他照此类推.
    chmod a+w .bash
    表示all(三个身份都)加上write这个权限
    符号类型的修改方法相对于数字类型安全点,因为它可以忽略那些原来未知的权限,比如某些文件你不知道它原来对不同身份的原本权限,你可以只修改你想要的身份.而数字修改需要对三个身份都指定

  • 文件默认权限:
    - umask:
    当我们在linux新建一个文件或者目录的时候,它的默认权限是什么呢?
    在终端输入umask 我们可以看到

    这里写图片描述

    0002代表四个权限,第一个0指特殊权限,在此先忽略.
    后三位的 0 0 2 分别指三个身份下,前面提到的权限数字要拿掉的权限.
    我们先记住的是:文件666,目录777 就是umask是以文件rw- 目录rwx为前提去执行的.

  • 在目录中表示如下: (r-4 w-2 x-1)
    1. user 拿掉0 所以权限依旧是: r w x
    2. group拿掉0 权限依旧是: r w x
    3. others 拿掉2 权限是w: rwx - w(2) = r - x
  • 在文件中表示如下:
    1. user 拿掉0 所以权限依旧是: r w -
    2. group拿掉0 权限依旧是: r w -
    3. others 拿掉2 权限是w: rw- - w(2) = r - -
      因此 我们touch一个新文件和 mkdir 一个新目录,因此看到它的对应权限为:

      这里写图片描述


umask的值我们是可以修改的 比如 umask 003 则表示新建时候把文件(666) ,目录(777) 三个身份对应移除 - - - - - - - w x
  • 注意的是:我们不能直接用减法计算权限,比如如果你修改默认为umask 003,如果是减法文件本身是666 - 003 = 663 错误就出现了.移除了3 结果不可能有3

  • 默认情况,出于安全考虑root身份的umask移除的权限比较多 为022

  • 一般用户是002,保留了用户组的写入权限
    参考:《鸟哥的Linux私房菜》 p180

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值