Linux初学(CnetOS Linux7)之档案权限
2016-07-24 14:01
309 查看
1.使用者与群组以及其他人的概念
假设有一家人,家裡只有三兄弟,分别是王大毛、王二毛与王三毛三个人, 而这个家庭是登记在王大毛的名下的!所以,『王大毛家有三个人,分别是王大毛、王二毛与王三毛』, 而且这三个人都有自己的房间,并且共同拥有一个客厅!
使用者的意义:由于王家三人各自拥有自己的房间,所以, 王二毛虽然可以进入王三毛的房间,但是二毛不能翻三毛的抽屉! 因为抽屉里面面可能有三毛自己私人的东西,例如日记等等的,这是『私人的空间』,所以当然不能让二毛拿!
群组的概念:由于共同拥有客厅,所以王家三兄弟可以在客厅打开电视机、坐在沙发上面发呆等等的!反正,只要是在客厅的东西,三兄弟都可以使用!
今天又有个人,叫做小花,他是小花家的人,与王家没有关系! 这个时候,除非王家认识小花,然后开门让小花进来王家,否则小花永远没有办法进入王家, 更不要说进到王三毛的房间!小花就是所谓的『其他人,Others』
2.Linux 使用者身份与群组记录的档案
在Linux系统当中,预设的情况下,所有的系统上的帐号与一般身份使用者,还有root的相关资讯, 都是记录在/etc/passwd这个档案内的。至于个人的密码则是记录在/etc/shadow这个档案下。 此外,Linux所有的群组名称都纪录在/etc/group内!这三个档案可以说是Linux系统里面帐号、密码、群组资讯的集中地! 不要随便删除这三个档案!
3. Linux档案属性
『ls 』这一个察看档案的指令!首先以普通用户的身份登入系统,然后使用 su - 切换身份成为root后, 下达『 ls -al 』命令
1. -rw-r--r-- :代表这个档案的类型与权限
第一个字元代表这个档案是『目录、档案或连结档等等』:
当为[ d ]则是目录,例如上表档名为『.config』的那一行;
当为[ - ]则是档案,例如上表档名为『initial-setup-ks.cfg』那一行;
若是[ l ]则表示为连结档(link file);
若是[ b ]则表示为装置档里面的可供储存的周边设备(可随机存取装置);
若是[ c ]则表示为装置档裡面的序列埠设备,例如键盘、滑鼠(一次性读取装置)。
接下来的字元中,以三个为一组,且均为『rwx』 的三个参数的组合。其中,[ r ]代表可读(read)、[ w ]代表可写(write)、[ x ]代表可执行(execute)。 要注意的是,这三个权限的位置不会改变,如果没有权限,就会出现减号[ - ]而已。
第一组为『档案拥有者可具备的权限』,以『initial-setup-ks.cfg』那个档案为例, 该档案的拥有者可以读写,但不可执行;
第二组为『加入此群组之帐号的权限』;
第三组为『非本人且没有加入本群组之其他帐号的权限』。
2. 1 :表示有多少档名连结到此节点(i-node)
每个档案都会将他的权限与属性记录到档案系统的i-node中,不过,我们使用的目录树却是使用档名来记录, 因此每个档名就会连结到一个i-node!这个属性记录的,就是有多少不同的档名连结到相同的一个i-node号码
3. root :表示这个档案(或目录)的『拥有者帐号』
4. root :表示这个档案的所属群组
5. 1864 :这个档案的容量大小,预设单位为bytes
6. May 4 18:01 :这个档案的建档日期或者是最近的修改日期
如果想要显示完整的时间格式,可以利用ls的选项,亦即:『ls -l --full-time』就能够显示出完整的时间格式了!包括年、月、日、时间喔。 另外,如果是以繁体中文安装你的Linux系统,那麽日期栏位将会以中文来显示。 可惜的是,中文并没有办法在纯文字的终端机模式中正确的显示,所以此栏会变成乱码。 那得要使用『export LC_ALL=en_US.utf8』来修改语系喔!
如果想要让系统预设的语系变成英文的话,那麽你可以修改系统设定档『/etc/locale.conf』
7. initial-setup-ks.cfg :为这个档案的档名,如果档名之前多一个『 . 』,则代表这个档案为『隐藏档』
4.改变档案属性与权限
chgrp :改变档案所属群组
chown :改变档案拥有者
chmod :改变档案的权限, SUID, SGID, SBIT等等的特性
改变所属群组, chgrp
要被改变的群组名称必须要在/etc/group档案内存在才行,否则就会显示错误!连目录下的所有次目录或档案同时更改档案群组的话,直接加上 -R 的选项即可
改变档案拥有者, chown
使用者必须是已经存在系统中的帐号,也就是在/etc/passwd 这个档案中有纪录的使用者名称才能改变。连目录下的所有次目录或档案同时更改档案拥有者的话,直接加上 -R 的选项即可
改变权限, chmod
档案权限的改变使用的是chmod这个指令,权限的设定方法有两种, 分别可以使用数字或者是符号来进行权限的变更
数字类型改变档案权限
Linux档案的基本权限就有九个,分别是owner/group/others三种身份各有自己的read/write/execute权限, 档案的权限字元为:『-rwxrwxrwx』, 这九个权限是三个三个一组的!其中,可以使用数字来代表各个权限,各权限的分数对照表如下:
r:4
w:2
x:1
每种身份(owner/group/others)各自的三个权限(r/w/x)分数是需要累加的,例如当权限为: [-rwxrwx---] 分数则是:
owner = rwx = 4+2+1 = 7
group = rwx = 4+2+1 = 7
others= --- = 0+0+0 = 0
所以设定权限的变更时,该档案的权限数字就是770啦!变更权限的指令chmod的语法是这样的:
符号类型改变档案权限
改变权限的方法,基本上就九个权限分别是(1)user (2)group (3)others三种身份!那么我们就可以使用u, g, o来代表三种身份的权限!此外, a 则代表 all 亦即全部的身份!那麽读写的权限就可以写成r, w, x!
档案是实际含有资料的地方,包括一般文字档、资料库内容档、二进位可执行档(binary program)等等。 因此,权限对于档案来说,他的意义是这样的:
r (read):可读取此一档案的实际内容,如读取文字档的文字内容等;
w (write):可以编辑、新增或者是修改该档案的内容(但不含删除该档案);
x (eXecute):该档案具有可以被系统执行的权限。
在Linux底下,档案是否能被执行,是藉由是否具有『x』这个权限来决定的!跟档名是没有绝对的关系的
6.权限对目录的重要性
r (read contents in directory):
表示具有读取目录结构清单的权限,所以当你具有读取(r)一个目录的权限时,表示可以查询该目录下的档名资料。 所以可以利用 ls 这个指令将该目录的内容列表显示出来!
w (modify contents of directory):
这个可写入的权限对目录来说,是很了不起的! 因为他表示具有异动该目录结构清单的权限,也就是底下这些权限:
建立新的档案与目录;
删除已经存在的档案与目录(不论该档案的权限为何!)
将已存在的档案或目录进行更名;
搬移该目录内的档案、目录位置。
x (access directory):
目录的x代表的是使用者能否进入该目录成为工作目录的用途! 所谓的工作目录(work directory)就是你目前所在的目录!举例来说,当登入Linux时, 你所在的家目录就是你当下的工作目录。而变换目录的指令是『cd』(change directory)!
现在假设『档案是一堆文件资料夹』,所以可以在上面写/改一些资料。而『目录是一堆抽屉』,因此可以将资料夹分类放置到不同的抽屉去。 因此抽屉最大的目的是拿出/放入资料夹.其实,这个 x 权限设计,就相当于『该目录,也就是该抽屉的 "钥匙" 』,没有钥匙打不开抽屉
注意:
要开放目录给任何人浏览时,应该至少也要给予r及x的权限,但w权限不可随便给w 則具有相當重要的權限,因為他可以讓使用者刪除、更新、新建檔案或目錄
如果该目录属于使用者本身,即使目录下的文档对使用者没有wx权限,但是使用者在这个目录底下还是能够删除档案的。这就相当于有个莫名其妙的人,拿著一个完全密封的资料夹放到你的办公室抽屉中,因为完全密封你也打不开、看不到这个资料夹的内部资料(对档案来说,你没有权限)。 但是因为这个资料夹是放在你的抽屉中,你当然可以拿出/放入任何资料在这个抽屉中(对目录来说,你具有所有权限)。 所以,情况就是:你打开抽屉、拿出这个没办法看到的资料夹、将他丢到走廊上的垃圾桶,顺利删除!
7.使用者操作功能与权限
/dir1/file1
/dir2
现在在系统使用普通用户xiaohui这个帐号,那麽这个帐号针对 /dir1, /dir1/file1, /dir2 这三个档名来说,分别需要『哪些最小的权限』才能达成各项任务?
上面的表格当中,很多时候 /dir1 都不必有r权限,因为我们知道 /dir1 是个目录,也是个抽屉!那个抽屉的 r 代表『这个抽屉裡面有灯光』, 所以能看到的抽屉内的所有资料夹名称 (非内容)。但你已经知道里面的资料夹放在哪个地方,那么即使没有的灯光可以摸黑拿到该资料夹 因此,上面很多动作中,你只要具有 x 即可,r 是非必备的!只是,没有 r 的话,使用 [tab] 时,系统就无法自动帮你补齐档名了!
假设有一家人,家裡只有三兄弟,分别是王大毛、王二毛与王三毛三个人, 而这个家庭是登记在王大毛的名下的!所以,『王大毛家有三个人,分别是王大毛、王二毛与王三毛』, 而且这三个人都有自己的房间,并且共同拥有一个客厅!
使用者的意义:由于王家三人各自拥有自己的房间,所以, 王二毛虽然可以进入王三毛的房间,但是二毛不能翻三毛的抽屉! 因为抽屉里面面可能有三毛自己私人的东西,例如日记等等的,这是『私人的空间』,所以当然不能让二毛拿!
群组的概念:由于共同拥有客厅,所以王家三兄弟可以在客厅打开电视机、坐在沙发上面发呆等等的!反正,只要是在客厅的东西,三兄弟都可以使用!
今天又有个人,叫做小花,他是小花家的人,与王家没有关系! 这个时候,除非王家认识小花,然后开门让小花进来王家,否则小花永远没有办法进入王家, 更不要说进到王三毛的房间!小花就是所谓的『其他人,Others』
2.Linux 使用者身份与群组记录的档案
在Linux系统当中,预设的情况下,所有的系统上的帐号与一般身份使用者,还有root的相关资讯, 都是记录在/etc/passwd这个档案内的。至于个人的密码则是记录在/etc/shadow这个档案下。 此外,Linux所有的群组名称都纪录在/etc/group内!这三个档案可以说是Linux系统里面帐号、密码、群组资讯的集中地! 不要随便删除这三个档案!
3. Linux档案属性
『ls 』这一个察看档案的指令!首先以普通用户的身份登入系统,然后使用 su - 切换身份成为root后, 下达『 ls -al 』命令
[xiaohui@localhost ~]$ su - # 先来切换一下身份看看 Password: [root@localhost ~]# ls -al total 48 dr-xr-x---. 5 root root 4096 May 29 16:08 . dr-xr-xr-x. 17 root root 4096 May 4 17:56 .. -rw-------. 1 root root 1816 May 4 17:57 anaconda-ks.cfg -rw-------. 1 root root 927 Jun 2 11:27 .bash_history -rw-r--r--. 1 root root 18 Dec 29 2013 .bash_logout -rw-r--r--. 1 root root 176 Dec 29 2013 .bash_profile -rw-r--r--. 1 root root 176 Dec 29 2013 .bashrc drwxr-xr-x. 3 root root 17 May 6 00:14 .config <=范例说明处 drwx------. 3 root root 24 May 4 17:59 .dbus -rw-r--r--. 1 root root 1864 May 4 18:01 initial-setup-ks.cfg <=范例说明处 [ 1 ][ 2 ][ 3 ][ 4 ][ 5 ][ 6 ] [ 7 ] [ 权限 ][连结][拥有者][群组][档案容量][ 修改日期 ] [ 档名 ]ls是『list』的意思,重点在显示档案的档名与相关属性。而选项『-al』则表示列出所有的档案详细的权限与属性 (包含隐藏档,就是档名第一个字元为『 . 』的档案)。
</pre><pre name="code" class="plain">-rw-r--r--. 1 root root 1864 May 4 18:01 initial-setup-ks.cfg <=范例说明处 [ 1 ][ 2 ][ 3 ][ 4 ][ 5 ][ 6 ] [ 7 ] [ 权限 ][连结][拥有者][群组][档案容量][ 修改日期 ] [ 档名 ]
1. -rw-r--r-- :代表这个档案的类型与权限
第一个字元代表这个档案是『目录、档案或连结档等等』:
当为[ d ]则是目录,例如上表档名为『.config』的那一行;
当为[ - ]则是档案,例如上表档名为『initial-setup-ks.cfg』那一行;
若是[ l ]则表示为连结档(link file);
若是[ b ]则表示为装置档里面的可供储存的周边设备(可随机存取装置);
若是[ c ]则表示为装置档裡面的序列埠设备,例如键盘、滑鼠(一次性读取装置)。
接下来的字元中,以三个为一组,且均为『rwx』 的三个参数的组合。其中,[ r ]代表可读(read)、[ w ]代表可写(write)、[ x ]代表可执行(execute)。 要注意的是,这三个权限的位置不会改变,如果没有权限,就会出现减号[ - ]而已。
第一组为『档案拥有者可具备的权限』,以『initial-setup-ks.cfg』那个档案为例, 该档案的拥有者可以读写,但不可执行;
第二组为『加入此群组之帐号的权限』;
第三组为『非本人且没有加入本群组之其他帐号的权限』。
2. 1 :表示有多少档名连结到此节点(i-node)
每个档案都会将他的权限与属性记录到档案系统的i-node中,不过,我们使用的目录树却是使用档名来记录, 因此每个档名就会连结到一个i-node!这个属性记录的,就是有多少不同的档名连结到相同的一个i-node号码
3. root :表示这个档案(或目录)的『拥有者帐号』
4. root :表示这个档案的所属群组
5. 1864 :这个档案的容量大小,预设单位为bytes
6. May 4 18:01 :这个档案的建档日期或者是最近的修改日期
如果想要显示完整的时间格式,可以利用ls的选项,亦即:『ls -l --full-time』就能够显示出完整的时间格式了!包括年、月、日、时间喔。 另外,如果是以繁体中文安装你的Linux系统,那麽日期栏位将会以中文来显示。 可惜的是,中文并没有办法在纯文字的终端机模式中正确的显示,所以此栏会变成乱码。 那得要使用『export LC_ALL=en_US.utf8』来修改语系喔!
如果想要让系统预设的语系变成英文的话,那麽你可以修改系统设定档『/etc/locale.conf』
7. initial-setup-ks.cfg :为这个档案的档名,如果档名之前多一个『 . 』,则代表这个档案为『隐藏档』
4.改变档案属性与权限
chgrp :改变档案所属群组
chown :改变档案拥有者
chmod :改变档案的权限, SUID, SGID, SBIT等等的特性
改变所属群组, chgrp
要被改变的群组名称必须要在/etc/group档案内存在才行,否则就会显示错误!连目录下的所有次目录或档案同时更改档案群组的话,直接加上 -R 的选项即可
[root@localhost ~]# chgrp [-R] dirname/filename ...
改变档案拥有者, chown
使用者必须是已经存在系统中的帐号,也就是在/etc/passwd 这个档案中有纪录的使用者名称才能改变。连目录下的所有次目录或档案同时更改档案拥有者的话,直接加上 -R 的选项即可
[root@localhost ~]# chown [-R] 帐号名称 档案或目录 [root@localhost ~]# chown [-R] 帐号名称:群组名称 档案或目录注:chown也可以使用『chown user.group file』,亦即在拥有者与群组间加上小数点『 . 』也行! 不过设定帐号时,在帐号当中加入小数点这就会造成系统的误判了! 所以建议使用冒号『:』来隔开拥有者与群组啦!此外,chown也能单纯的修改所属群组呢! 例如『chown .sshd initial-setup-ks.cfg』就是修改群组,那就是那个小数点的用途
改变权限, chmod
档案权限的改变使用的是chmod这个指令,权限的设定方法有两种, 分别可以使用数字或者是符号来进行权限的变更
数字类型改变档案权限
Linux档案的基本权限就有九个,分别是owner/group/others三种身份各有自己的read/write/execute权限, 档案的权限字元为:『-rwxrwxrwx』, 这九个权限是三个三个一组的!其中,可以使用数字来代表各个权限,各权限的分数对照表如下:
r:4
w:2
x:1
每种身份(owner/group/others)各自的三个权限(r/w/x)分数是需要累加的,例如当权限为: [-rwxrwx---] 分数则是:
owner = rwx = 4+2+1 = 7
group = rwx = 4+2+1 = 7
others= --- = 0+0+0 = 0
所以设定权限的变更时,该档案的权限数字就是770啦!变更权限的指令chmod的语法是这样的:
[root@localhost ~]# chmod [-R] xyz 档案或目录 选项与参数: xyz : 就是刚刚提到的数字类型的权限属性,为 rwx 属性数值的相加。 -R : 进行递归(recursive)的持续变更,亦即连同次目录下的所有档案都会变更在实际的系统运作中最常发生的一个问题就是,以vim编辑一个shell的文字批次档后,文档的权限通常是 -rw-rw-r-- 也就是664, 如果要将该档案变成可执行档,并且不要让其他人修改此一档案的话, 那么就需要-rwxr-xr-x这样的权限,此时就得要下达:『 chmod 755 test.sh 』的指令
符号类型改变档案权限
改变权限的方法,基本上就九个权限分别是(1)user (2)group (3)others三种身份!那么我们就可以使用u, g, o来代表三种身份的权限!此外, a 则代表 all 亦即全部的身份!那麽读写的权限就可以写成r, w, x!
chmod | u g o a | +(加入) -(除去) =(设定) | r w x | 档案或者目录 |
[root@localhost ~]# chmod u=rwx,go=rx .bashrc # 注意!那个 u=rwx,go=rx 是连在一起的,中间并没有任何空白字元!5.权限对档案的重要性
档案是实际含有资料的地方,包括一般文字档、资料库内容档、二进位可执行档(binary program)等等。 因此,权限对于档案来说,他的意义是这样的:
r (read):可读取此一档案的实际内容,如读取文字档的文字内容等;
w (write):可以编辑、新增或者是修改该档案的内容(但不含删除该档案);
x (eXecute):该档案具有可以被系统执行的权限。
在Linux底下,档案是否能被执行,是藉由是否具有『x』这个权限来决定的!跟档名是没有绝对的关系的
6.权限对目录的重要性
r (read contents in directory):
表示具有读取目录结构清单的权限,所以当你具有读取(r)一个目录的权限时,表示可以查询该目录下的档名资料。 所以可以利用 ls 这个指令将该目录的内容列表显示出来!
w (modify contents of directory):
这个可写入的权限对目录来说,是很了不起的! 因为他表示具有异动该目录结构清单的权限,也就是底下这些权限:
建立新的档案与目录;
删除已经存在的档案与目录(不论该档案的权限为何!)
将已存在的档案或目录进行更名;
搬移该目录内的档案、目录位置。
x (access directory):
目录的x代表的是使用者能否进入该目录成为工作目录的用途! 所谓的工作目录(work directory)就是你目前所在的目录!举例来说,当登入Linux时, 你所在的家目录就是你当下的工作目录。而变换目录的指令是『cd』(change directory)!
现在假设『档案是一堆文件资料夹』,所以可以在上面写/改一些资料。而『目录是一堆抽屉』,因此可以将资料夹分类放置到不同的抽屉去。 因此抽屉最大的目的是拿出/放入资料夹.其实,这个 x 权限设计,就相当于『该目录,也就是该抽屉的 "钥匙" 』,没有钥匙打不开抽屉
注意:
要开放目录给任何人浏览时,应该至少也要给予r及x的权限,但w权限不可随便给w 則具有相當重要的權限,因為他可以讓使用者刪除、更新、新建檔案或目錄
如果该目录属于使用者本身,即使目录下的文档对使用者没有wx权限,但是使用者在这个目录底下还是能够删除档案的。这就相当于有个莫名其妙的人,拿著一个完全密封的资料夹放到你的办公室抽屉中,因为完全密封你也打不开、看不到这个资料夹的内部资料(对档案来说,你没有权限)。 但是因为这个资料夹是放在你的抽屉中,你当然可以拿出/放入任何资料在这个抽屉中(对目录来说,你具有所有权限)。 所以,情况就是:你打开抽屉、拿出这个没办法看到的资料夹、将他丢到走廊上的垃圾桶,顺利删除!
7.使用者操作功能与权限
/dir1/file1
/dir2
现在在系统使用普通用户xiaohui这个帐号,那麽这个帐号针对 /dir1, /dir1/file1, /dir2 这三个档名来说,分别需要『哪些最小的权限』才能达成各项任务?
操作动作 | /dir | /dir1/file1 | dir2 | 重点 |
读取 file1 内容 | x | r | - | 要能够进入 /dir1 才能读到里面的文件资料! |
修改file内容 | x | wx | - | 能够进入 /dir1 且修改 file1 才行! |
执行 file1 内容 | x | rx | - | 能够进入 /dir1 且 file1 能运作才行! |
删除 file1档案 | wx | - | - | 能够进入 /dir1 具有目录修改的权限即可! |
将 file1 複製到 /dir2 | x | r | wx | 能够读 file1 且能够修改 /dir2 内的资料 |
相关文章推荐
- 改变文件属主和属组 2012-02-09
- Windows7下获得System权限问题解决方法
- 用一整天的时间安装postgreSQL NTFS权限
- 星外系统关于权限的综合说明
- MAC上Mysql忘记Root密码或权限错误的快速解决方案
- 用vbs检查注册表项的访问权限的代码
- sqlserver附加.mdf权限问题解决
- MongoDB系列教程(四):设置用户访问权限
- cacls命令设置文件及其文件夹权限的方法
- “SQL2000数据库”运行在普通用户下所需的权限
- PHP chmod 函数与批量修改文件目录权限
- 批处理设置文件访问权限的方法分享
- C#枚举中的位运算权限分配浅谈
- WordPress中创建用户角色的相关PHP函数使用详解
- ASP.NET MVC使用ActionFilterAttribute实现权限限制的方法(附demo源码下载)
- 如何实现只授予用户查看存储过程定义的权限
- Oracle Scott创建视图权限不足解决办法
- windows 权限之拒绝运行应用程序
- windows IIS权限经典设置教程