我们早已才能熟练的把握系统中何时须要创建用户和组,Linux系统是一个典型的多用户操作系统,不同的用户处于不同的地位,为了保护系统的安全性,Linux系统对于不同用户访问同一个文件或目录做了不同的访问权限控制。本文将介绍Linux文件权限的设置和管理。
01
文件的属性
当使用“ls-l”命令来查看一个文件或目录时,它将列举文件的常规属性,比如:查看install.log文件
#ls-linstall.log
-rw-r--r--.1rootroot107316月1111:34install.log
每一个数组详尽的解释说明如下:
文件类型:文件标志的第一个字符是“-”,表示这是一个普通文件
文件权限:文件权限是rw-r--r--,表示文件属主可读、可写,文件所归属的用户组可读,其它用户可读;
硬链接个数:/root/install.log这个文件没有硬链接;由于数值是1,就是他本身;
文件属主:也就是这个文件归哪于那个用户,它归于root,也就是第一个root;
文件属组:也就是说,对于这个文件,它归属于那个用户组,在这儿是root用户组;
文件大小:文件大小是11K;
访问可更改时间:6月1711:34,这儿的时间是最后访问的时间,最后访问和文件被更改或创建的时间,有时并不是一致的;
文件名或目录名:就是文件的名称了。
文件类型
在Linux和UNIX系统中,文件系统中的任何东西都可以是一个文件。
在使用“ls-l”查看文件或目录时,可以列举文件的常规属性。其中第一列的第一个字符是文件类型的的标志。常见的文件类型如下表:
文件类型
表示方法
应用
常规文件
保存数据
目录
储存文件
符号链接
指向其它文件
字符设备
访问设备
块设备
访问设备
命名管线函数
进程间通讯
套接字
进程间通讯
文件权限三种访问级别和权限位
文件权限定义对某个文件或目录的访问限制,实现系统管理员和不同用户共用一个文件或目录时,定义不同的访问限制,因而提高系统的安全性。
Linux系统中每位文件都有如下三种访问级别:
用户属主(User):当用户创建一个文件时,这个用户就是这个文件的所有者.
用户属组(Group):通常情况下这个用户的主要组也将成为这个文件组的所有者。
其它人(Other):不属于以上二者,就是其它人
三种访问级别对应权限位
第一组:适用于文件的属主,图中属主的权限是rwx。用户限制文件或目录的创建者
第二组:适用于文件的属组,图中属组的权限是r-x。用于限制文件或目录所属组的成员。
第三组:使用于其它用户权限位,图中其它用户权限位是r-w。用于限制既不是属主又不是所属组的能访问该文件或目录的其别人员。
当有人企图访问一个文件的时侯,Linux系统会按次序执行如下步骤:
(1)使用者拥有这个文件吗?若果是,启用用户权限。
(2)用户是组所有者成员吗?若果是,启用组权限
(3)假如以上两个都不是,启用其它人权限
(4)三种访问级别都未通过,将拒绝访问此文件。
三种基本权限类型
文件权限(FilePermission)定义了对某文件或目录的访问限制。每位文件或目录都有9个基本权限位控制其读、写、执行。基本权限位和另外3个可以影响可执行程序运行的3个特殊权限位一起构成了文件访问模式(FileAccessMode)。
下表中详尽介绍了读、写和执行的涵义:
字符
权限
对文件的涵义
对目录的涵义
读
意味着我们可以查看阅读
可以列举目录中的文件列表
写
意味着,对文件可以更改或删掉
可以在该目录中创建、删除文件
执行
假如是文件就可以运行,如二补码文件或脚本。
可以使用cd命令步入该目录
权限不仅而且使用rwx来表示之外,还可以使用八补码数来表示。下表中显示了使用字母和八补码的表示方式的对应关系:
字符
八补码表示法
涵义
读
写
执行
不可读、不可写、不可执行
下表中列举字符串和八补码表示法的说明:
字符串
八补码表示法
说明
-rw-r--r--
644
只有属主才有读取和写入的权限;同组人和其他人只有读取的权限
-rw-------
600
只有属主才有读取和写入的权限。
-rwxrwxrwx
777
每位人都还能读取、写入、和执行。
drwxr--r--
744
只有属主才有读取、写入和执行权限;同组人和其他人只有读取的权限。
drwxrw-r--
764
只有属主才有读取、写入和执行权限;同组人有读取、写入的权限;其他人只有读取的权限
硬链接数
链接数就是文件被文件名引用的次数。一般普通文件只有一个文件名,链接数为1。但是,我们会发觉情况并非总是这样。
使用ls-l命令列举文件时,第二列显示的就是文件的链接数。
所有者的身分权限
文件属主:对于这个文件属于那个用户,使用ls-l命令列举文件时,第三列显示的就是文件属主
文件属组:对于这个文件属于那个组,使用ls-l命令列举文件时,第四列显示的就是文件属组
文件的宽度和大小
文件的宽度(即文件数据的实际字节数)和大小(即所占用的c盘空间量)。
提示
因为文件在c盘上保存的底层信息不同,两种测度有所不同。通常来说,文件的大小每次字节块(一般是4千字节)为单位降低,而文件数据降低时arm linux,其宽度以单个字节为单位递增。
使用ls–l命令时,文件宽度(字节数)在第5列里显示。
当使用ls–s命令时,第5列里显示的则是文件大小(千字节数)。
时间信息
每位i-节点保存与文件关联的三种信息,一般称作atime、ctime和mtime。这种时间分别记录着一个文件最后一次被访问(读取)、改变或更改时间。
简写
命令
目的
atime
访问时间
文件数据每次被阅读后的更新
ctime
改变时间
文件的i-节点信息每次被改变后都更新
mtime
更改时间
文件数据每次被改变后的更新
使用ls-l命令列举文件时,第六列显示的就是改变和更改时间。
02
Linux系统权限设置命令
2.1
更改文件权限:chmod
chmod是拿来改变文件或目录权限的命令,但只有文件的属主和超级权限用户root才有这些权限。通过chmod来改变文件或目录的权限有两种方式,一种是通过八补码的句型,另一种是通过助记句型。并且无论使用哪种方式更改而且chmod这个命令的基本句型可以总结为:
各项含意如下:
简写
含意
User(用户)
Group(组)
Other(其它)
All(所有)
Add(加)
Remove(除以)
Set(设置)
Read(可读)
Write(可写)
Execute(执行)
举个反例-助记法更改范例
使用u(user),g(group),o(other),a(all)来表示要要设置权限的位置,用“+”来表示添加权限,用“-”表示降低权限,其实使用r、w、x来表示权限。在使用的时侯,可以组合使用。
#touchjinlong.file#创建空文件
#chmodu+xvfaexist.file#给文件的拥有者添加执行权限
#chmodgo-rjinlong.file#给文件的属组和其它用户除以读取权限
#chmoda-rwxjinlong.file#所有人都拒绝访问
#chmoda+rwjinlong.file#所有人都具有读写权限
每更改一次,别忘了使用ls-l命令查看权限的变化。其它的权限设置,请自己组合使用。
举个反例-八补码数
权限不仅而且使用rwx来表示之外,还可以使用八补码数来表示。各个权限对应的数值是:r(4)、w(2)、x(1)、-(0)
后面早已说过,Linux文件的权限标志位共九个,分为3组,分别代表文件拥有者的权限,文件所属用户组的权限和其它用户的权限。诸如:/root/install.log的文件权限是:
rw-r--r—
假如用八补码数来表示linux添加管理员用户,这么:
属主的权限用数字抒发:属主的那三个权限位的数字加上去的总和。例如前面的反例中属主的权限是rw-,也就是4+2+0,应当是6;
属组的权限用数字抒发:属组的那种权限位数字的相乘的总和。例如前面的反例中的r--,也就是4+0+0,应当是4;
其它用户的权限数字抒发:其它用户权限位的数字相乘的总和。例如前面反例中是r--,也就是4+0+0,应当是4;
也就是说,假如使用八补码数来表示该文件的权限,应当是644。
因此,在使用chmod来更改文件的权限时,可以使用数值。比如,要将/root/install.log文件的权限更改为:rwxr-xr-x,可以进行如下操作:
#chmod755/root/install.log
2.2
更改文件权属:chown和chgrp
1.使用chown命令改变文件的属主
在少数情况下,管理员须要改变文件的用户所有者。这可以使用chown命令来完成。
命令句型
chown[-R]userfile
将file的属主替换为user。
第一个参数表明文件的新的属主,第二参数是要更改的文件。只要root用户可以使用chmod命令。
倘若任何用户都能改变文件的所有者,那访问权限就没有任何意义了。
2.使用chgrp命令改变文件属组
我们学习了怎样更改文件的权限,以及怎样将文件私有化;也就是只有文件的属主才可以阅读这个文件,其他人都不行。假如你希望和一组人,但不是所有人分享这个文件?假如你希望所有人都可以阅读某个文件,但只有一部份人可以更改这个文件呢?在这些情况下。你可以借助文件的属主和组权限。
我们晓得文件新构建时,他的组所有者是构建人的主要组。在红帽企业版Linux中redhat linux,这一般是构建者的私有组(privategroup)。由于你是这个组的惟一成员,所以私有组不能拿来与其它人合作。假如要和其他人共享文件,你必须改变文件的组所有者。这个改变可以通过chgrp命令来实现。
命令句型
chgrpGROUPFILE…
将FILE的组所有者变为GROUP。
第一个参数表示文件的新组所有者,跟随的参数是要更改的文件。只有文件的属主能够改变文件的组所有着,但是这个用户必须是新组所有者的成员。
举个事例
在下面的事例中。用户ventura是组wrestle(摔跤)和组governer(总兵)和(其它的私有组ventura)的成员。他要写一契税收计划,让其它governer组的成员可以阅读但不能更改,其它任何人都不能访问。须要做一下步骤:
(1)构建文件
(2)使用chgrp命令将文件的组所有者替换成组governer。
(3)使用chmod命令将文件的权限从默认的rw-rw-r--弄成rw-r-----。
$id
uid=502(ventura)gid=502(ventura)
groups=502(ventura),503(wrestle),505(governer)
$echo"welcometohere">taxplan.txt
$ls-ltaxplan.txt
-rw-rw-r--1venturaventura16Nov221:22taxplan.txt
$chgrpgovernortaxplan.txt
$ls-ltaxplan.txt
-rw-rw-r--1venturagovernor16Nov221:22taxplan.txt
$chmodg-wtaxplan.txt
$chmodo-rtaxplan.txt
$ls-ltaxplan.txt
-rw-r-----1venturagovernor16Nov221:22taxplan.txt
03
控制默认权限umask
我们使用touch或mkdir创建文件或目录,创建一个文件或目录的时侯,悉心的朋友一定发觉总是有一个默认的权限。这么这个权限究竟是怎样形成的呢?通过本节的写学习可以了解这种究竟是为何?
3.1
究竟是谁控制了文件的默认权限
每一个新的文件形成的时侯,都有一个默认的权限,是通过一个称为umask的标准UNIX概念来改变。每位进程,包括系统shell,(红帽企业版linux默认使用bashshell)都有一个三位的八补码数“遮盖”新建文件的个别权限。这个八补码数我们称为进程的“umask(描边)”。
umask的结构和文件权限的八补码表示法相同,而且意义确是相反。回顾一下八补码表示法,每位访问级别(属主、属组、其它人)都是使用一个数字来表示,“百位”是用户(user);“十位”是组(group);“个位”是其他人(other)。每种权限都是使用一个值来表示:可读(4);可写(2);可执行(1)。使用
八补码表示去给文件设置权限的时侯是文件“要“什么样的权限而去定义。而umask命令是由“不须要的”权限组成。
3.2
文件的默认权限
Linux内核使用通用默认模式666(rw-rw-rw-)生成文件。之后内核为生成文件的进程赋于一个umask。umask的值被默认权限值666中“减去”。
举个事例
举例来说,假如使用的umask是002,这么生成的默认权限就是664;
Kerneldefault:666---rw-rw-rw-
Umask:002----------w-
Defaultpermissions:664---rw-rw-r--
另一个反例。假如umask是077,这么得到的默认权限就是600:
Kerneldefault:666---rw-rw-rw-
Umask:077------rwxrwx
Defaultpermissions:600---rw-------
在判定默认权限时,任何设置为umask的权限就会被从内核模式“遮盖”。
3.3
目录的默认权限
目录的默认权限以同样的方法生成,不同的是,内核生成目录的默认模式是777(rwxrwxrwx)。也就是值为002的umask值得到的默认目录权限是755:
Kerneldefault:777---rwxrwxrwx
Umask:002----------w-
Defaultpermissions:775---rwxrwxr-x
另一个反例,值为077的umask得到的默认目录权限是700:
Kerneldefault:777---rwxrwxrwx
Umask:077------rwxrwx
Defaultpermissions:700---rwx------
在以上的事例中,值为002的umask的文件和目录的权限是一样的:任何人都可以读取,只有所有者可以更改。同样,值为077的umask的文件和目录的权限是一样的:用户属主可以读取和更改,其他人不能访问。
3.4
更改umask值
可以通过umask命令查看和更改bashshell的umasklinux添加管理员用户,默认情况下,不带任何参数的情况下,umask会显示当前shell的umask值。假如添加一个八补码umask作为参数,将指定一个值给shell。
$umask
0002
$umask077
$umask
0077
文章评论