Permissions, important and tricky!
Unix permissions concern who can read a file or directory, write to it, and execute it. Permissions are granted or withheld with a magic 3-digit number. The three digits correspond to the owner (you); the group (?); and the world (everyone else).
Think of each digit as a sum:
|
execute permission |
= 1 |
|
write permission |
= 2 |
|
write and execute (1+2) |
= 3 |
|
read permission |
= 4 |
|
read and execute (4+1) |
= 5 |
|
read and write (4+2) |
= 6 |
|
read, write and execute (4+2+1) |
= 7 |
Add the number value of the permissions you want to grant each group to make a three digit number, one digit each for the owner, the group, and the world. Here are some useful combinations. Try to figure them out!
修改方式1:以绝对方式改变权限
chmod 600 {filespec}You can read and write; the world can't. Good for files.
chmod 700 {filespec}You can read, write, and execute; the world can't. Good for scripts.
chmod 644 {filespec}You can read and write; the world can only read. Good for web pages.
chmod 755 {filespec}You can read, write, and execute; the world can read and execute. Good for programs you want to share, and your public_html directory.
Permissions, another way(修改方式2:以符号模式改变权限(在原来基础上增加添加定义的权限))
You can also change file permissions with letters:
|
u = user (yourself) |
g = group |
a = everyone |
|
r = read |
w = write |
x = execute |
chmod u+rw {filespec}Give yourself read and write permission
chmod u+x {filespec}Give yourself execute permission.
chmod a+rw {filespec}Give read and write permission to everyone.
使用文件命令对文件进行操作的前提是拥有相应的权限。下面我们介绍如何控制这些权限。
(1)用户和权限
Linux为每个文件都分配了一个文件所有者,称为文件主,并赋予文件主惟一的注册名。对文件的控制取决于文件主或超级用户(root)。文件或目录的创建者对创建的文件或目录拥有特别使用权。
文件的所有关系是可以改变的,可以将文件或目录的所有权转让给其它用户,但只有文件主或root用户才有权改变文件的所有关系。文件的所有权的标志是用户ID(UID)。
利用chown 命令可以更改某个文件或目录的所有权。例如,超级用户把自己的一个文件myfile拷贝给用户xu。为了让用户xu能够存取这个文件,超级用户(root)应该把这个文件的属主设为xu,否则,用户xu无法存取这个文件,命令如下:
chown xu myfile
如果改变了文件或目录的所有权,原文件主将不再拥有该文件或目录的权限。
系统管理员经常使用chown命令,以便将文件拷贝到另一个用户的目录下以后,让该用户拥有使用该文件的权限。
(2)用户组
在Linux下,每个文件又同时属于一个用户组。当创建一个文件或目录时,系统会赋予它一个用户组关系,用户组的所有成员都可以使用此文件或目录。
文件用户组关系的标志是GID。文件的GID只能由文件主或超级用户(root)来修改。chgrp命令可以改变文件的GID。
(3)用户和权限
Linux系统中的每个文件和目录都有存取许可权限,用它来确定谁可以通过何种方式对文件和目录进行访问和操作。
Linux系统中规定了四种不同类型的用户,即文件主(owner)、同组用户(group)、可以访问系统的其它用户(others)、超级用户(root),具有管理系统的特权。
存取权限规定三种访问文件或目录的方式:读(r)、写(w)、可执行或查找(x)。
当用“ls -l”命令显示文件或目录的详细信息时,最左边的一列为文件的存取权限,其中各位的含义如图4所示。
图4 文件权限表示
◆文件的存取权限
读权限(r)表示只允许指定用户读取相应文件的内容,而禁止对它做任何的更改操作。将所访问的文件的内容作为输入的命令都需要有读的权限。例如cat、more等。
写权限(w)表示允许指定用户打开并修改文件。例如命令vi、cp等。
执行权限(x)表示允许指定用户将该文件作为一个程序执行。
◆目录的存取权限
在ls命令后加上-d选项,可以了解目录文件的使用权限。
读权限(r)表示可以列出存储在该目录下的文件,即读目录内容列表。这一权限允许Shell使用文件扩展名列出相匹配的文件名。
写权限(w)表示允许用户从目录中删除或添加新的文件,通常只有文件主才有写权限。
执行权限(x)表示允许用户在目录中查找,并能用cd命令将工作目录改到该目录。
(4)chmod命令
chmod命令用于改变或设置文件或目录的存取权限。只有文件主或超级用户root才有权用chmod改变文件或目录的存取权限。
根据表示权限的方式不同,该命令有以符号模式改变权限和以绝对方式改变权限两种用法。
◆以符号模式改变权限
chmod命令的一般格式是:chmod key 文件名
其中,key由以下各项组成:
-----------------------------------------------------------------------------------------------------------------------------------
[who] [操作符号] [mode]
操作对象 who可以是下述字母中的任一个或它们的组合: u 表示用户(user),即文件或目录的所有者。g 表示同组(group)用户,即与文件属主有相同组ID的所有用户。 o 表示其它(others)用户。 a 表示所有(all)用户,它是系统默认值。
操作符号可以是下述符号: + 添加某个权限。 - 取消某个权限。 = 赋予给定权限并取消其他所有权限(如果有的话)。
mode所表示的权限可用下述字母的任意组合:r 表示可读。w 表示可写。x 表示可执行。X 表示只有目标文件对某些用户是可执行的,或者该目标文件是目录时才追加x (可执行)属性。s 在文件执行时把进程的属主或组ID置为该文件的文件属主。
方式“u+s”设置文件的用户ID位, “g+s”设置组ID位。t 保存程序的文本到交换设备上。 u 与文件属主拥有一样的权限。 g 拥有与文件属主同组用户一样的权限。 o 与其它用户拥有一样的权限。
-----------------------------------------------------------------------------------------------------------------------------------
上面这三部分必须按顺序输入,可以用多个key,但必须以逗号隔开。例如:
$ chmod a+x ex1
上面代码表示将文件ex1的权限改为所有用户(a)都有执行权限(+x)。
$ chmod u=r,ug=x ex1
上面这行代码表示将文件ex1的权限重新设置为文件主可以读和执行,组用户可以执行,其它用户无权访问。
◆以绝对方式改变权限
以绝对方式改变权限一般格式是:chmod mode 文件名
用绝对方式设置或改变文件的存取权限就是用数字“1”和“0”表示图4中所 示的9个权限位, 置为“1”表示有相应权限, 置为“0”表示没有相应权限。例如,某个文件的存取权限是文件主有读、写和执行的权限,组用户有读和执行的权限,其它用户仅有读的权限。用符号模式表示就 是rwxr-xr--,用二进制数字表示就是111101100。
为了方便记忆和表示,通常将这9位二进制数用等价的3个从0到7的八进制数表示,即从右到左3个二进制数换成一个八进制数。这样,上述二进制数就等价于八进制数“754”。
也就是说,mode是以3位八进制数字出现的,最左位表示文件主权限,中间位表示组用户权限,最右位表示其它用户权限。
例如,chmod 664 ex1使文件ex1的文件主和同组用户具有读写权限,但其它用户只可读。
◆umask命令
umask命令用来设置限制新建文件权限的掩码。其一般格式是:umask mode
当新文件被创建时,其最初的权限由文件创建掩码决定。用户每次注册进入系统时,umask命令都被执行,并自动设置掩码mode来限制新文件的权限。用户可以通过再次执行umask来改变默认值,新的权限将会把旧的覆盖掉。
利用umask命令可以指定哪些权限将在新文件的默认权限中被删除。例如,可以使用下面的命令创建掩码,取消组用户的写权限以及其他用户的读、写和执行权限: umask u=,g=w,o=rwx
执行该命令以后,下面所建新文件的文件主权限未作任何改变,而组用户没有写权限,其它用户的所有权限都被取消。
应注意,在umask命令和chmod命令中,操作符“=”的作用恰恰相反。在chmod中,利用它来设置指定的权限,而其余权限都被取消;但是在umask命令中,它将在原有权限的基础上把指定的权限删除。
不能直接利用umask创建一个可执行的文件,用户只能在其后利用chmod命令使它具有执行权限。假设执行了下面命令:
umask u=,g=w,o=rwx
虽然在命令行中,文件主和组用户的执行权限没有被删去,但默认的文件权限还 是640(即rw-r-----),而不是750(rwxr-x---)。但是,如果创建的是目录,或者通过编译程序创建一个可执行文件,将不受此限制。 在这种情况下,文件的执行权限会被设置。
此外,也可以使用八进制数值来设置mode。在umask中所指定的权限 表示要删除的权限,所以,如果一个文件原来的初始权限是777,那么执行命令umask 022以后, 那么该文件的权限将变为 755;如果该文件原来的初始权限是666, 那么该文件的权限将变为644。
使用下面的命令可以检查新创建文件的默认权限:
umask -s
上面命令中,选项-s表示以字符形式显示当前的掩码。
如果直接输入umask命令,不带任何参数,那么将以八进制形式显示当前的掩码。系统默认的掩码是0022。
相关推荐
* 仅可读(r):目录的读权限仅允许我们读目录,获得在该目录中所有文件名的列表,不可添加删除其中的文件或目录,也不可读取和改写其中文件的内容。 * 仅可写(w):如果只有写权限,仍然无法往目录中添加删除或...
上述输出中,`drwxrwxrwx`即为文件的权限信息,表示该文件是一个目录,且所有者、所属组和其他用户都拥有读、写和执行权限。 ### 修改文件权限 修改文件权限主要通过`chmod`命令实现,其语法如下: ``` chmod ...
- `755`:文件所有者具有读写执行权限,组和其他用户仅具有读执行权限。 #### 知识点六:递归设置权限 为了递归地设置文件和目录的权限,可以在 `chmod` 命令后加上 `-R` 参数。 - **基本语法**:`chmod -R [mode...
文件或目录的访问权限可以被分为三组,每组用三位表示,分别为文件属主的读、写和执行权限;与属主同组的用户的读、写和执行权限;系统中其他用户的读、写和执行权限。 Linux 系统提供了多种命令来管理文件或目录的...
本文将详细介绍Linux文件目录的权限和属性,并通过实际操作来加深理解。 #### 二、文件权限的基本概念 Linux中的文件权限主要包括读(Read)、写(Write)和执行(Execute)三种基本类型,分别用字母r、w和x表示。...
本文将详细讲解如何使用Linux命令来改变文件或目录的访问权限。 首先,我们需要了解Linux的权限模型。在Linux中,每个文件和目录都有三个基本的权限:读(r)、写(w)和执行(x)。这些权限分别对应文件的所有者、...
文件权限是指用户和群组对文件或目录的访问权限,可以分为读取、写入和执行三种权限。查看文件的权限和属性,可以使用命令 `ls -l`,该命令可以显示各个文件或目录的权限及属性信息。 文件权限的格式为 `rwxr-xr-x`...
linux文件目录权限具体含义,包括设置文件夹权限能执行什么命令以及设置文件的权限具体能执行什么命令
执行`ls -al`命令后,你会看到文件的详细信息,包括文件类型(如目录[-]、链接文件[l]、设备文件[b]等)、文件权限(以rwx三字符为一组,分别代表读、写、执行权限)。权限分为文件所有者、文件所属用户组和其他人的...
chmod 命令可以改变文件或目录的权限位,例如,chmod 755 文件名可以将文件的权限设置为用户具有读、写和执行权限,同组用户具有读和执行权限,其他组用户具有读和执行权限。 Linux 的文件权限管理方式还可以通过 ...
例如,权限字符串 `rwxr-x---` 表示文件拥有者具有全部权限(读、写、执行),组群成员只有读和执行权限,其他用户没有任何权限。 #### 三、文件权限设置命令 - **chgrp**: 用于更改文件或目录的组群归属。例如,`...
其中第一个字符 d代表目录, -代表字符 w代表可写,r代表可读 x代表可执行 数字为4,2,1其中第一组是文件或者目录所有者权限,第二组代表当前用户所在用户组,第三组是其他用户组的权限所以控制文件的权限是精确到...
除了基本的读、写、执行权限外,Linux 文件系统还提供了 setuid、setgid 和 sticky bit 等特殊权限位,以满足更复杂的权限控制需求。 setuid 权限位是指在执行文件时,以文件所有者的权限执行该文件。典型的文件是 ...
例如,/usr/bin/locate 命令可以赋予 SGID 权限,执行用户 lamp 对 /usr/bin/locate 命令拥有执行权限,执行时组身份会升级为 slocate 组。 Sticky Bit 权限 Sticky Bit 权限是一种特殊权限,防止普通用户删除或...
例如,`drwxr-xr-x`意味着这是一个目录,文件所有者有读、写和执行权限,同组用户和其他用户仅有读和执行权限。 #### 修改文件权限:`chmod` `chmod`命令是用于修改文件或目录访问权限的强大工具。它有两种使用...
- `532`意味着所有者有读和执行权限,所属组有写和执行权限,其他用户只有执行权限。 - `744`意味着所有者、所属组和其他用户都有读和写权限,只有所有者有执行权限。 - `121`意味着所有者有执行权限,所属组和其他...
例如,命令`chmod 755 filename`将设置文件所有者具有读、写、执行权限,组用户和其他用户具有读和执行权限。符号表示法如`chmod u=rwx,g=rx,o=rx filename`也能够实现同样的效果。 在Linux中,目录权限也非常重要...
本文档主要介绍了如何使用Linux命令来改变文件或目录的访问权限,包括`chmod`, `chown`, 和 `chgrp`三个命令。 `chmod`命令是Linux中用于更改文件或目录权限的核心工具。权限分为三种类型:只读(r)、只写(w)和...
它可以改变文件或目录的读、写和执行权限。使用方法如下: * chmod u=rxw 文件 * chmod g+w 文件 * chmod o-w 文件 * chmod a=rw 文件 * chmod 425 文件 其中,u 代表用户,g 代表组,o 代表其他人,a 代表所有人...
一个文件或目录可能有读、写及执行权限。 Linux 文件权限可以分为三种不同的用户类型:所有者、用户组或其他用户。所有者就是创建文件的用户,用户是所有用户所创建的文件的所有者,用户可以允许所在的用户组能访问...