bit7 发表于 2004-3-10 09:40:13

菜鸟的问题

在/etc/bashrc脚本中有这样的一句话,是设置umask的,

if [ "`id -gn`" = "`id -un`" -a `id -u` -gt 99 ]; then
        umask 002
else
        umask 022
fi


我想知道:
umask是干什么用的,后面的编码表示什么?
那个比较条件怎么解释?

fengzicjg 发表于 2004-3-10 10:16:37

虽然帮不了你,但也是要顶!

bit7 发表于 2004-3-10 15:30:08

怎么没人回答呀 :neutral::neutral:

syrick 发表于 2004-3-10 18:45:59

umask 是设置用户文件权限掩码的,例如在root下的umask值一般为022。
比较有用,我也是新手。
可以看一下系统安装栏里的盲主席的扫盲文章.

cicc 发表于 2004-3-10 21:43:52

我记得好像是这样的
umask是反码,就像ip地址的掩码一样
#su
#umask 022
#mkdir test
#ll -d test
你可以看到test的权限是755
就这样,很简单的
如果改一下
#umask 777
#mkdir test1
#ll -d test1
你会看到test的权限变成000了
hoho~~

bit7 发表于 2004-3-11 14:45:24

创建文件或文件夹时用umask的反码
如777,八进制 111 111 111,对应的反码 000 000 000
如022 八进制   000 010 010,对应的反码 111 101 101, 翻译成权限就是
文件或文件夹的所有者可读、可写、可执行,组用户和其他用户可读、可执行

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

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

bash的高手在哪?????????????

xukai 发表于 2004-3-12 17:44:26

umask对目录和文件是不同的
比如系统默认umask=022,那么如果新建一个目录,则这个目录的默认权限值就是777的每一位减去umask的相应位即755,如果新建的是文件,则这个文件的默认权限值就是666去减即644,也就是目录默认是可执行的,文件默认不可执行,调整umask值可以改变系统新建文件和目录的权限默认值;具体内部是怎样实现的我就不清楚了。

bit7 发表于 2004-3-15 15:24:32

当我们执行一个目录的时候系统会报这个信息

bash: ./ttt: is a directory

当去掉目录的可执行权限后,对目录的使用几乎不产生什么影响,切换、修改、删去都能正常使用。
但执行时,bash报的消息不一样,与执行一个没有执行权限文件是一样的

bash: ./ttt: No such file or directory
页: [1]
查看完整版本: 菜鸟的问题