bash - 我的 bash 脚本如何确保生成的文件具有组读取权限?

标签 bash file-permissions

我有一组用户在 Ubuntu 机器上运行脚本,应该允许他们覆盖一些输出。

想象一下以下情况:

#!/bin/bash

NAME=$1
echo "Hello, $NAME" > output.txt

当一个用户运行此命令时,我们在 output.txt 上获得以下权限:-rw-r--r--。但是,当不同的用户运行它时,我们会得到 -rw-r--r--

我的脚本组合包括 BASH、Python 和 Scala。我可以在目录或用户级别设置什么来确保新文件默认创建为 -rw-rw-r-- 吗?

最佳答案

您需要使用umask命令和002八进制掩码。

运行:

umask 002

在脚本的开头将脚本制作为:

#!/bin/bash

umask 002
NAME="$1"
echo "Hello, $NAME" > output.txt

umask 002 会将默认目录权限设置为 775,将默认文件权限设置为 664

八进制表示法如下:

0 : read, write and execute
1 : read and write
2 : read and execute
3 : read only
4 : write and execute
5 : write only
6 : execute only
7 : no permissions

关于bash - 我的 bash 脚本如何确保生成的文件具有组读取权限?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39539961/

相关文章:

linux - 从 shell 脚本打开 gnome-terminal 并保持窗口打开

linux - BASH shell 脚本在命令提示符下工作正常,但不适用于 crontab

regex - 根据 Bash 中的模式重命名目录

由 Tomcat webapp 创建的文件以及所有者、所有者组、此文件的权限

bash - 从 Jenkins 中的 curl 获取 shell 错误代码,同时仍在控制台中显示输出

regex - 如何在 bash 正则表达式替换中引用捕获

drupal - 安装 drupal 模块时文件系统权限错误

python - 确定是否继承 ntfs 权限的可靠方法

android - 保护数据库文件不被任何其他用户访问

windows - openssh windows 错误的所有者或权限