【问题标题】:umask ignored by Netbeans 8 on linuxumask 在 Linux 上被 Netbeans 8 忽略
【发布时间】:2016-05-22 02:34:19
【问题描述】:

我的 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 创建的新文件吗?

【问题讨论】:

  • Netbeans 可能不是您设置 umask 的 shell 的子级。父级在很大程度上取决于您的登录方式,但通常是您的桌面管理员。弄清楚如何修复其配置。 (真的不是编程问题。)
  • (你为什么在www-data群里?)
  • 我想拥有对 Apache 创建的文件的写入权限。
  • 你是对的。这不是一个编程问题。我应该删除它吗?
  • “用于编程的工具”是(有点勉强)容忍的,所以我没有投票关闭。我会说暂时离开它。

标签: linux netbeans file-permissions


【解决方案1】:

正如@tripleee 所说,Netbeans 不是设置 umask 的 shell 的子级。

umask 命令位于 .bashrc 中,该命令仅在打开 shell 窗口时执行,而不是在会话登录时执行。

将 umask 命令移至 .profile 后,包括 netbeans 在内的所有 GUI 程序都会正确使用 umask。

【讨论】:

  • 我使用的是 CentOS 7.4,但我没有 .profile。有没有等价物?
  • 尝试用“touch ~/.profile”添加一个。如果你想要它在系统范围内放置一个新文件 /etc/profile.d/ 。另外,您在这里有一些信息:unix.stackexchange.com/questions/36762/…
【解决方案2】:

umask 是一个掩码,在创建文件时,它的预期权限是混合的。这意味着如果 Netbeans 想要一个带有 rw-r--r-- 的文件并且掩码是 002(意味着您要删除为其他人写入),真正的保护将是 rw-r-- r--。这背后的操作是:

real_rights = wanted_rights & ~umask

应用程序对其创建的文件具有关于保护的偏好,而用户对他不想要的权限有偏好。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-17
    • 1970-01-01
    • 2013-01-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多