以linux操作系统CentOS6.5为例.
我们知道,linux中文件、目录以及链接等,并不是所有的用户都可以对其进行操作,这也就表示,不同的文件或目录对于不同用户都具有不同的操作权限。那么如何查看这些文件具有哪些操作呢?
linux中的ls 命令即可显示当前路径下的数据文件是否具有可操作权限。
#ls -l
如上图所示,ls -l显示了/software下面的文件操作权限以及其他信息,特别标明的部分表示当前文件的权限。
这些权限信息如何理解呢?
输出结果的第一个字段就是描述文件和目录权限的编码。这个字段的第一个字符代表了对象的类型:
-代表文件
d代表目录
l代表链接
c代表字符型设备
b代表块设备
n代表网络设备
之后有3组三字符的编码。每一组定义了3种访问权限:
r代表对象是可读;
w代表对象是可写的
x代表对象是可执行的
若没有某种权限,在该权限的位置出现单破折线。这三组权限分别对应不同用户的安全级别。
---->文件的创建对象
----->与文件创建对象同组的用户
----->系统的其他用户
下面我们具体分析一下,文件的操作权限。以上图中文件check为例。
这个对象权限如上图所示,开头的第一个字母'd'表示它是一个文件夹,那么后面的rwxr-xr-x我们把这一组拆分成三部分
rwx---->对文件的创建者(可读 可写 可执行)
r-x------>对与创见者的同组用户(可读 可执行,不可写)
r-x------->对系统的其他用户(可读 可执行 不可写)
当然,这些权限也可以转换成8进制进行描述。
rwx------>7
r-x-------->5
r-x---------->5
那么我们如何改变某一个文件或者目录的安全属性呢?
使用chmod命令进行文件和目录的安全性设置。命令的格式如下:
chmod options mode file
命令中的mode可以使用八进制模式或者或者符号模式进行安全性设置。八进制模式设置方便,如下所示:
chmod 760 newfile
八进制文件权限会自动用到指定文件上。符号模式与其相比就没那么简单了。
符号模式下指定权限的格式为:
[ugoa...][[+-=][rwxXstugo...]]
虽然不如八进制表示简单,但这样修改文件权限非常明了。第一组字符定义了权限作用的对象:
u代表用户,g代表组,o代表其他,a代表前面所有
后面还跟着的符号是用户想在现有的权限上增加(+)权限,还是在现有的权限基础上移除(-)权限,或者将权限设置成后面的值(=)。
最后,第三个符号代表作用到设置上的权限。但是这比在八进制设置的rwx多。额外的还有这么几项。
X:如果对象是目录或者它已经有执行权限,赋予执行权限。
s:运行时重新设置UID或者GID。
t:保留文件或者目录
u:将权限设置为同文件属主一样
g:将权限设置为跟属组一样。
o:将权限设置为跟其他用户一样。
像这样使用这些权限。
chmod o+r newfile ------>对文件newfile进行权限设置,其中,其他用户增加读的权限。
chmod u-x newfile -------->对文件newfile进行权限设置,其中,将文件属主移除可执行权限。