linux 上的 Netbeans 8 忽略了 umask
umask ignored by Netbeans 8 on linux
我的 linux umask 是 002。
$ umask
0002
因此新文件具有 664 权限。
$ touch new-file
$ ls -l
-rw-rw-r-- 1 david www-data 0 feb 11 11:37 new-file
但是,如果我从 netbeans 创建一个新文件(右键单击/新建/清空文件),它有 644 个权限。
$ ls -l
-rw-r--r-- 1 david www-data 0 feb 11 11:40 netbeans-file
我可以配置从 netbeans 创建新文件的权限吗?
umask
是一个掩码,它与创建文件时的预期权限混合在一起。这意味着如果 Netbeans 想要一个带有 rw-r--r-- 的文件并且掩码是 002(意味着你想 删除 为其他人写),真正的保护将是 rw- r--r--。这背后的操作是:
real_rights = wanted_rights & ~umask
应用程序对其创建的文件有保护偏好,而用户对他不想要的权限有偏好。
正如@tripleee 所说,Netbeans 不是设置 umask 的 shell 的子项。
umask 命令在 .bashrc 中,仅在 shell window 打开时执行,但不在会话登录时执行。
将 umask 命令移动到 .profile 后,包括 netbeans 在内的所有 GUI 程序都正确地使用了 umask。
我的 linux umask 是 002。
$ umask
0002
因此新文件具有 664 权限。
$ touch new-file
$ ls -l
-rw-rw-r-- 1 david www-data 0 feb 11 11:37 new-file
但是,如果我从 netbeans 创建一个新文件(右键单击/新建/清空文件),它有 644 个权限。
$ ls -l
-rw-r--r-- 1 david www-data 0 feb 11 11:40 netbeans-file
我可以配置从 netbeans 创建新文件的权限吗?
umask
是一个掩码,它与创建文件时的预期权限混合在一起。这意味着如果 Netbeans 想要一个带有 rw-r--r-- 的文件并且掩码是 002(意味着你想 删除 为其他人写),真正的保护将是 rw- r--r--。这背后的操作是:
real_rights = wanted_rights & ~umask
应用程序对其创建的文件有保护偏好,而用户对他不想要的权限有偏好。
正如@tripleee 所说,Netbeans 不是设置 umask 的 shell 的子项。
umask 命令在 .bashrc 中,仅在 shell window 打开时执行,但不在会话登录时执行。
将 umask 命令移动到 .profile 后,包括 netbeans 在内的所有 GUI 程序都正确地使用了 umask。