Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1916042
  • 博文数量: 498
  • 博客积分: 2078
  • 博客等级: 大尉
  • 技术积分: 1645
  • 用 户 组: 普通用户
  • 注册时间: 2008-11-18 22:43
个人简介

安大

文章分类

全部博文(498)

文章存档

2017年(1)

2016年(2)

2015年(21)

2014年(90)

2013年(101)

2012年(267)

2011年(16)

分类: LINUX

2013-11-04 19:13:29

1、文件的普通属性与权限
在Linux系统中将文件可存取访问的身份分为3个类别,分别为:所有者(owner)、所属组(group)、其他人(other),并其三种身份各有read、write、execute等权限。
当执行 ls -l 命令时,系统输出格式如下:
-rw-r--r--  1  root  root  42304  Sep  4 18:26   install.log
第一列:表示这个文件的类型与权限
    第一个字符表示文件的类型,如下:
    [d]表示目录
    [-]表示普通文件
    [l]表示链接文件
    [b]表示块设备,如光驱,硬盘,U盘等设备文件
    [c]表示字符设备,如打印机,终端等设备文件  
    后面九个字符分别表示owner,group,others对该文件或目录的访问权限
第二列:表示有多少个文件名链接到此节点 (i-node)
第三列:表示该文件或目录的所有者账号
第四列:表示文件或目录的所属组
第五列:表示文件或目录的容量大小
第六列:表示文件或目录的创建日期货最近修改日期
第七列:表示文件或目录名



例子:a目录下有一个文件a.txt
若a具有drwxr-xr-x权限,a.txt具有-rwxrwxrwx 则同组用户及其他用户无法删除该文件。
若a具有drwxrwxrwx权限,a.txt具有-rw-r--r--,则这个文件任何用户都可以删除。

文件或目录在创建时,会有一个默认的权限,使用umask命令,可以查看默认权限,例如umask命令输出
为0022,第一个字符为特殊权限位,后三位为默认权限的补码022,则系统的默认权限为777-022=755,对于文件,系统会默认去掉执行权限则为644.

2、文件的特殊属性


为了方便大家看明白上图,我举个简单的例子说明一下:
有个问题:大家都知道linux中将用户的密码信息已加密的形式存放在/etc/shadow文件中,该文件的默认权限为
400,普通用户对该文件是没有读写权限的,但为何普通用户可以修改自己的密码呢?
如果要解决这个问题就需要跟文件的特殊属性有关联了,修改密码的命令为passwd,该命令的执行权限位
-rwsr-xr-x,其中s为特殊权限,表示setuid权限,当一个可执行程序具有SetUID权限时,其他用户再执行该命令时就可以程序所有者的身份执行该命令,既以root的身份执行passwd命令,所以就可以修改密码了。
授予SetUID权限的方式为:
chmod u+s /bin/touch 或 chmod 4755 /bin/touch
假如给touch命令赋予了setuid权限,任何用户执行该命令时都会以root的身份执行该命令,如果切换到普通用户
执行touch命令创建一个文件,会发现该文件的所有者为root。除非必要情况特殊属性还是要慎用的。

3、文件的隐藏属性

隐藏属性平时用的比较少,简单说下使用chattr命令可以设置文件的隐藏属性,使用lsattr可以查看文件的隐藏属性。
执行chattr +i a.txt 命令,在删除隐藏属性之前,a.txt这个文件就无法删除和修改了。
阅读(893) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~