Chinaunix首页 | 论坛 | 博客
  • 博客访问: 4241742
  • 博文数量: 176
  • 博客积分: 10059
  • 博客等级: 上将
  • 技术积分: 4681
  • 用 户 组: 普通用户
  • 注册时间: 2006-03-24 12:27
文章分类

全部博文(176)

文章存档

2012年(1)

2011年(4)

2010年(14)

2009年(71)

2008年(103)

分类: LINUX

2009-04-03 16:30:51

翻译:Steve
日期:2005年2月15日
文章来源:hacking linux exposed
作者:Brian Hatch, James Lee, George Kurtz

当以一个用户创建了一个文件或目录,那个文件或目录就得到默认许可:

----------------------------------

jdoe@server1$ touch a.txt
jdoe@server1$ mkdir directory_b
jdoe@server1$ ls -l
total 1
-rw-rw-r--    1 jdoe    users     0  Nov 29 13:42 a.txt
drwxrwxr-x    2 jdoe    users  1024  Nov 29 13:43 directory_b

----------------------------------

注意,用户jdoe的默认许可如下
664  文件
775  目录

默认文件和目录许可是按照用户umask(应该是universal mask)值设定的。umask值用来掩盖大多数许可相关的默认值:666 对文件;777对目录。要显示你的umask值,用 umask 指令:

jdoe@server1$ umask
002

用户jdoe的umask值为002。有个简单的办法可以找出用户新建文件/目录的默认许可,就是用系统默认许可减去umask值

文件      666      目录      777
       - 002             -002
       = 664             =775

要改变你的默认许可,就改变umask值。要创建最严格的许可,用umask值777:

----------------------------------

jdoe@server1$ umask 777
jdoe@server1$ touch c
jdoe@server1$ ls -l
total 1
-rw-rw-r--    1 jdoe    users     0  Nov 29 13:42 a.txt
----------    1 jdoe    users     0  Nov 29 14:22 c
drwxrwxr-x    2 jdoe    users  1024  Nov 29 13:43 directory_b

----------------------------------

当然了,这样作太严格了,jdoe再不对这个新文件具有写和读的权限了:

jdoe@server1$ cat c
cat: c: Permission denied

要对文件和目录创建最实用且严格的许可,用umask值077:

----------------------------------

jdoe@server1$ umask 077
jdoe@server1$ touch d
jdoe@server1$ mkdir dirctory_e
jdoe@server1$ ls -l
total 2
-rw-rw-r--    1 jdoe    users     0  Nov 29 13:42 a.txt
----------    1 jdoe    users     0  Nov 29 14:22 c
-rw-------    1 jdoe    users     0  Nov 29 14:30 d
drwxrwxr-x    2 jdoe    users  1024  Nov 29 13:43 directory_b
drwx------    2 jdoe    users  1024  Nov 29 14:30 directory_e

----------------------------------

注意umask值077赋予jdoe对文件d读/写权限以及对目录directory_e读/写/执行的权限,但组群和其他用户没有得到任何权限。

对登录进行加载umask,只要将‘umask 077’指令添加到profile script(~/.bash_profile 或相似的)。

文件许可的普遍规则

文件许可的普遍规则是加载最严格的许可于文件或目录上,然后在对个别用户或组群赋予相应需要的权限。赋予特权是简单的,但是取消特权又想避免一番挣扎确实十分难的。

==========================END=============================

阅读(2036) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

flyaway572009-04-08 10:48:36

指出一个错误,不要见怪 文件 666 目录 777 - 002 -002 = 664 =775 其实用减这个是一个很便利的办法,大部分的时候可以,但也有特殊情况。如果我的umask值是003,减的话就是663,就是说其他用户有写和执行权限,但实际上不是的,其他用户只有读的权限。umask更准确的是去掉某些权限,003就是去掉其他用户的写和执行的权限。