• Linux日记Day3---Linux的文件属性与目录配置


    Linux最优秀的地方之一,就在于它的多用户、多任务环境。为了让用户具有较安全的管理机制,文件的权限管理是很重要的。Linux通常将文件的访问方式分为分为三个类别,分别是owner/group/other,而且具有read/write/excute等权限。在Linux下面这么多的目录/文件,到底代表什么意义呢?下面我们就来一一介绍。

    一、用户与用户组

    1. 文件拥有者(用户)

    由于Linux是多用户、多任务的系统,可能常常会多人同时使用主机工作,考虑到每个人的隐私权以及每个人喜好的工作环境,“文件拥有者”(owner)就相当重要了。例如,将电子邮件转存为文件后,放在你自己的主文件夹下,这个时候,就把该文件设置成“只有文件拥有者,才能查看与修改这个文件的内容”。即使其他人知道您拥有这个文件,但由于该文件设置了适当的权限,他们也无法知道该文件的内容。

    2. 用户组

    用户组(group)就是具有相同特征的用户(user)的集合体;比如有时我们要让多个用户具有相同的权限,比如查看、修改某一文件或执行某个命令,这时我们需要用户组,我们把用户都定义到同一用户组,我们通过修改文件或目录的权限,让用户组具有一定的操作权限,这样用户组下的用户对该文件或目录都具有相同的权限,这是我们通过定义组修改文件的权限来实现的。

    首先说明一点:文件所有者用户组本身没有什么关系,比如用户组可以是root,但是文件所有者为user1;

    案例分析:

    (1)一个文件的文件所有者为user1,用户组为root,当前登录用户为user1,

    如果想要让文件的所有者变成root,能成功吗?不能

    (2)一个文件的文件所有者为user1,用户组为root,当前登录用户为root,

        如果想要让文件的所有者变成root,能成功吗?

    总结一点:改文件的所有者、用户组应该是root用户的职责;

    再说明一点:一个用户总会归属于一个或多个用户组,一个用户组里可以有多个用户,比如root用户归属于root用户组,但是我们也可以创建一个用户user1,既归属于group1用户组,又归属于group2用户组;

    3.  其他人

    在Linux中,任何一个文件都具有“用户、用户组和其他人”三个权限。我们可以用图1.1来解释。此时,以图中的王三毛为例,王三毛这个“文件”拥有者王三毛,它属于王大毛这个用户组,而张小猪相对于王三毛,则只是一个其他人而已。

    image

    图 1.1

    解释:root是Linux和unix系统中的超级管理员用户帐户,该帐户拥有整个系统至高无上的权力,所有对象他都可以操作。

    二、Linux文件权限

    1. Linux文件属性

    打开终端,执行ls命令,查询文件信息如下图所示

    clip_image002

    注:“连接”的含义:指占用的节点(i-node即I节点),新建的目录其下含有“.和..”两个目录,连接为2,再新增子目录,会依次增加连接数,但增加的文件不会增加连接数。

    2. Linux 文件权限属性

    范例:若有一个文件的属性为“-rwxr-xr—”,注意下面的数字表示第几位,不表示权限编码。

    说明如下: [-] [r w x] [r  -  x] [r  -  -]

                     1   2 3 4   5 6 7    8 9 0

    1:表示这个文件名为目录文件(上面为文件)。

    234:拥有者的权限(上面为可读可写可执行)。

    567:用户组用户权限(上面为可读可执行)。

    890:其他用户权限(上面为仅可读)。

    (1) 上面的属性情况表示一个文件、这个文件的拥有者可读、可写、可执行。但同用户组的人可读与执行非同用户组的用户仅可读的意思

    (2) 除此之外,需要特别注意的是x。若文件名为一个目录的时候,x与目录的关系相当重要,如果在该目录下不能执行任何命令的话,那么自然也就无法进入了,因此,请特别注意,如果想要开放某个目录让一些人进来的话,请记住,开放该目录的x属性。至于目录的权限相关说明,我们会在下面继续介绍。

    3. 更改文件权限

    3.1 文件权限三剑客:chgrp , chown , chmod

    ·chgrp 更改所属组chgrp [-R] 组名 DIR/FILE(-R 递归子目录下所有文件、目录都更新成此组)

                                把DIR或FILE给组名

    ·chown 更改所有者:chown [选项] 用户[ . 组] file/dir

                                 选项:-V 显示chown命令所做工作

                                         -R 同上,句点可用“:”代替

    ·chmod 更改权限:chmod [-R]nnn 文件或目录

    注意:shell 文件用VI编辑后,权限会改变,需要更改权限。

    3.2 修改权限的方式

    文件属性的改变使用chmod命令,但是,属性的设置方法有两种,分别可以使用数字或者是符号。

    (1) 数字类型改变文件权限

    Linux文件的基本属性有9个,分别是owner/group/others组别的read/write/ excute属性,先复习一下刚刚上面提到的数据: 

    –rwx rwx rwx

    这9个属性是三个一组。其中,可以使用数字来表示各个属性,各属性的对照表如下:

    权限代表数:       r→4;   w→2;  x→1

    同一组owner/group/others的3个属性r/w/x是需要累加的,例如当属性为 [-rwxrwx---] 则是:

    owner = rwx = 4+2+1 = 7

    group = rwx = 4+2+1 = 7

    others= --- = 0+0+0 = 0

    所以,等一下设置属性的更改时,该属性的数字就是770。

    更改属性的命令chmod的语法是这样的:

    [root@linux ~]# chmod [-R]xyz 文件或目录

    参数:

    xyz : 就是刚刚提到的数字类型的权限属性,为 rwx 属性数值的相加。

    -R : 进行递归( recursive )的持续更改,即连同子目录下的所有文件、目录都更新成为这个用户组。常常用在更改某一目录的情况。

    (2) 符号类型改变文件权限
    还有一个改变属性的方法。从之前的介绍中可以发现,基本上就9个属性,分别是 (1)user (2)group (3)others三组。我们就可以通过u, g, o来表示三组的属性。此外,a表示all,即全部的三组。读写属性可以写成r, w, x。也就是可以使用下面的方式来看:

    假如我们要“设置”一个文件的属性为“- rwx r-x r-x”,基本上就是:
      user (u):具有可读、可写、可执行的权限。
      group与others (g/o):具有可读与执行的权限。
      所以就是: chmod  u=rwx,go=rx  .bashrc
    # 注意。那个 u=rwx,go=rx 是连在一起的,中间并没有任何空格。

  • 相关阅读:
    python测试开发django186.使用 jquery 的 .val() 无法获取input框的输入值(已解决) 上海
    2022年第 10 期《python接口web自动化+测试开发》课程,2月13号开学! 上海
    python测试开发django185.bootstraptable 后端搜索功能实现(queryParams) 上海
    python测试开发django184.bootstraptable 前端分页搜索相关配置 上海
    python测试开发django181.自定义过滤器(除法取余) 上海
    python测试开发django180.dockercompose部署django+mysql环境 上海
    python测试开发django183.bootstrapformvalidation重置校验的方法 上海
    pytest文档79 内置 fixtures 之 cache 写入和读取缓存数据 上海
    python测试开发django182.jQuery重置form表单 上海
    golang interface用法
  • 原文地址:https://www.cnblogs.com/sunddenly/p/3976637.html
Copyright © 2020-2023  润新知