首页 百科知识 更改目录或访问权限

更改目录或访问权限

时间:2022-10-18 百科知识 版权反馈
【摘要】:通过设定权限可以从以下三种访问方式限制访问权限:只允许用户自己访问;允许一个预先指定的用户组中的用户访问;允许系统中的任何用户访问。同时,用户能够控制一个给定的文件或目录的访问程度。一个文件活目录可能有读、写及执行权限。文件所有者可以将这些权限改变为任何他想指定的权限。您可以使用chmod指令去变更文件与目录的权限,设置方式采用文字或数字代号皆可。

2.2.2 更改目录或访问权限

Linux系统每一个文件或目录都包含有访问权限,这些访问权限决定了谁能访问和如何访问这些文件和目录。

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

文件或目录的访问权限分为可读(r)、可写(w)和可执行(x)。如下所示:

img87

对于一个文件来说,可以将所属它的用户分成三类,并对其分别赋予不同的权限:

①文件所有者

②与文件所有者同组的用户

③其他组用户

每个文件或目录的访问权限都有三组,用三位字符(r、w、x)组合表示。如下所示:

drwxr-x r--

第一部分:这里的“d”代表是一个目录,“-”代表普通文件,“c”代表字符设备文件。

第二部分:文件所有者权限,这里r w x表示拥有可读、可写、可执行权限。

第三部分:与文件所有者同组的用户权限,这里r-x表示只拥有可读、可执行权限,没有写的权限。

第四部分:其他组用户权限,这里r--表示仅拥有可读权限,没有写及执行的权限。

使用“ls–l”命令查看/root目录,如下所示:

[root@ localhost~]# ls-l

总计1272

img88

[root@ localhost~]#

当执行ls-l或ls-al命令后显示的结果中,最前面的第2~10个字符是用来表示权限。第一个字符一般用来区分文件和目录:

d: 表示是一个目录,事实上在EXT文件系统中,目录是一个特殊的文件。

-: 表示这是一个普通的文件。

l: 表示这是一个符号链接文件,实际上它指向另一个文件。

b、c: 分别表示区块设备和其他的外围设备,是特殊类型的文件。

s、p: 这些文件关系到系统的数据结构和管道,通常很少见到。

(1) chmod命令

功能说明:变更文件或目录的权限。

命令格式:chmod[可选项][权限][目录或文件名]

语法:chmod[-cfRv][--help][--version][<权限范围>+/-/=<权限设置...>][文件或目录...]或chmod[-cfRv][--help][--version][数字代号][文件或目录...]或chmod[-cfRv][--help][--reference=<参考文件或目录>][--version][文件或目录...]

补充说明:在UNIX系统家族里,文件或目录权限的控制分别以读取、写入、执行3种一般权限来区分,另有3种特殊权限可供运用,再搭配拥有者与所属群组管理权限范围。您可以使用chmod指令去变更文件与目录的权限,设置方式采用文字或数字代号皆可。符号连接的权限无法变更,如果您对符号连接修改权限,其改变会作用在被连接的原始文件。权限范围的表示法如下:

u:  User,即文件或目录的拥有者。

g:  Group,即文件或目录的所属群组。

o:  Other,除了文件或目录拥有者或所属群组之外,其他用户皆属于这个范围。

a:  All,即全部的用户,包含拥有者,所属群组以及其他用户。

有关权限代号的部分,列表于下:

r: 读取权限,数字代号为“4”。

w: 写入权限,数字代号为“2”。

x: 执行或切换权限,数字代号为“1”。

-: 不具任何权限,数字代号为“0”。

s: 特殊? b>功能说明:变更文件或目录的权限。

参数:

-c或--changes 效果类似“-v”参数,但仅回报更改的部分。

-f或--quiet或--silent 不显示错误信息。

-R或--recursive 递归处理,将指定目录下的所有文件及子目录一并处理。

-v或--verbose 显示指令执行过程。

--help 在线帮助。

--reference=<参考文件或目录> 把指定文件或目录的权限全部设成和参考文件或目录的权限相同。

<权限范围>+<权限设置> 开启权限范围的文件或目录的该项权限设置。

<权限范围>-<权限设置> 关闭权限范围的文件或目录的该项权限设置。

<权限范围>=<权限设置> 指定权限范围的文件或目录的该项权限设置。

通过以下几个例子说明:

※范例,文字设定法:

①操作命令:# chmod a+x sort

即设定文件sort的文件属主(u)增加执行权限;文件属主同组用户(g)增加执行权限;其他用户(o)增加执行权限。

②操作命令:# chmod ug+w,o-x text

即设定文件text的文件属主(u)增加写权限;和文件属主同组用户(g)增加写权限;其他用户(o)删除执行权限。

③操作命令:# chmod u+s a.out

执行chmod后a.out的权限为(ls-l a.out命令)如下所示:

-rws-x-x 1 inin users7192 Nov 4 14:22 a.out

设想这个执行文件要用到一个文本文件shiyan1.c,其文件存取权限为“-rw--”,即该文件只有其属主具有读写权限。当其他用户执行a.out这个程式时,它的身份因这个程式暂时变成可引用(由于chmod命令中使用了s选项),所以它就能够读取shiyan1.c这个文件(虽然这个文件被设定为其他人不具有所有权限),这就是s的功能。

因此,在整个系统中特别是root本身,最好不要过多的设置这种类型的文件(除非必要)这样能保障系统的安全,避免因为某些程式的bug而使系统遭到入侵。

④去除文件执行权限

# chmod a-xmm.txt

# chmod-x mm.txt

# chmod ugo-xmm.txt

以上这三个命令都是将文件mm.txt的执行权限删除,他设定的对象为所有使用者。

※范例,数字设定法:

①操作命令:$ chmod 644 mm.txt

以上操作即设定文件mm.txt的属性为:

-rw-r--r--1 hnspi users 1155 Nov 5 11:22 mm.txt

那么文件属主(u)hnspi拥有读、写权限;和文件属主同组人用户(g)拥有读权限;其他人(o)拥有读权限。

②操作命令:$ chmod 750 wch.txt

以上操作即设定文件wch.txt的属性为:

-rwxr-x---1 hnspi users 44137 Nov 12 9:22 wchtxt

那么文件的属性为:文件所属者(u)hnspi可读/可写/可执行权;和文件属同组人(g)可读/可执行权;其他人(o)没有所有权限。

(2) chgrp命令

功能说明:变更文件或目录的所属群组。

命令格式:chgrp[选项]文件/目录的新属主文件名/目录

语法:chgrp[-cfhRv][--help][--version][所属群组][文件或目录...]或chgrp[-cfhRv][--help][--reference=<参考文件或目录>][--version][文件或目录...]

补充说明:在UNIX系统家族里,文件或目录权限的掌控以拥有者及所属群组来管理。您可以使用chgrp指令去变更文件与目录的所属群组,设置方式采用群组名称或群组识别码皆可。

参数:

-c或--changes 效果类似“-v”参数,但仅回报更改的部分。

-f或--quiet或--silent 不显示错误信息。

-h或--no-dereference 只对符号连接的文件作修改,而不更动其他任何相关文件。

-R或--recursive 递归处理,将指定目录下的所有文件及子目录一并处理。

-v或--verbose 显示指令执行过程。

--help 在线帮助。

--reference=<参考文件或目录> 把指定文件或目录的所属群组全部设成和参考文件或目录的所属群组相同。

※范例:

更改/mnt/test03及其子目录的所有文件的属组为hnspi,如下所示:

img89

(3) chown命令

功能说明:变更文件或目录的拥有者或所属群组。

命令格式:chown[选项]文件/目录的新属主[.文件/目录的所在新组][文件名/目录]

语法:chown[-cfhRv][--dereference][--help][--version][拥有者.<所属群组>][文件或目录..]或chown[-chfRv][--dereference][--help][--version][.所属群组][文件或目录......]或chown[-cfhRv][--dereference][--help][--reference=<参考文件或目录>][--version][文件或目录...]

补充说明:在UNIX系统家族里,文件或目录权限的掌控以拥有者及所属群组来管理。您可以使用chown指令去变更文件与目录的拥有者或所属群组,设置方式采用用户名称或用户识别码皆可,设置群组则用群组名称或群组识别码。

参数:

-c或--changes 效果类似“-v”参数,但仅回报更改的部分。

-f或--quite或--silent 不显示错误信息。

-h或--no-dereference 只对符号连接的文件作修改,而不更动其他任何相关文件。

-R或--recursive 递归处理,将指定目录下的所有文件及子目录一并处理。

-v或--version 显示指令执行过程。

--dereference 效果和“-h”参数相同。

--help 在线帮助。

--reference=<参考文件或目录> 把指定文件或目录的拥有者与所属群组全部设成和参考文件或目录的拥有者与所属群组相同。

※范例:

更改/mnt/test03及其子目录的所有文件的所有者为hnspi,如下所示:

img90

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈