说说Linux文件权限那些事儿

  • 文件全部权

    • 显示文件的全部权
    • 更改文件的全部权
  • 文件的权限
    • 改动文件的权限

      • 用符号表示法改动
      • 用数字表示法改动
    • 使用umask指定默认的文件权限
  • 參考文献

首先我们要知道Linux的标准文件权限和安全机制与Unix的一致。因此要学习这方面的知识,我们能够參考一下Unix方面的书籍。

文件全部权

在Linux系统中。一切都是文件。

因此文件既包括普通文件也包括文件夹,下文也就不再区分文件和文件夹了。

说到Linux文件权限(permission),我们不得不先说说文件的全部权问题。

在Linux系统中,文件有两个全部者:用户全部者(u)和组全部者(g)。文件的组全部者独立于拥有该文件的用户。也就是说

大多数情况下。文件全部者所在的用户组就是文件的组全部者,但这不是必须的。文件的用户全部者不一定属于文件的组全部者。这两者之间没有什么必定的联系。所以假设你赋予文件的组全部者某个权限,并不会同一时候赋予给用户全部者。假设想要实现此功能,最佳的方法就是将用户全部者加入到组全部者的成员中。

显示文件的全部权

使用ls -l能够显示文件的用户和组全部者:

    $ ls -l
    drwxr-xr-x 5 sun family  4096 Mar  4 11:33 dir2
    drwxr-xr-x 3 sun family  4096 Mar  4 11:40 dir3
    -rw-r--r-- 1 sun family   711 Mar  4 11:21 exp
    -rwxr-xr-x 1 sun family  5189 Mar  5 08:20 feb

更改文件的全部权

假设要更改文件到的全部权。能够使用chownchgrp命令。chown(大多数情况下。仅仅能使用root用户使用)能够更改一个或多个文件的用户全部者:

    # chown sun hello.c

chgrp则能够用来改动文件或文件夹属于的用户组。

文件的权限

Linux对于文件的权限设置事实上是非常好理解的。拥有r权限,便能够读取文件。查看文件的内容;拥有w权限,便能够更改文件的内容;拥有x权限,并且该文件是二进制可运行文件那么就能够运行该文件。

可是对于文件夹的话,就没有那么好理解了。假设用户拥有某文件夹的运行(x)权限,那么他就能够cd到该文件夹;假设要列出该文件夹下的文件(也就是使用ls命令)。那么就必须要有对文件夹的读(r)权限。假设您仅仅须要訪问该文件夹。那么您仅仅须要对该文件夹有x权限就够了。有一点须要强调的是,假设你使用ls -l命令显示文件夹下的文件的具体信息,可是你此时对该文件夹并没有运行权限。那么你将得到例如以下的结果:

    ?--------- ? ?

? ?            ?

hello.c
    ?

--------- ? ? ?

?            ? deb.txt
    ?--------- ? ? ? ?            ? strip.c

你会发现结果中仅仅显示了文件的名字。其它信息基本都是?

。事实上这是由于文件的大小等信息须要从磁盘信息中才干推断出来,因此必须具有对文件夹的运行(x)权限,才干使-l选项真正发挥效果。

另外另一点须要注意,删除文件不须要对文件具有写入(w)权限,仅仅须要对该文件夹具有写入(w)权限就可以。可是在这样的情况下,系统会提示你是否要覆盖对文件的写保护设置。

改动文件的权限

要改动文件的权限,能够使用chmod命令,注意不要与chown(改动文件的全部者)混淆。

事实上我们能够这样区分:chown事实上是“change owner”(改变主人)的简写。而chmod事实上是“change mode”

(改变(訪问)模式)的简写。

用符号表示法改动

要加入(使用“+”)用户全部者的写权限能够这样:

    $ chmod u+w hello.c

要剥夺(使用“-”)组全部者的读权限能够这样:

    $ chmod g-r hello.c

要设置用户全部者具有特定的权限能够使用“=”:

    $ chmod u=rw hello.c

PS:须要说明的是,这里u代表用户全部者。g代表组全部者,o代表其它用户,a代表全部用户。

用数字表示法改动

在使用之前我们须要先理解一下数字表示法的原理。在数字表示法中,依据每种权限是否被许可,将其设置为0或1。并将得到的三位二进制数转换为八进制数。

将这三个八进制数组合在一起便是该文件权限的数字表示。当中r相应的权值为4,w相应的权值为2,x相应的权值为1.

用户 其它
权限 r w x r - x r - -
二进制 1 1 1 1 0 1 1 0 0
八进制 7 5 4
数字表示法 754

看完这个表格我想你应该大致明确了,数字表示法的基本原理。以下让我们具体操作一下:

    $ chmod 754 hello.c

数字表示法和符号表示法各有优劣,前者使用起来更加简洁,运行一条命令就能够完毕我们想要的结果。缺点是这样的表示法不直观令人费解;而后者非常直白。通俗易懂,可是运行起来效率不高,往往须要运行几条命令才干达到我们要的结果(假设你想要的结果复杂的话)。

使用umask指定默认的文件权限

讲完数字表示法,我们不得不提一下Linux文件管理中的一个重要的命令——umask命令。

依据维基百科上的说法。umask是一串二进制码,使文件创建时权限具有一个初始值。当中曾这样做比喻,mask码就相当于一个最后的过滤器,每当文件创建时就剥除文件相应的权限。每当你创建了一个文件,系统会依据umask码自己主动为你设置文件的权限。

当某个权限的二进制值为1时表示禁止该权限。举个样例来说,假如umask码为0022,在这里仅仅有后三位022是我们所须要的。第一位是为特殊权限设置,我们暂不讨论。

当你创建文件夹exa时,系统中便会这样计算该文件夹的权限:777-022=755。对于文件来说,这一数字的最大值各自是6。系统不同意你在创建一个文本文件时就赋予它运行权限,必须在创建后用chmod命令添加这一权限。文件夹则同意设置运行权限。这样针对文件夹来 说。umask中各个数字最大能够到7。

    $ umask
    0022
    $ mkdir example
    $ ls -ld example/
    drwxr-xr-x 2 2014012537 xg+jsj14 4096 Mar 12 12:02 example/

參考文献

  1. Robert Love.Linux系统编程。2014,5.人民邮电出版社
  2. Scott Grannerman.Linux命令速查手冊,2009.10.人民邮电出版社
  3. Aeleen Friscb.Unix与Linux系统管理,2006.11.清华大学出版社
  4. 维基百科-umask.https://en.wikipedia.org/wiki/Umask
  5. uid=1919063545">umask命令的作用


本作品採用知识共享署名-非商业性使用-同样方式共享 4.0 国际许可协议进行许可。

时间: 2024-08-06 03:41:55

说说Linux文件权限那些事儿的相关文章

Linux 文件权限总结

在 Linux 中最基本的任务之一就是设置文件权限.理解它们是如何实现的是你进入 Linux 世界的第一步.如您所料,这一基本操作在类 UNIX 操作系统中大同小异.实际上,Linux 文件权限系统就直接取自于 UNIX 文件权限(www.lampbrother.net). 但不要以为理解文件权限需要长时间的学习.事实上会很简单,让我们一起来看看你需要了解哪些内容以及如何使用它们. 基础概念 你要明白的第一件事是文件权限可以用来干什么.当你设置一个分组的权限时发生了什么?让我们将其展开来说,这个

Linux文件权限表示

属主,属组,其他用户 Linux下一个文件的权限包含属主.群组和其他人的权限,并且各个用户对该文件具有单独设置的权限,这是 Linux 权限模型的核心. 那么什么是属主,属组,其他用户呢? 属主: 属主即一个文件的拥有者,一般为这个文件的创建者 属组: Linux下的每个用户都会属于一个组别.那么这个组别就叫做属组 其他用户: 其他用户即为属主和属主所在属组以外的所有人, 例如:有个用户A,用户名是 A,他的属组名称也是 A ,还有一个用户B,用户名是B 他的属组名称也是B 这个时候用户A 创建

修改linux文件权限命令

修改linux文件权限命令:chmod Linux系统中的每个文件和目录都有访问许可权限,用它来确定谁可以通过何种方式对文件和目录进行访问和操作. 文件或目录的访问权限分为只读,只写和可执行三种.以文件为例,只读权限表示只允许读其内容,而禁止对其做任何的更改操作.可执行权限表示允许将该文件作为一个程序执行.文件被创建时,文件所有者自动拥有对该文件的读.写和可执行权限,以便于对文件的阅读和修改.用户也可根据需要把访问权限设置为需要的任何组合. 有三种不同类型的用户可对文件或目录进行访问:文件所有者

Linux文件权限详解

在Linux中的每一个文件或目录都包含有访问权限,这些访问权限决定了谁能访问和如何访问这些文件和目录. 通过设定权限可以从以下三种访问方式限制访问权限:只允许用户自己访问:允许一个预先指定的用户组中的用户访问:允许系统中的任何用户访问.同时,用户能够控制一个给定的文件或目录的访问程度.一个文件活目录可能有读.写及执行权限.当创建一个文件时,系统会自动地赋予文件所有者读和写的权限,这样可以允许所有者能够显示文件内容和修改文件.文件所有者可以将这些权限改变为任何他想指定的权限.一个文件也许只有读权限

修改linux文件权限

Linux系统中的每个文件和目录都有访问许可权限,用它来确定谁可以通过何种方式对文件和目录进行访问和操作. 文件或目录的访问权限分为只读,只写和可执行三种.以文件为例,只读权限表示只允许读其内容,而禁止对其做任何的更改操作.可执行权限表示允许将该文件作为一个程序执行.文件被创建时,文件所有者自动拥有对该文件的读.写和可执行权限,以便于对文件的阅读和修改.用户也可根据需要把访问权限设置为需要的任何组合. 有三种不同类型的用户可对文件或目录进行访问:文件所有者,同组用户.其他用户.所有者一般是文件的

修改linux文件权限命令:chmod

修改linux文件权限命令:chmod Linux系统中的每个文件和目录都有访问许可权限,用它来确定谁可以通过何种方式对文件和目录进行访问和操作. 文件或目录的访问权限分为只读,只写和可执行三种.以文件为例,只读权限表示只允许读其内容,而禁止对其做任何的更改操作.可执行权限表示允许将该文件作为一个程序执行.文件被创建时,文件所有者自动拥有对该文件的读.写和可执行权限,以便于对文件的阅读和修改.用户也可根据需要把访问权限设置为需要的任何组合. 有三种不同类型的用户可对文件或目录进行访问:文件所有者

linux学习随笔——linux文件权限管理和网络配置

一.linux文件权限管理 查看某个文件的权限命令:ls -l linux文件权限有4种:读(r).写(w).执行(x)和无权限(-) 一般用10个字符表示其权限,按照(1-3-3-3)来分组划分 1位置 表示文件类型 "-"表示文件,"d"表示目录 2-4位 表示用户权限(u) 5-7位 表示组权限(g) 8-10  表示其他权限(o) 通常用chmod来修改权限:chmod     u+r 目标文件 也可以用数字来表示权限 r=4 w=2 x=1 chown命令

Linux文件权限管理

一.设置文件所属的用户以及所属的组(chown,chgrp) chgrp用来更改文件的组拥有者,其一般格式为: chgrp [option] group file (1)把文件test的组拥有者改为zfs: chgrp zfs test (2)把test及其子目录下的所有文件的组拥有者改为zfs: chgrp -R zfs test chown用来更改文件所有者与组拥有者,其一般格式为: chown [option] owner[:group] file (1)将test及其子目录下的所有文件的

linux文件权限误修改之后如何恢复

linux文件权限误修改之后如何恢复 linux系统权限修复 应用场景 在有些时候,不小心执行了修改文件权限,比如chown mysql.mysql / ,这种对属组属主的操作,想要恢复看起来很麻烦,怎么办呢 这个脚本可以让你脱离苦海 使用条件 可以提前备份相关权限,脚本提供备份功能 也可以找到权限相似的主机备份好之后在自己主机恢复 备份方法: 直接复制脚本内容,在你的主机向运行,需要有getfacl命令 备份完成后,备份的是整个文件系统当中所有文件的权限信息 含有两个文件,分别是/tmp/ge