1Linux应用基础2011,102Linux文件系统中的权限控制用户和组的概念用户类型及表示方法文件权限的表示及应用文件权限的设置与修改命令3Linux系统中用户和组的概念多用户、多任务的操作系统决定了常常会有多人同时使用这部主机工作保证每个人的隐私权--文件所有者资源共享,团队开发--文件所属用户组•Class1:student1,student2,student3•Class2:unit1,unit2,unit3•Teacher:察看两个组的进度Linux中每个用户都至少属于一个用户组,以保证对一个用户组中的所有用户进行集中管理4Linux系统中的用户类型有三种不同类型的用户可对目录和文件进行操作:•文件所有者:能够设定同组用户和其他用户对该文件的访问权限。一般来说是文件的创建者。•同组用户:具有相同性质的所有用户,被系统管理员分在同一组。文件所有者或系统管理员可将文件的权限赋予组内的其它用户。•其它用户:文件所有者或系统管理员还可以将文件的访问权赋予系统中所有其它的用户。这样,系统中每一位用户可能都能访问你的某一文件或目录。5用户类型和权限的表示方法在设定文件权限时,用字符表示用户类型:u文件的所有者g同组用户o其它用户aall=ugo,即所有用户对文件和目录的三种权限•读(r)•写(w)•执行(x)6文件和目录的权限表示方法1:符号化表示•共9位,每3位为一组共3组•各组依次代表文件所有者、同组用户和其他用户对该文件的权限。•每组的3位依次代表读、写、执行权限。•每一组都是rwx三个符号与“-”符号的组合r:读权限w:写权限x:执行权限-:禁止rwxr-xr--rwxr-xr--1组:文件所有者2组:同组用户3组:其他用户7文件和目录的权限表示方法2:十进制表示•用三个十进制数字表示文件权限:xyz•x、y、z分别代表文件所有者、同组用户和其他用户的文件权限值。•文件权限值为该类型用户对文件的读、写、执行权限值的累加:读(r):4写(w):2执行(x):1禁止(-):08文件和目录的权限表示符号化表示和十进制表示:r:4w:2x:1-:0rwx74+2+1读、写、执行rw-64+2+0读、写r-x54+1读、执行r--44+0+0只读-wx32+1写、执行-w-20+2+0只写---00+0+0禁止读、写、执行9文件和目录的权限表示$whoamiteam02….$ls–l/home/team01-rw-r--r--1team01staff….file1….$vi/home/team01/file1由于同组用户和其他用户对file1只有读权限,因而不能对file1进行编辑用户team02能否修改用户team01的文件file1?10文件和目录的权限表示如果ls命令的显示结果里有下面的两个文件:-rw-r--r--1rootroot238Jun1817:22test.txtdrwxr-x---1test1testgroup5238Jun1910:25groups请说明两个文件的类型、所有者与他们相关的权限。test.txt:只有root用户才能存取,其他人只能读groups目录:test1用户能进行任何操作testgroup成员可以列出存储在该目录下的文件,并可以进入目录,但没有写权限其他用户对groups没有任何权限。11命令执行对文件权限的限制在移动文件时不需要被移动文件的权限,但需其所在目录具有写权限。在目录下增删文件、子目录时要有目录的写权限(touch,rm,mkdir,rmdir)用ls列目录要有目录的读权限进入目录或将该目录作路径分量时(cd)要有目录的执行权限,故要使用任一个文件,必须有该文件及找到该文件的路径上所有目录分量的执行权限。仅当要打开一个文件时,即执行涉及到文件内容的操作时,才需要文件的许可。12文件和目录的权限假设一目录jobs内的一文件joblog$ls–lRdrwxr–xr-x2judyfinance….Jobs./jobs:-rw–rw–r--1judyfinance….joblog已知用户Fred是finance组的成员,问Fred是否可以修改joblog?可以,joblog文件对同组用户有写权限,而其所在目录jobs对同组用户有可执行权限。13文件和目录的权限不可以,因work目录对同组用户无可执行权限。假设目录jobs中有一目录work,其目录下的一文件joblog.$ls–lRdrwxrwxr-x3judyfinance….jobs./jobs:drwxrw-r-x2judyfinance….work./work:-rw–rw–r--1judyfinance….joblog已知用户Fred是finance组的成员,Fred是否可以修改joblog?14文件和目录的权限假设目录jobs中有一目录work,其目录下的一文件joblog.$ls–lRdrwxr-xr-x3judyfinance….jobs./jobs:drwxrwxrwx2judyfinance….work./work:-rw–r--r--1judyfinance….joblog用户Fred是finance组的成员,Fred是否可以拷贝joblog文件到自己的目录下?okFinance组成员对joblog具有读权限Finance组成员对jobs和work目录具有执行权限15文件权限的设置与修改命令适用的用户类型:•文件所有者•root用户常见命令:•chmod•chown(只适用于root用户)16文件权限的设置与修改:chmod用来改变文件或目录的权限使用方法:符号或数字二种形式(对应于权限的两种表示方法)•数字形式:chmod[-options]xyz[filelist]xyz:权限的十进制表示•符号形式:chmod[-options]ugoa+-=rwx[filelist]+:加入权限-:去掉权限=:设定权限17文件权限的设置与修改:chmod选项:-c:只有在文件权限确实改变时才进行详细说明;-f:不打印“权限不能改变”之类的文件错误信息;-R:递归改变目录及其内容的权限;-v:详细说明权限的变化。18文件权限的设置与修改:chmod例子:$chmod644test.txt$ls–l-rw-r--r--1rootrootJun207:15test.txt$chmodu=rwx,go=rxtest.txt$chmoda+xtest.txt$ls–l-rwxr-xr-x1rootrootJun217:20test.txt$chmodg-w+xmydir$chmodgo-w+xmydir19文件权限的设置与修改:chmod$chmodg-wmydir$chmodg+xmydir$chmodo-wmydir$chmodo+xmydir$chmoda-w+xmydir$chmodg+wchap1chap2$chmodu=rwx,go=rfile1$chmod644text20文件权限的设置与修改:chown命令chown命令用于改变文件的所有者。还可以用chown命令在改变文件所有者的同时也改变其所属用户组。仅用于系统管理员对文件和用户的管理格式:chown[-options]user[:group]filelist•user表示将要改变的所有者用户名或用户id•group表示将要改变的所属用户组名或组id选项:-R:递归改变目录及其内容的所属用户或用户组;21文件权限的设置与修改:chown命令例子:#chowntesttest.txt#ls–ldrwxrwxr-x3rootrootJun215:30testfolder1-rw-rw-rw-1testrootJun217:21test.txt#chown-Rroot:testtestfolder1#ls–lRdrwxrwxr-x3roottestJun215:30testfolder1-rw-rw-rw-1testrootJun217:21test.txt./testfolder1:drwxr-xr-x2roottestJun217:23test1把test.txt的所有者改为用户testsuid,sgid用户修改密码,是通过运行命令passwd来实现的,最终必须要修改/etc/passwd文件,而passwd的文件只对于root用户是可写的,而对于所有的他用户来说都是没有写权限的。那么一个普通的用户如何能够通过运行passwd命令修改这个passwd文件呢?为了解决这个问题,SUID/SGID便应运而生。而且AT&T对它申请了专利。#ls/usr/bin/passwd-l-rwsr-xr-x1rootroot317042009-11-1422:41/usr/bin/passwdchroot