我有一组用户在 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/