Linux 文件权限总结

在 Linux 中最基本的任务之一就是设置文件权限。理解它们是如何实现的是你进入 Linux 世界的第一步。如您所料,这一基本操作在类 UNIX 操作系统中大同小异。实际上,Linux 文件权限系统就直接取自于 UNIX 文件权限(www.lampbrother.net)。

但不要以为理解文件权限需要长时间的学习。事实上会很简单,让我们一起来看看你需要了解哪些内容以及如何使用它们。

基础概念

你要明白的第一件事是文件权限可以用来干什么。当你设置一个分组的权限时发生了什么?让我们将其展开来说,这个概念就真的简单多了。那到底什么是权限?什么是分组呢?

你可以设置的3种权限:

读 — 允许该分组读文件(用r表示)

写 — 允许该分组写文件(用w表示)

执行 — 允许该分组执行(运行)文件(用x表示)

为了更好地解释这如何应用于一个分组,例如,你允许一个分组可以读写一个文件,但不能执行。或者,你可以允许一个分组读和执行一个文件,但不能写。甚至你可以允许一个分组有读、写、执行全部的权限,也可以删除全部权限来去除该组的权限。

现在,什么是分组呢,有以下4个:

user — 文件实际的拥有者

group — 用户所在的用户组

others — 用户组外的其他用户

all — 所有用户

大多数情况,你只会对前3组进行操作,all 这一组只是作为快捷方式(稍后我会解释)。

到目前为止很简单,对吧?接下来我们将深入一层。

如果你打开一个终端并运行命令 ls -l,你将会看到逐行列出当前工作目录下所有的文件和文件夹的列表

你会留意到最左边那列是像是 -rw-rw-r– 这样的。

实际上这列表应该这样看:

rw- rw- r–

正如你所见,列表将其分为如下3部分:

rw-

rw-

r–

权限和组的顺序都很重要,顺序总是:

所属者 所属组 其他人 — 分组

读 写 执行 — 权限

在我们上面示例的权限列表中,所属者拥有读/写权限,所属组拥有读/写权限,其他人用户仅拥有读权限。这些分组中赋予执行权限的话,就用一个 x 表示。

等效数值

接下来我们让它更复杂一些,每个权限都可以用一个数字表示。这些数字是:

读 — 4

写 — 2

执行— 1

数值代替不是一个一个的替换,你不能像这样:

-42-42-4–

你该把每个分组的数值相加,给用户读和写权限,你该用 4 + 2 得到 6。给用户组相同的权限,也是使用相同的数值。假如你只想给其他用户读的权限,那就设置它为4。现在用数值表示为:

664

如果你想给一个文件664权限,你可以使用 chmod 命令,如:

chmod 664 FILENAME

FILENAME 处为文件名。

更改权限

既然你已经理解了文件权限,那是时候学习如何更改这些权限了。就是使用 chmod 命令来实现。第一步你要知道你能否更改文件权限,你必须是文件的所有者或者有权限编辑文件(或者通过 su 或 sudo 得到权限)。正因为这样,你不能随意切换目录和更改文件权限。

继续用我们的例子 (-rw-rw-r–)。假设这个文件(命名为 script.sh)实际是个shell脚本,需要被执行,但是你只想让自己有权限执行这个脚本。这个时候,你可能会想:“我需要是文件的权限如 -rwx-rw-r–”。为了设置 x 权限位,你可以这样使用 chmod 命令:

chmod u+x script.sh

这时候,列表中显示的应该是 -rwx-rw-r– 。

如果你想同时让用户及其所属组同时拥有执行权限,命令应该这样:

chmod ug+x script.sh

明白这是怎么工作的了吗?下面我们让它更有趣些。不管什么原因,你不小心给了所有分组对文件的执行权限(列表中是这样的 -rwx-rwx-r-x)。

如果你想去除其他用户的执行权限,只需运行命令:

chmod o-x script.sh

如果你想完全删除文件的可执行权限,你可以用两种方法:

chmod ugo-x script.sh

或者

chmod a-x script.sh

以上就是所有内容,能使操作更有效率。我希望能避免哪些可能会导致一些问题的操作(例如你不小心对 script.sh 使用 a-rwx 这样的 chmod 命令)。

目录权限

你也可以对一个目录执行 chmod 命令。当你作为用户创建一个新的目录,通常新建目录具有这样的权限:

drwxrwxr-x

注:开头的 d 表示这是一个目录。

正如你所见,用户及其所在组都对文件夹具有操作权限,但这并不意味着在这文件夹中出创建的文件也具有与其相同的权限(创建的文件使用默认系统的权限 -rw-rw-r–)。但如果你想在新文件夹中创建文件,并且移除用户组的写权限,你不用切换到该目录下并对所有文件使用 chmod 命令。你可以用加上参数 R(意味着递归)的 chmod 命令,同时更改该文件夹及其目录下所有的文件的权限。

现在,假设有一文件夹 TEST,里面有一些脚本,所有这些(包括 TEST 文件夹)拥有权限 -rwxrwxr-x。如果你想移除用户组的写权限,你可以运行命令:

chmod -R g-w TEST

运行命令 ls -l,你讲看到列出的 TEST 文件夹的权限信息是 drwxr-xr-x。用户组被去除了写权限(其目录下的所有文件也如此)。

总结

现在,你应该对基本的 Linux 文件权限有了深入的理解。对于更高级的东西学起来会很轻松,像 setgid、setuid 和 ACL 这些。没有良好的基础,你很快就会混淆不清概念的。

Linux 文件权限从早期到现在没有太大变化,而且很可能以后也不会变化。

时间: 2024-08-02 02:48:43

Linux 文件权限总结的相关文章

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文件权限那些事儿

文件全部权 显示文件的全部权 更改文件的全部权 文件的权限 改动文件的权限 用符号表示法改动 用数字表示法改动 使用umask指定默认的文件权限 參考文献 首先我们要知道Linux的标准文件权限和安全机制与Unix的一致.因此要学习这方面的知识,我们能够參考一下Unix方面的书籍. 文件全部权 在Linux系统中.一切都是文件. 因此文件既包括普通文件也包括文件夹,下文也就不再区分文件和文件夹了. 说到Linux文件权限(permission),我们不得不先说说文件的全部权问题. 在Linux系

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