【问题标题】:How can my bash scripts ensure resulting files have group read permissions?我的 bash 脚本如何确保生成的文件具有组读取权限?
【发布时间】:2017-01-25 04:23:29
【问题描述】:

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

想象一下:

#!/bin/bash

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

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

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

【问题讨论】:

  • 为什么不提前创建具有正确权限的文件。只要没有删除文件,它的权限就会保持不变。
  • 对。我可以这样做,但我正在寻找新知识和一些可以简化我正在做的事情的东西。提供的答案很有帮助。

标签: bash file-permissions


【解决方案1】:

您需要将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

【讨论】:

  • 我以为他只是想确保脚本内创建的文件的权限。要求用户在运行脚本之前更改环境似乎是错误的。
猜你喜欢
  • 2023-03-21
  • 1970-01-01
  • 2012-06-07
  • 2013-09-18
  • 1970-01-01
  • 2017-02-12
  • 2016-10-11
  • 2012-06-22
  • 2014-10-26
相关资源
最近更新 更多