Gnu/Linux中文件权限管理


Gnu/linux作为一款优秀的操作系统,对文件管理方面具有出色的表现,其原因源于unix以及类unix系统中优秀的文件权限管理。

  linux以及类unix系统中表示文件权限的为12位2进制

  11 10 9 8 7 6 5 4 3 2 1 0
  S G T r w x r w x r w x

  关于0-8的解释可是去google下,优秀的文章相当多了。本文主要讲述的是关于9-11位的权限问题

  其中11为suid,10为sgid,9为sticky unix/linux可是使用八进制来表示权限位

  当一个文件没有设置suid的时候,系统默认suid=uid,当设置suid时,文件的suid就为所属用户的uid,当该文件具有可执行权限的时候,也就是代表任何用户都可以执行该文件。当设置sgid时,文件的egid就为所属组的gid,经常使用在对目录进行管理,如一个目录对所有用户都具有写权限的时候,那么在该目录下建立的文件的组权限都自动转变为目录所属组。当设置sticky位,则保证了文件只有所属用户才具有修改和删除权限。如/tmp目录就设置了sticky位,每个用户都可以在/tmp下建立文件,但每个用户只能修改和删除自己建立的文件。

  注:suid比sgid的优先级高,即一个文件设置了suid,egid就会变成对应的egid

  查看文件相关信息
  #stat filename
  设置文件权限
  #chmod 3777 filename == #chmod u-s g+s +t a+rwx filename

相关内容