Linux_shell_文件安全与权限(01)

一个文件一经创建就具有三种访问方式:

1.读

2.写

3.执行

按照所针对的用户,文件的权限可分为三类:

1.文件属主

2.同组用户

3.其他用户

 

1.1文件

一个文件一经创建系统将保存其所有信息(文件位置、文件类型、文件长度、文件的权限等)

1.2文件类型

文件的类型有7种(可以用ls -l 命令查看得出的结果的第一位看出)

    d 目录

    l 符号链接(指向另一个文件)

    s 套接文字

    b 块设备文件

    c 字符设备

    p 命令管道文件

    - 普通文件(不属于以上类型的文件)

1.3权限

使用touch创建一个测试文件

# touch test

然后使用 ls -l查看

#ls -l

-rw-r--r-- 1 root root 0 05-22 11:58 test

第一个 - 告诉我们这是一个普通文件

接下来的9个字符代表的意思分别为:

    rw- 文件属主的权限

    r--  同组用户的权限

    r--其他人的权限

接着是1 表示该文件硬链接的数目

root 文件的属主

root 文件属主所在的用户组

0 文件的长度 不是K字节

05-22 11:58  文件更新时间

test 文件名

 

三组字符中每一组字符中含有三个权限为:

    r 读权限

    w 写权限/更改权限

    x 执行该脚本或程序的权限

    (- 表示被禁用)

下面我们来看一下刚才创建的文件权限-rw-r--r--

-                          rw-                                      r--                                                    r--

属于普通文件         属主可以读写但不可以执行       同组用户可以读 但不可以写和执行          其他用户可读 但不可写和执行

示例:

-                          rwx                                      r-x                                                    rw-

属于普通文件         属主可以读写执行          同组用户可以读和执行 但不可以写          其他用户可读写 但不可执行

 

 

1.4改变权限位

符号模式

chmod 格式:

chmod [who] operator [permission] filename

    who :

         u 文件属主权限

         g 同组用户权限

         o 其他用户权限

         a 所有用户

    operator :

          + 增加权限

          - 取消权限

          = 设定权限

    permission:

          r 读

          w 写

          x 执行

          s

          t

          ........

我们来修改我们刚才创建的文件:-rw-r--r-- 1 root root 0 05-22 11:58 test 

使其属主具有执行的权限

#chmod u+x test

使其同组用户具有写的权限

#chmod g+w test

赋于同组用户和其他用户写的权限

#chmod go+w test

 

绝对模式:

chmod [mode] file

mode是一个八进制数

 

对于八进制数和文件权限表

    0400    文件属主可读

    0200    文件属主可写

    0100    文件属主可执行

   

    0040    同组用户可读

    0020    同组用户可读

    0010    同组用户可执行

 

    0004    其他用户可读

    0002    其他用户可写

    0001    其他用户可执行

 

看我们刚才的文件:-rw-r--r-- 1 root root 0 05-22 11:58 test 

rw-   = 0400 + 0200 = 0600

r--     = 0040

r--     = 0004

最后结果等于:0600 + 0040 + 0004 = 0644(644即表示rw-r--r--权限)

另外一种算法

r   w  -          r  -  -        r  -  -

4 +2             4              4                 =644

 

 

r   w  x          r  -  -        r  -  -

4+2+1          4              4                = 744

r   w  x         r  w  -        r  w  -

4+2+1          4+2          4+2            =766

 

 

现在我们可以用绝对模式把我们刚才创建的文件进行修改:

目前我们的文件:-rwxrwxr-- 1 root root 0 05-22 11:59 test

我们使其同组用户和其他用户只具有读权限

#chmod 744 test

#ls -l

-rwxr--r-- 1 root root 0 05-22 11:59 test
我们使属主不具有执行 并且同组用户具有读写 其他用户只具有读权限

 #chmod 664 test

 #ls -l

-rw-rw-r-- 1 root root 0 05-22 11:59 test

 

如果想要一次设置一个目录下面的所有文件的权限 可使用下面命令:

chmod 644*

这将使文件属主不具有执行 并且同组用户具有读写 其他用户只具有读权限

 

还可以使用-R选项连同子目录下的文件一起设置

chmod -R 644 /usr/local/home/*

这样就可以一次将/usr/local/home/

目录下的所有文件连同各个子目录下的文件的权限全部设置成644权限

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值