由于一些明显的原因,我需要umask
为一个特定文件夹设置值。怎么能这样呢?
先谢谢了!
更新 1
我需要对特定文件夹使用 umask 的原因如下。我有一个 Web 应用程序,当它创建一些文件时,默认权限是 700。但我至少需要该文件的 755 权限。我想我现在可以更清楚地解释这个问题了。
我正在使用 umask 077 。“其他”和“组”没有任何权限,但用户无法执行文件/目录。为什么umask 077 不允许所有者执行文件/目录?
我已经阅读了几篇像这篇旧文章如何更改umask模式,但仍然无法 100% 弄清楚我使用 Xenial 内核运行 Ubuntu 14.04,默认umask 为 0002,我的目标是永久设置0027 umask模式整个系统。我该如何实现?这样做的最佳方法是什么?
我设置了系统范围的默认权限umask 027
。我需要创建一个目录,其子目录需要 775 权限,其文件需要 664 权限,并在启动系统后使这些权限永久。
我正在寻找不影响安全性的最佳选择。有任何想法吗?
让我解释一下情况:我的默认权限为 027(系统范围),我希望 apache2 写入一个目录(它的目录),该目录应该是 022,以便其他用户(假设...另一个守护进程,例如Flash Media Server 以流式传输视频)以访问和运行它。¿有什么好主意吗?(FMS 应该能够从 apache2 创建的新目录中运行视频)。
谢谢你。
做了一些研究:
sudo chfn -o "umask=002" daemon_username
umask 022
在所需目录上运行的 bash 脚本添加/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就可以运行。
请问有人可以向我解释一下吗?
我设置:
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
新文件修改的权限“ ”?
过去,我一直设置umask
为~/.profile
。我设置了一个umask
,077
所以我的文件获得了600 (rw-------)
. 但是~/.profile
在 Ubuntu 17.04 中将其设置为不再有效。
因此,当在 Ubuntu 17.04 上的 gnome 会话中创建新文档时,我可以在哪里配置以便使用权限 600 创建它们?
我刚刚开始使用Lynis(请不要认为我拼错了 Linux)。它运行后,我建议还是设置umask
在/etc/login.defs
并/etc/init.d/rc
以027
比默认022
。
我想知道会对文件权限进行哪些更改。另外为什么值存储在两个文件中?它们的工作方式不同吗?
如果需要更多信息,我使用 Ubuntu 12.10,我是该系统的唯一用户。
当我重新登录时,我的 umask 是002
. 至少有一段时间。然后在某个时候,我不确定什么时候,它会恢复为000
. 这非常不方便,我现在经常担心在我的主目录中丢失具有奇怪权限的文件和文件夹。
000
使用几分钟后或几天后可能会恢复为。在我第一次安装 ubuntu 几周后,它发生了很多,然后它就冷却下来了,就在最近几天,这个问题又出现了。
我可以将它设置回002
with$ umask 002
但这仅适用于当前 shell(如预期的那样)。
更多信息:
002
即使我的 f7 登录在000
/etc/profile
说 umask 现在由 pam_umask 处理/etc/login.defs
有UMASK 022
和USERGROUPS_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) 我有两个系统,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 …
我在 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) 您可以使用什么命令来快速查找包含 umask 命令的主文件夹中的哪个文件?
$ grep -rnw "umask" ~
Run Code Online (Sandbox Code Playgroud) 我知道该设置umask
会000
导致潜在的安全问题。我不在乎。我只想知道如果我以 root ( sudo umask 000
) 或在/etc/init.d/rc
脚本中执行,是否会发生不好的事情。我所说的坏事是指破坏系统的包或重要部分。