第06章145-166

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第6章文件访问权限目标完成此章学习后,你将掌握下列内容:描述和改变文件的所有权和所在组这两个属性。描述和改变文件的权限。描述和建立新文件的默认权限。描述如何改变用户和组的身份。146UNIX系统基础6.1文件访问权限注释每个文件都归某个系统用户所有。文件的所有者对于谁有权访问文件有最终的控制权。所有者有权允许或禁止其他用户访问其所拥有的文件。第6章文件访问权限1476.2谁有权访问文件WhoHasAccesstoaFile?•TheUNIXsystemincorporatesathree-tierstructuretodefinewhohasaccesstoeachfileanddirectory:userTheownerofthefilegroupAgroupthatmayhaveaccesstothefileotherEveryoneelse•Thels-lcommanddisplaystheownerandgroupwhohasaccesstothefile.$ls-l-rw-r--r--1user3class37Jul2411:06f1-rwxr-xr-x1user3class37Jul2411:08f2drwxr-xr-x2user3class1024Jul2412:03memo||ownergroup注释UNIX系统对文件提供了三层访问控制结构。user代表文件的所有者。group代表可能访问该文件的组。other代表系统中所有的其他用户。每个文件归系统中的某个用户所有。所有者有权决定哪些用户能对文件进行什么样的访问。所有者可以允许或禁止其他用户访问其文件。由所有者决定哪些组可以访问其文件。所有者还可以将文件的所有权转交给系统中的其他用户,但一旦文件的所有权转移后,先前的所有者对文件不再有控制权。由于文件归用户所有,而且与组联系在一起,所以可以用id命令显示你的标识,这样可以知道你对存储在系统中文件的访问权限。本节幻灯片所示的文件归用户user3所有,class组员可能拥有访问该文件的权限。另外,user3可以允许系统中的其他用户访问该文件。148UNIX系统基础6.3访问的类型注释对于每个文件和目录有三种访问类型:读写执行为了访问程序或文件,用户使用各种UNIX系统命令时对操作对象需要有特定的访问权限。如,cat一个文件需要读权限,因为cat命令必须要将文件读出来以显示在屏幕上。同样,用ls列举一个目录的内容时要有这个目录的读权限。应该注意的是,访问类型决定了可以对文件或目录进行什么操作。例如,文件的写权限表明文件的内容可以被修改。取消写权限将禁止用户改变该文件的内容,但无法保护文件不被删除。目录的写权限表明目录的内容可以被修改。如果某目录没有写权限,用户将不能改变它的内容,因此也就无法删除、增加或者重命名该目录下的文件。注意为了将一个文件作为程序执行,必须为该文件设置read和execute权限。第6章文件访问权限1496.4文件权限注释对文件的访问权限决定于用户标识、组标识和该文件的访问权限。文件的访问权限由模式(mode)决定。文件的模式是指一个长度为九个字符的域,它定义了文件所有者、文件所属组和系统其他用户对文件的访问权限。例子本节幻灯片中所列文件的访问权限见表6-1。表6-1幻灯片中所列文件的访问权限文件名相关用户访问类型允许的操作f1user3(所有者)class组的组员所有其他用户读、写读读查看和修改内容查看内容查看内容f2user3(所有者)class组的组员所有其他用户读、写、执行读、执行读、执行查看和修改内容,将文件作为程序执行查看内容,将文件作为程序执行查看内容,将文件作为程序执行memouser3(所有者)class组的组员所有其他用户读、写、执行读、执行读、执行查看和修改目录memo的内容,进入目录memo查看目录memo的内容,进入目录memo查看目录memo的内容,进入目录memo150UNIX系统基础6.5chmod——修改文件的权限注释chmod命令用来修改文件或目录的权限,且只能由文件的所有者(或root——系统管理员)修改权限。因此,在UNIX系统中,设置文件的访问权限是文件所有者的事情,而不是系统管理员的责任。要使文件免于被删除或损坏,文件所在的目录和文件本身不能设置写权限。文件的写权限允许用户改变(或覆盖)文件的内容,而文件所在目录的写权限允许用户删除该文件。chmod命令定义文件访问类型时使用的是alpha模式。(1)可以指定要修改的访问权限r读权限w写权限x执行权限(2)可以选择修改方法第6章文件访问权限151+增加权限-截掉一部分权限=将权限设置为(3)可以指定组别u用户(文件的所有者)g组(与文件相关联的组)o其他用户(系统中所有的其他用户)a所有用户(系统中每一个用户)none将权限分配给所有的域注意如要使一个文件的所有权限失效,用:chmod=filename例子$ls–lf1-rw-r--r--1user3class37Jul2411:06f1$chmodg=rw,o=f1$ls–lf1-rw-rw----1user3class37Jul2411:06f1$ls–lf2-rw-rw-rw-1user3class37Jul2411:08f2$chomodu+x,g=rx,o-rwf2$ls–lf2-rwxr-x---1user3class37Jul2411:08f2可以用mesgn命令禁止其他用户向你的终端发送消息。每个终端都有一个设备文件,负责用户和计算机之间的通信。在这个例子中,假设这个设备文件是/dev/tty0p1。$ls–l/dev/tty0p1crw--w--w-1binbin580x000003Feb1511:34/dev/tty0p3$mesgn$ls–l/dev/tty0p1crw-------1binbin580x000003Feb1511:34/dev/tty0p3即使禁止了别人向你发送消息,系统管理员仍然可以向你的终端发消息。chmod命令还支持用数字(十进制)的形式分配文件访问权限。虽然这种方式已经过时,但仍然很常用。具体方法如下:(1)为了改变文件的属性,须将每一组的权限转化为数字形式。访问权限可分为owner、group、allothers的权限。记住每种权限对应一个数值:152UNIX系统基础——read=4——write=2——execute=1(2)将允许访问权限对应的数值加起来即可。(3)将三个相加的结果排列起来,这个排列结果就是chmod命令的参数。如,如果希望将权限设置为owner:rw-、group:r--、other:---,则UsergroupothersRw-r-----4+2+04+0+00+0+0640那么chmod命令的具体形式为:chmod640filename注意如要取消一个文件的所有权限,用chmod000file第6章文件访问权限1536.6umask——文件权限掩码注释使用-S选项将以标志格式显示出目前创建文件时默认模式的掩码值。-S选项和标志格式在Bourneshell和Cshell中还没有得到支持。选项a-rwx是u-rwx、g-rwx、o-rwx的简写形式。新建文件的默认权限一般为rw-rw-rw-,这意味着在系统中的任何用户都可以修改这个新建文件的内容。新建目录的默认权限一般为rwxrwxrwx,这意味着在系统中的任何用户都可以进入这个目录、删除这个目录下的任何东西。为了保护新建文件,应当使用umask命令。这样可以使新建文件或目录的默认访问权限无效。首先要取消的权限是group写权限和others写权限。定义的掩码将一直有效,直到退出系统。umask对已存在文件的权限没有影响。154UNIX系统基础6.7touch——更新文件的时间戳注释touch命令可以用来创建一个新的空白文件。如果被指定的文件已经存在,touch仅仅更新文件的时间戳,对文件内容没有任何影响。touch命令有以下选项:-atime将文件的访问时间改为。-mtime将文件的修改时间改为。-ttime使用指定的time,而不是当前时间。-c如果该文件不存在,不要创建这个文件。例子$touchtest_file1$ls–ltest_file1-rw-rw-rw-1user3class0Jul2411:08test_file1第6章文件访问权限155$umaska-rwx,u=rw,g=r(或者umask137)$umask–S(或者umask)u=rw,g=r,o=(或者137)$touchtest_file2$ls–ltest_file2-rw-r-----1user3class0Jul2411:08test_file2156UNIX系统基础6.8chown——改变文件的所有者注释只有文件的所有者才可以控制文件的属性和访问权限。如果你愿意将一个文件的所有权交给系统中的另一个用户,应当用chown命令。例如:user3将他的文件f1拷贝一份给user2。user2应该对这个复制品有完全的控制权,因此user3要将/tmp/user2/f1的所有权移交给user2。作为可选项,chown可以将一个或多个文件的组标识改为group。所有者(组)既可以用十进制的用户标识(组标识),也可以用登录名表示,这两种名字可以从passwd(group)文件中查找到。注意一旦文件的所有权被修改后,只有新的所有者或者root可以修改所有权和模式(mode)。所有者(owner)是一个系统能够辨认的用户标识。文件/etc/passwd包含了系统中所有用户的用户标识。例子如本节幻灯片的例子所示,当user3将文件/tmp/user2/f1的所有权转交给user2后,他仍然拥有对该文件的读权限,因为这个文件允许class的所有组员对其有读的权限。第6章文件访问权限1576.9chgrp命令注释文件属性列表中的group域表明哪个用户组对该文件有访问权限。这个域可以用chgrp命令修改。newgroup是系统辨认的一个组标识。文件/etc/group包含了系统所有用户所在组的标识。如果指定的新组不存在,chgrp命令不会有效。对组和组员的管理控制在系统管理员手中。注意只有文件的所有者(或者root)可以修改文件的组标识。例子如本节幻灯片的例子所示,当user3将文件f1的组访问权限移交给组class2之后,他对f1的访问权限没有受到影响。当user3将文件f1的所有权移交给user2后,他根本无法访问这个文件,因为user3目前与组class没有任何关系。158UNIX系统基础6.10su——切换用户标识注释su命令用来交互性地改变用户标识和组标识。su是switchuser或者setuserID的缩写。这样可以启动一个基于新用户标识的子会话过程,获得对新用户标识拥有的所有文件的访问权。因此,出于安全原因,须输入这个帐号的正确密码才能真正切换用户身份。su如果不带参数,就被切换到root(系统管理员)的角色。root帐号有时被称为超级用户(superuser),因为这个帐号可以访问系统中的任何东西。正因为这点,人们认为su是superuser的缩写。当然,这时须输入root的口令。注意如果要回到先前的用户身份,不要再用su命令。相反,用exit命令可以退出su命令为你启动的新对话过程。例子如本节幻灯片的例子所示,user3没有对文件/usr/local/bin/class_setup的访问权限,因为第6章文件访问权限159他不是teacher组的成员。但如果他输入suclass_admin,则可以访问这个程序。作为class_admin,他可以修改程序class_setup的内容。当他运行完这个程序后,退出su会话过程,恢复其先前的用户身份。Su-username系统有一些配置文件构造了一个对话过程。当发出命令suusername时,对话过程的特征还是跟以前一样。如果想让对话过程具有

1 / 22
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功