标签: umask

在Linux中的目录下设置新创建的文件和子目录的默认权限?

我有一堆长时间运行的脚本和应用程序,它们将输出结果存储在少数用户之间共享的目录中.我想要一种方法来确保在此共享目录下创建的每个文件和目录都自动拥有u=rwxg=rwxo=r权限.

我知道我可以使用umask 006我的各种脚本,但我不喜欢这种方法,因为许多用户编写自己的脚本,可能忘记自己设置umask.

我真的只是希望文件系统设置新创建的文件和目录,如果它在某个文件夹中,则具有一定的权限.这是可能吗?

更新:我认为可以使用默认ACL功能使用POSIX ACL来完成,但目前这一切都在我的脑海中.如果任何人都可以解释如何使用默认ACL,它可能会很好地回答这个问题.

linux permissions acl umask

96
推荐指数
3
解决办法
21万
查看次数

如何设置系统范围的umask?

我在一个运行Linux(Debian和Ubuntu)的实验室工作.用户名和组名由NIS和yp处理.我们有一些普通用户,每个人都可以访问运行实验,然后我们每个人都拥有自己的用户,此外还有一个我们都是其成员的公共组.

如何使/home/用户/组对共享驱动器(NFS)上的所有文件和目录进行读/写(/可执行)?基本上我想要的是

chmod -R 664 /home
chgrp -R commongroup /home
Run Code Online (Sandbox Code Playgroud)

或者等价的umask 0002.

但是运行上述命令只能修复文件夹中的当前文件,而umask仅适用于单个用户,并且必须在每次用户登录时运行,即.在.bashrc文件中(这将通过gnome用于更改模式吗?).是否有系统范围的命令或设置可用于确保我们的commongroup对公共文件具有写入权限?

linux system umask

62
推荐指数
2
解决办法
7万
查看次数

如何在C中创建具有特定权限的Unix Domain Socket?

我有一个简单的代码,如:

sockaddr_un address;
address.sun_family = AF_UNIX;
strcpy(address.sun_path, path);
unlink(path);

int fd = socket(AF_UNIX, SOCK_STREAM, 0);
bind(fd, (sockaddr*)(&address), sizeof(address));
listen(fd, 100);
Run Code Online (Sandbox Code Playgroud)

我想以原子方式创建具有特定权限的Unix Domain Socket文件,例如:0777.手册没有说明有关套接字文件权限的umask任何内容.甚至,如果umask确实影响了套接字文件,那么它不是一种原子方式 - 在多线程程序中.

我希望,有一种方法可以在不使用umask()调用同步的情况下实现我的目标.

c unix sockets umask unix-socket

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

linux:获取已经运行的进程的umask?

如何检查当前正在运行的程序的umask?

[更新:另一个流程,而不是当前流程.]

unix linux umask

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

更新文件时Git更改默认umask

我有Git的问题.我在Google和StackOverflow中搜索了一个解决方案,但没有任何帮助.

问题是,每当git更新工作目录中的某个文件时(当我签出分支或合并分支时等),则更改文件权限,以便添加"可写入组"标志.如果文件可写入组,我的apache会显示"错误500".

示例:我有一个文件index.php.权限是"-rwxr-xr-x".当前(活动)分支是主分支.此文件在分支"develop"中已更改.我执行"git checkout develop"并且文件index.php获得权限"-rwxrwxr-x"(可写入组添加).我的网站停止工作.由于apache不允许在php文件中使用此标志(我不知道为什么但我无法更改此内容).

每当我执行"git checkout develop"时,我还需要执行"chmod gw index.php".我不喜欢执行两个命令(有时我忘记执行此操作,我的网站不起作用).

我该怎么做才能解决这个问题?我认为这与umask有关.我在网上找到了一些技巧,但没有任何效果.

谢谢.

git permissions umask

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

Umask在0022和022之间的差异

umask 0022022?之间有什么区别吗?我想把我的umask改成022.我该怎么做?

unix file-permissions umask

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

在Git/Gitolite中设置umask

我已经设置了Git和Gitolite,并且在某些时候我记得曾在其中一个配置文件中看到过"umask"设置.这是否为我使用Git同步的所有文件设置了权限?这正是我所需要的.我在哪里可以找到它?

git permissions umask gitolite

15
推荐指数
1
解决办法
9887
查看次数

java在创建文件对象时将文件权限设置为777

可能重复:
如何在java中设置umask?

在java中创建文件对象时,如何将文件权限设置为777(或任何其他任意权限)?

java file-permissions file umask

14
推荐指数
3
解决办法
7万
查看次数

更新npm,cordova后出错

我更新了npm和cordova,之后我无法从终端运行任何cordova命令.这是我得到的错误:

Avinash-mac-mini:~ avinash$ cordova
module.js:339
    throw err;


Error: Cannot find module 'umask'
    at Function.Module._resolveFilename (module.js:337:15)
    at Function.Module._load (module.js:287:25)
    at Module.require (module.js:366:17)
    at require (module.js:385:17)
    at Object.<anonymous> (/usr/local/lib/node_modules/cordova/node_modules/npm/lib/utils/umask.js:1:75)
    at Module._compile (module.js:425:26)
    at Object.Module._extensions..js (module.js:432:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:311:12)
    at Module.require (module.js:366:17)
Run Code Online (Sandbox Code Playgroud)

umask cordova

14
推荐指数
1
解决办法
2649
查看次数

如何在ubuntu上追踪php5-fpm umask设置的来源

我真的很感激在Ubuntu上追踪和诊断umask问题的任何帮助:

我正在php5-fpm使用Apache 运行proxy_fcgi.该进程使用0022的umask运行(通过让PHP将结果发送umask()到文件[结果为'18'== 0022]确认).我想将其更改为0002,但无法追踪umask的来源.

使用umask 0002设置Apache,作为测试,如果我禁用proxy_fcgi并运行上面的测试,我会得到一个u + g具有rw访问权限的文件(文件内容确认umask为'2'== 0002).

如果我sudo -iu fpmuser和运行umask结果都是0002.

系统信息:

  • PHP:5.5.3-1ubuntu2.1
  • Apache:2.4.6
  • Ubuntu:13.10
  • PHP-PFM使用TCP端口列出(因为Unix端口尚未工作/支持)

到目前为止,我已经尝试了以下(每个系统重启和重新测试后):

  • 添加umask 0002到开头/etc/init.d/php5-fpm
  • 添加--umask 0002start-stop-daemon调用中/etc/init.d/php5-fpm
  • 添加umask 0002到用户.profile的家中fpm

有些东西显然正在调整php-fpm进程的umask - 所以,我怎样才能开始跟踪强制umask 0022进入php-fpm进程的内容?

编辑(1):

  • 调整系统范围的umask via /etc/login.defs(请参阅如何设置系统范围的umask?)会影响其他地方的umask(例如,sudo现在的comannds 有一个0002的umask),但是php-fpm仍会创建一个umask为0022的文件.请注意,我验证了session optional pam_umask.so也出现了/etc/pam.d/common-session-noninteractive,我测试了002和0002的umasks.

编辑(2):

  • 我已经能够使用nginx和复制问题php5-fpm(使用unix套接字设置为监听模式'0666').
  • 我很想跟踪umask的来源,但我会选择某种方式来强制它达到我想要的效果.
  • 我应该补充说,第一次测试是在Amazon Ubuntu 13.10映像上完成的.我在"编辑2"中的测试,在虚拟机中使用Ubuntu13.10服务器ISO设置的副本完成.所有安装都是通过apt-get完成的,而不是通过下载源和构建来完成的.

编辑(3): …

php apache ubuntu umask

13
推荐指数
2
解决办法
9766
查看次数

标签 统计

umask ×10

linux ×3

permissions ×3

unix ×3

file-permissions ×2

git ×2

acl ×1

apache ×1

c ×1

cordova ×1

file ×1

gitolite ×1

java ×1

php ×1

sockets ×1

system ×1

ubuntu ×1

unix-socket ×1