分类: LINUX
2015-02-02 19:08:13
Linux扩展属性可以保护文件免于意外或恶意修改,并且只需要几句简单命令就可以加强服务器安全。
在Unix的初期,可以分配三种权限,包括用户(user)、组(group)和其他(other)。随着Linux逐渐取代和数据安全性得到越来越高重视,Linux扩展属性因此而诞生。
权限与属性最重要的不同在于属性并不依赖于某个用户帐号。因此,可以将文件授权给所有用户,甚至是root。你也可以使用属性来保护文件免于被意外删除或修改。
在ext3和ext4文件系统上,下列内容是Linux安全最常用的属性:
需要注意的是这里的值可以是任意字节的数组,未必是字符串,而且最后可能不是null,这样在访问的时候必须知道值的大小。在设置的时候当然也就需要设置值大小。
一个扩展属性的用处:GUI的文件管理程序的行为根据文件类型而异。要判断文件的格式,Winodws之类的操作系统仅需要查看文件的扩展名就可以了,而Unix系统往往需要查看文件的内容来判断类型。有些文件管理程序会直接产生此信息,有些则会将产生的信息缓存起来以备下次使用。一个更好的做法就是将此类元数据存入扩展属性。
Linux下定义的4种扩展属性命名空间:
下面是一个使用扩展属性的例子:
创建磁盘
# dd if=/dev/zero of=/opt/testptn count=512
# mke2fs xattr_disk
挂载磁盘
# mount -o loop,user_xattr xattr_disk mnt
扩展特性的操作
# touch test.txt
设置扩展特性
# setfattr -n user.abc -v 123 test.txt
显示扩展特性
# getfattr -n user.abc test.txt
# file: test.txt
user.abc="123