菜鸟的问题

菜鸟的问题

在/etc/bashrc脚本中有这样的一句话,是设置umask的,
[code:1]
if [ "`id -gn`" = "`id -un`" -a `id -u` -gt 99 ]; then
        umask 002
else
        umask 022
fi
[/code:1]

我想知道:
umask是干什么用的,后面的编码表示什么?
那个比较条件怎么解释?
虽然帮不了你,但也是要顶!
怎么没人回答呀 :neutral:  :neutral:
umask 是设置用户文件权限掩码的,例如在root下的umask值一般为022。
比较有用,我也是新手。
可以看一下系统安装栏里的盲主席的扫盲文章.
我记得好像是这样的
umask是反码,就像ip地址的掩码一样
#su
#umask 022
#mkdir test
#ll -d test
你可以看到test的权限是755
就这样,很简单的
如果改一下
#umask 777
#mkdir test1
#ll -d test1
你会看到test的权限变成000了
hoho~~
创建文件或文件夹时用umask的反码
如777,八进制 111 111 111,对应的反码 000 000 000
如022 八进制   000 010 010,对应的反码 111 101 101, 翻译成权限就是
文件或文件夹的所有者可读、可写、可执行,组用户和其他用户可读、可执行

***********************************

但哪个比较条件是怎么解释呢?

bash的高手在哪?????????????
umask对目录和文件是不同的
比如系统默认umask=022,那么如果新建一个目录,则这个目录的默认权限值就是777的每一位减去umask的相应位即755,如果新建的是文件,则这个文件的默认权限值就是666去减即644,也就是目录默认是可执行的,文件默认不可执行,调整umask值可以改变系统新建文件和目录的权限默认值;具体内部是怎样实现的我就不清楚了。
当我们执行一个目录的时候系统会报这个信息
[code:1]
bash: ./ttt: is a directory
[/code:1]
当去掉目录的可执行权限后,对目录的使用几乎不产生什么影响,切换、修改、删去都能正常使用。
但执行时,bash报的消息不一样,与执行一个没有执行权限文件是一样的
[code:1]
bash: ./ttt: No such file or directory
[/code:1]