标签: umask

什么是“umask”,它是如何工作的?

我相信 umask 是控制文件权限的东西,但并不完全理解它。

运行后umask 0644终端,我无法读取我用命令行的文本编辑器创建的文件nano。我注意到该文件的权限设置为0022而不是默认的0755.

umask 是如何工作的?我以为我可以从0777, 7 - 6 = 1and 中删除 umask 中的每个数字7 - 4 = 3,所以我希望权限是0133,但显然,情况并非如此。

  1. umask 究竟是什么?像我是“Linux 菜鸟”一样向我解释
  2. 我如何用 umask 计算?
  3. umask 的用例是什么?

permissions umask

216
推荐指数
5
解决办法
41万
查看次数

如何为特定文件夹设置 umask

由于一些明显的原因,我需要umask为一个特定文件夹设置值。怎么能这样呢?

先谢谢了!

更新 1

我需要对特定文件夹使用 umask 的原因如下。我有一个 Web 应用程序,当它创建一些文件时,默认权限是 700。但我至少需要该文件的 755 权限。我想我现在可以更清楚地解释这个问题了。

permissions umask

37
推荐指数
3
解决办法
15万
查看次数

为什么umask 077 不允许用户执行文件/目录?

我正在使用 umask 077 。“其他”和“组”没有任何权限,但用户无法执行文件/目录。为什么umask 077 不允许所有者执行文件/目录?

umask

10
推荐指数
2
解决办法
5万
查看次数

如何永久更改 umask 模式?

我已经阅读了几篇像这篇旧文章如何更改umask模式,但仍然无法 100% 弄清楚我使用 Xenial 内核运行 Ubuntu 14.04,默认umask 为 0002,我的目标是永久设置0027 umask模式整个系统。我该如何实现?这样做的最佳方法是什么?

permissions umask

10
推荐指数
2
解决办法
3万
查看次数

如何使具有永久权限的目录与默认目录不同

我设置了系统范围的默认权限umask 027。我需要创建一个目录,其子目录需要 775 权限,其文件需要 664 权限,并在启动系统后使这些权限永久。

我正在寻找不影响安全性的最佳选择。有任何想法吗?

让我解释一下情况:我的默认权限为 027(系统范围),我希望 apache2 写入一个目录(它的目录),该目录应该是 022,以便其他用户(假设...另一个守护进程,例如Flash Media Server 以流式传输视频)以访问和运行它。¿有什么好主意吗?(FMS 应该能够从 apache2 创建的新目录中运行视频)。

谢谢你。

做了一些研究:

  1. sudo chfn -o "umask=002" daemon_username
  2. 在启动时umask 022在所需目录上运行的 bash 脚本
  3. 添加/etc/fstab(特别注意与绑定相关的第 2 行)[已测试但不工作]:

    IP_NFS_Volume:/nfs_mount  /local_tempmount  nfs   tcp,nolock,intr,rsize=8192,wsize=8192
    /local_tempmount          /desired_mount    none  bind,dmask=0002,fmask=0002
    
    Run Code Online (Sandbox Code Playgroud)

PS我正在寻找一个控制台命令,一个脚本(甚至是从cron运行的定期命令),但是没有X11就可以运行。

permissions command-line boot umask

7
推荐指数
1
解决办法
3045
查看次数

为什么 umask 没有按预期工作?

请问有人可以向我解释一下吗?
我设置:

umask 000
touch afile.tmp
Run Code Online (Sandbox Code Playgroud)

结果:

-rw-rw-rw- 1 jay apache 0 Aug 16 18:11 afile.tmp
Run Code Online (Sandbox Code Playgroud)

我期待这个:

-rw-rw-rw-
Run Code Online (Sandbox Code Playgroud)

像这样:

-rwxrwxrwx
Run Code Online (Sandbox Code Playgroud)

为什么 umask 不设置x新文件修改的权限“ ”?

permissions umask 12.04

6
推荐指数
1
解决办法
3454
查看次数

如何在 Ubuntu 17.04 中设置默认 umask?

过去,我一直设置umask~/.profile。我设置了一个umask077所以我的文件获得了600 (rw-------). 但是~/.profile在 Ubuntu 17.04 中将其设置为不再有效。

因此,当在 Ubuntu 17.04 上的 gnome 会话中创建新文档时,我可以在哪里配置以便使用权限 600 创建它们?

permissions .profile umask gnome-session 17.04

6
推荐指数
4
解决办法
2万
查看次数

如果我将 umask 从 022 更改为 027,哪些权限会​​发生变化?

我刚刚开始使用Lynis(请不要认为我拼错了 Linux)。它运行后,我建议还是设置umask/etc/login.defs/etc/init.d/rc027比默认022

我想知道会对文件权限进行哪些更改。另外为什么值存储在两个文件中?它们的工作方式不同吗?

如果需要更多信息,我使用 Ubuntu 12.10,我是该系统的唯一用户。

permissions umask lynis

5
推荐指数
2
解决办法
3万
查看次数

为什么我的 umask 一直重置为 000?

当我重新登录时,我的 umask 是002. 至少有一段时间。然后在某个时候,我不确定什么时候,它会恢复为000. 这非常不方便,我现在经常担心在我的主目录中丢失具有奇怪权限的文件和文件夹。

000使用几分钟后或几天后可能会恢复为。在我第一次安装 ubuntu 几周后,它发生了很多,然后它就冷却下来了,就在最近几天,这个问题又出现了。

我可以将它设置回002with$ umask 002但这仅适用于当前 shell(如预期的那样)。

更多信息:

  • ctrl-alt-f2 上的 tty 有一个 umask ,002即使我的 f7 登录在000
  • /etc/profile 说 umask 现在由 pam_umask 处理
  • /etc/login.defsUMASK 022USERGROUPS_ENAB yes

我正在使用 XMonad 和 (oh-my-)zsh 运行 Ubuntu 13.10。

如果这是有用的,这是我的 /etc/fstab

# <file system> <mount point>   <type>  <options>       <dump>  <pass>                                    
# / was on /dev/sdb8 during installation                                                                  
UUID=96f989e0-ee94-4bff-9663-3fa479a83ad4 /               ext4    errors=remount-ro 0       1
# /boot/efi was …
Run Code Online (Sandbox Code Playgroud)

umask

5
推荐指数
1
解决办法
1486
查看次数

为什么用户的 umask 值在两个系统之间不同?

我有两个系统,A 和 B。A 是 Ubuntu 16.04,B 是 Ubuntu 20.04。每个都定义了一个实用程序用户“rufus”。'rufus'在这两个系统上都没有登录名

我想了解为什么 'rufus' 在两个系统之间具有不同的默认 umask 值。在系统 A (16.04) 上,我得到

$ sudo -u rufus sh -c umask
0022
Run Code Online (Sandbox Code Playgroud)

在系统 B (20.04) 上,我得到

$ sudo -u rufus sh -c umask
0002
Run Code Online (Sandbox Code Playgroud)

运行umask两个我自己的用户和“根”的回报0022,预期默认情况下,这两个系统。不管区别是什么,它似乎与某些特定于“rufus”的属性有关。

以下是我考虑过的事情:

1)系统用户

一些 Linux 系统为系统用户和普通用户定义了不同的默认 umask。

在系统 A (16.04) 上,'rufus' 有

$ id rufus
uid=999(rufus) gid=999(rufus) groups=999(rufus)
Run Code Online (Sandbox Code Playgroud)

在系统 B (20.04) 上,'rufus' 有

$ id rufus
uid=114(rufus) gid=119(rufus) groups=119(rufus)
Run Code Online (Sandbox Code Playgroud)

两个系统上,/etc/login.defs默认 umask 都是 022 …

configuration users umask

5
推荐指数
1
解决办法
100
查看次数

在 14.04 和 16.04 之间使用 sudo 安装的权限问题

我在 16.04 中安装软件包时遇到了许多权限问题。我使用 安装它们sudo,但是普通用户无法读取包中的文件。

所以我进行了一个简单的测试:我sudo在 14.04 中创建了一个目录,并查看了权限:

sudo mkdir test_14_04
ls -ld test_14_04/ 
#returns: drwxr-xr-x 2 root root 4096 Jan  3 05:57 test_14_04/
Run Code Online (Sandbox Code Playgroud)

然后我在 16.04 做了同样的事情,但我得到:

#returns: drwxr-x--- 2 root root 4096 Jan  3 06:00 test_16_04/
Run Code Online (Sandbox Code Playgroud)

如您所见,默认权限在 14.04 中为全局读取,但在 16.04 中不是。所以这可能是sudo-installed 包权限的问题。

我怎样才能解决这个问题?

PS:
我的 16.04 Ubuntu 版本是:

Distributor ID: Ubuntu
Description:    Ubuntu 16.04.3 LTS
Release:        16.04
Codename:       xenial
Run Code Online (Sandbox Code Playgroud)

我的 14.04 版本是:

Distributor ID: Ubuntu
Description:    Ubuntu 14.04.5 LTS
Release:        14.04
Codename:       trusty
Run Code Online (Sandbox Code Playgroud)

permissions sudo umask 14.04 16.04

4
推荐指数
1
解决办法
828
查看次数

2
推荐指数
1
解决办法
174
查看次数

将 umask 设置为 000 是否危险

我知道该设置umask000导致潜在的安全问题。我不在乎。我只想知道如果我以 root ( sudo umask 000) 或在/etc/init.d/rc脚本中执行,是否会发生不好的事情。我所说的坏事是指破坏系统的包或重要部分。

umask

2
推荐指数
1
解决办法
3893
查看次数