为什么是一个AND NOT掩码操作

为什么是一个$ perms而不是$ mask,而不是$ perms和$ mask呢?

换句话说,为什么在那里没有一个; 为什么不是作为一个面具实施?

举个例子,666和700,给600?

关键是,umask( “用户掩码” )的目的是保持进程创build文件的权限位,他们不应该使用。 如果从这个angular度来看,umask的概念可能更有意义; 特别是,022的通用umask可防止进程创build可由组或世界写入的文件,这通常是您想要的。

input值是八进制数,可能需要正确parsing前导0。 由于所有者掩码几乎总是为0,所以可以用三位数字input掩码。 作为一个AND掩码,它需要被input为0755或0750。

将其定义为AND NOT操作可以更安全地在面具中丢失字符。 如果umask和AND操作umask 5将只允许有限的世界访问和umask 0会更糟糕。 作为十进制值parsing的umasq 75将是有效的umask 113 ,这将不允许读取acces。

编辑:从另一个angular度来看,掩码是你想掩盖的位的列表。 所以你要的掩码像026而不是0751 。 内部表示可能是07751或适合于“与”。 如果不是,转换是相对微不足道的,而在事物的macros伟计划中,掩码并不经常被应用。