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

时间:2016-09-16 20:56:35

标签: 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--吗?

1 个答案:

答案 0 :(得分:3)

您需要使用带有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