《第9章 (1)文件权限设定课件.ppt》由会员分享,可在线阅读,更多相关《第9章 (1)文件权限设定课件.ppt(27页珍藏版)》请在三一办公上搜索。
1、Linux实用教程,第9章 磁盘和文件系统管理,Linux一般将文件可存取的身份分为三个类别,分别是 owner/group/others,且三种身份各有read/write/execute 等权限。,使用者与群组,1. 文件拥有者由于Linux是个多人多任务的系统,因此可能常常会有多人同时使用这部主机来进行工作的情况发生, 为了考虑每个人的隐私权以及每个人喜好的工作环境,因此,这个文件拥有者的角色就显的相当的重要了!例如当你将你的私有文件放在你自己的家目录,你不希望被其他人看见自己私有的文件,这个时候,你就把该文件设定成只有文件拥有者才能看与修改这个文件的内容, 那么即使其他人知道你有这个有
2、趣的文件,不过由于你设定了适当的权限,所以其他人就无法知道该文件的内容。,使用者与群组,2.群组概念在整个网络中,各个访问网络的用户的权限可能是各不相同的,可以将具有相同权限的用户划为一组,这样可以减少网络管理员的负担,也就是说,只要对这个用户组赋予一定的权力,那么该组内的用户就具有相同的权力,我们可以使用目前家庭的观念来进行解释! 假设有一家人,家里只有三兄弟,分别是王大毛、王二毛与王三毛三个人,而这个家庭是登记在王大毛的名下的!所以,王大毛家有三个人,分别是王大毛、王二毛与王三毛, 而且这三个人都有自己的房间,并且共同拥有一个客厅喔!使用者的意义:由于王家三人各自拥有自己的房间,所以, 王
3、二毛虽然可以进入王三毛的房间,但是二毛不能翻三毛的抽屉喔!那样会被三毛K的! 因为抽屉里面可能有三毛自己私人的东西,例如情书啦,日记啦等等的,这是私人的空间,所以当然不能让二毛拿啰!群组的概念:由于共同拥有客厅,所以王家三兄弟可以在客厅打开电视机啦、翻阅报纸啦、坐在沙发上面发呆啦等等的! 反正,只要是在客厅的玩意儿,三兄弟都可以使用喔! 因为大家都是一家人嘛!王大毛家就是所谓的群组啰, 至于三兄弟就是分别为三个使用者,而这三个使用者是在同一个群组里面的喔! 而三个使用者虽然在同一群组内,但是我们可以设定权限, 好让某些用户个人的信息不被群组的拥有者查询,以保有个人私人的空间啦! 而设定群组共享
4、,则可让大家共同分享!,3. 其他人的概念不在同一组中的用户就是其他用户好了,那么今天又有个人,叫做张小猪,他是张小猪家的人,与王家没有关系啦! 这个时候,除非王家认识张小猪,然后开门让张小猪进来王家,否则张小猪永远没有办法进入王家, 更不要说进到王三毛的房间啦!不过,如果张小猪透过关系认识了三毛,并且跟王三毛成为好朋友, 那么张小猪就可以透过三毛进入王家啦!那个张小猪就是所谓的其他人,Others啰!因此,我们就可以知道啦,在Linux里面,任何一个文件都具有User, Group及Others,我们以王三毛为例,王三毛这个文件的拥有者为王三毛,他属于王大毛这个群组, 而张小猪相对于王三毛,
5、则只是一个其他人(others)而已。不过,这里有个特殊的人物要来介绍的,那就是万能的天神!这个天神具有无限的神力, 所以他可以到达任何他想要去的地方,那个人在Linux系统中的身份代号是 root 啦!那个root可是万能的天神!,ls -l,每一行的组成部分:,ls -l 以长格式形式在每行显示一个目录或文件,如:Drw-r-r- 2 root root 512 Nov 18 10:24 . install.logdrwxrwxr-x 2 root auth 512 Nov 16 10:33 . abc-r- 1 jjpr1 auth 0 Nov 18 10:24 .lastlogin,第
6、一栏代表这个文件的类型与权限第一个字符代表文件的类型接下来的字符中,以三个为一组,且均为rwx的三个参数的组合。其中, r 代表可读(read)、 w 代表可写(write)、 x 代表可执行(execute)。要注意的是,这三个权限的位置不会改变,如果没有权限,就会出现减号 - 。第一组为文件拥有者的权限,以install.log那个文件为例, 该文件的拥有者可以读写,但不可执行;第二组为同群组的权限;第三组为其他非本群组的权限。,例题1:若有一个文件的类型与权限数据为-rwxr-xr-,请说明其意义为何?答:先将整个类型与权限数据分开查阅,并将十个字符整理成为如下所示:- rwx r-x
7、r- 1 234 567 8901 为:代表这个文件名为目录或文件,本例中为文件(-);234为:拥有者的权限,本例中为可读、可写、可执行(rwx);567为:同群组用户权力,本例中为可读可执行(rx);890为:其他用户权力,本例中为可读(r)同时注意到,rwx所在的位置是不会改变的,有该权限就会显示字符,没有该权限就变成减号(-) 。,例题2:例题:假设test1, test2, test3同属于testgroup这个群组,如果有下面的两个文件,请说明两个文件的拥有者与其相关的权限为何?-rw-r-r- 1 root root 238 Jun 18 17:22 test.txt-rwxr-
8、xr- 1 test1 testgroup 5238 Jun 19 10:25 ping答:文件test.txt的拥有者为root,所属群组为root。至于权限方面则只有root这个账号可以存取此文件,其他人则仅能读此文件;另一个文件ping的拥有者为test1,而所属群组为testgroup。其中:test1 可以针对此文件具有可读可写可执行的权力;而同群组的test2, test3两个人与test1同样是testgroup的群组账号,则仅可读可执行但不能写(亦即不能修改);至于非testgoup这一个群组的人则仅可以读,不能写也不能执行!,例题3:例题:有如下目录,请问testgroup这
9、个群组的成员与其他人(others)是否可以进入本目录?drwxr-xr- 1 test1 testgroup 5238 Jun 19 10:25 groups/答:文件拥有者test1rwx可以在本目录中进行任何工作;而testgroup这个群组r-x的账号,例如test2, test3亦可以进入本目录进行工作,但是不能在本目录下进行写入的动作;至于other的权限中r-虽然有r ,但是由于没有x的权限,因此others的使用者,并不能进入此目录!,改变文件属性与权限,chgrp :改变文件所属群组chown :改变文件拥有者chmod :改变文件的权限, SUID, SGID, SBIT等
10、等的特性,1、改变所属群组, chgrp 这个指令就是change group的缩写!要被改变的组名必须要在/etc/group文件内存在才行,否则就会显示错误!假设你是以root的身份登入Linux系统的,那么在你的家目录内有一个install.log的文件。假设在/etc/group里面已经存在一个名为users的群组, 但是testing这个群组名字就不存在/etc/group当中。rootwww # chgrp -R dirname/filename .选项与参数:-R : 进行递归(recursive)的持续变更,亦即连同次目录下的所有文件、目录都更新成为这个群组之意。常常用在变更某
11、一目录内所有的文件之情况。范例:rootwww # chgrp users install.logrootwww # ls -l-rw-r-r- 1 root users 68495 Jun 25 08:53 install.logrootwww # chgrp testing install.logchgrp: invalid group name testing = 发生错误讯息啰找不到这个群组名,2、改变文件拥有者, chown 改变拥有者就是 chown (change owner),要注意的是, 用户必须是已经存在系统中的账号,也就是在/etc/passwd 这个文件中有纪录的用户名
12、称才能改变。我们来看看语法与范例:rootwww # chown -R 账号名称文件或目录选项与参数:-R : 进行递归(recursive)的持续变更,亦即连同次目录下的所有文件都变更。范例:将install.log的拥有者改为bin这个账号:rootwww # chown bin install.logrootwww # ls -l-rw-r-r- 1 bin users 68495 Jun 25 08:53 install.log范例:将install.log的拥有者与群组改回为root:rootwww # chown root:root install.logrootwww # ls
13、-l-rw-r-r- 1 root root 68495 Jun 25 08:53 install.log,提示:chown也可以使用chown user.group file,亦即在拥有者与群组间加上小数点.也行! 也使用冒号:来隔开拥有者与群组!此外,chown也能单纯的修改所属群组!例如chown .sshd install.log就是修改群组,就是那个小数点的用途!改变拥有者, chown经常用在文件的拷贝中,3、改变权限, chmod文件权限的改变使用的是chmod这个指令,但是,权限的设定方法有两种,分别可以使用数字或者是符号来进行权限的变更。数字类型改变文件权限Linux文件的基
14、本权限就有9个,分别是owner/group/others三种身份各有自己的read/write/execute权限, 先复习一下刚刚上面提到的数据:文件的权限字符为:-rwxrwxrwx, 这9个权限是三个三个一组的!其中,我们可以使用数字来代表各个权限,各权限的分数对照表如下:r:4w:2x:1,每种身份(owner/group/others)各自的三个权限(r/w/x)分数是需要累加的,例如当权限为: -rwxrwx- 分数则是:owner = rwx = 4+2+1 = 7group = rwx = 4+2+1 = 7others= - - - = 0+0+0 = 0变更权限的指令ch
15、mod的语法是这样的:rootwww # chmod -R xyz 文件或目录选项与参数:xyz : 就是刚刚提到的数字类型的权限属性,为 rwx 属性数值的相加。-R : 进行递归(recursive)的持续变更,亦即连同次目录下的所有文件都会变更,rootwww # ls -al .bashrc-rw-r-r- 1 root root 395 Jul 4 11:45 .bashrcrootwww # chmod 777 .bashrcrootwww # ls -al .bashrc-rwxrwxrwx 1 root root 395 Jul 4 11:45 .bashrc例题:将abc这个
16、文件的权限修改为-rw-r-r- ,则使用数字设置aaa文件权限对应的命令是?答:-rw-r-r-的数值是644,所以指令为:rootwww # chmod 644 .bashrc,符号类型改变文件权限更改文件的权限就是针对文件的(1)user(2)group (3)others三种身份进行设置!由u, g, o来代表三种身份的权限!此外, a 则代表 all 亦即全部的身份!读写的权限就可以写成r, w, x!,例4:假如我们要设定一个文件的权限成为-rwxr-xr-x ,即:user (u):具有可读、可写、可执行的权限;group 与 others (g/o):具有可读与执行的权限。ro
17、otwww # chmod u=rwx,go=rx .bashrc# 注意喔!那个 u=rwx,go=rx 是连在一起的,中间并没有任何空格!rootwww # ls -al .bashrc-rwxr-xr-x 1 root root 395 Jul 4 11:45 .bashrc那么假如是 -rwxr-xr- 这样的权限呢?可以使用chmod u=rwx,g=rx,o=r filename 来设定。,此外,如果我不知道原先的文件属性,而我只想要增加.bashrc这个文件的每个人均可写入的权限, 那么我就可以使用:rootwww # ls -al .bashrc-rwxr-xr-x 1 roo
18、t root 395 Jul 4 11:45 .bashrcrootwww # chmod a+w .bashrcrootwww # ls -al .bashrc-rwxrwxrwx 1 root root 395 Jul 4 11:45 .bashrc而如果是要将权限去掉而不更动其他已存在的权限呢?例如要拿掉全部人的可执行权限,则:rootwww # chmod a-x .bashrcrootwww # ls -al .bashrc-rw-rw-rw- 1 root root 395 Jul 4 11:45 .bashrc,目录与文件之权限意义:权限对文件的重要性,文件是实际含有数据的地方,
19、包括一般文本文件、数据库内容文件、二进制可执行文件(binaryprogram)等等。因此,权限对于文件来说,他的意义是这样的:r (read):可读取此一文件的实际内容,如读取文本文件的文字内容等;w (write):可以编辑、新增或者是修改该文件的内容(但不含删除该文件);x (execute):该文件具有可以被系统执行的权限。可执行(x)呢?这里你就必须要小心啦! 因为在一个文件是否具有执行的能力是由是否具有x这个权限来决定的!跟档名是没有绝对的关系的!,目录与文件之权限意义:权限对文件的重要性,文件是实际含有数据的地方,包括一般文本文件、数据库内容文件、二进制可执行文件(binaryp
20、rogram)等等。因此,权限对于文件来说,他的意义是这样的:r (read):可读取此一文件的实际内容,如读取文本文件的文字内容等;w (write):可以编辑、新增或者是修改该文件的内容(但不含删除该文件);x (execute):该文件具有可以被系统执行的权限。可执行(x)呢?这里你就必须要小心啦! 因为在一个文件是否具有执行的能力是由是否具有x这个权限来决定的!跟档名是没有绝对的关系的!,至于最后一个w这个权限。当你对一个文件具有w权限时,你可以具有写入/编辑/新增/修改文件的内容的权限, 但并不具备有删除该文件本身的权限!对于文件的rwx来说, 主要都是针对文件的内容而言,与文件档名
21、的存在与否没有关系!,权限对目录的重要性文件是存放实际数据的所在,目录主要的内容在记录文件名列表,文件名与目录有强烈的关连. 所以如果是针对目录时,那个 r, w, x 对目录是什么意义呢?r (read contents in directory):表示具有读取目录结构列表的权限,所以当你具有读取(r)一个目录的权限时,表示你可以查询该目录下的文件名数据。所以你就可以利用 ls 这个指令将该目录的内容列表显示出来。w (modify contents of directory):他表示你具有修改该目录结构列表的权限,也就是底下这些权限:建立新的文件与目录;删除已经存在的文件与目录(不论该文件的权限为何!)将已存在的文件或目录进行更名;搬移该目录内的文件、目录位置。,x (access directory):目录的执行权限有啥用途啊?目录只是记录文件名而已,总不能拿来执行吧?目录不可以被执行,目录的x代表的是用户能否进入该目录成为工作目录的用途! 所谓的工作目录(work directory)就是你目前所在的目录啦!举例来说,当你登入Linux时, 你所在的家目录就是你当下的工作目录。,