2016-09-16 4 views
0

私はUbuntuボックスでスクリプトを実行しているユーザのセットを持っています。は、何らかの出力を上書きできるようにしてください。どのようにしてbashスクリプトは、結果のファイルにグループの読み込み権限があることを確認できますか?

は、次のことを想像してみて:

#!/bin/bash 

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

ONEユーザーがこれを実行し、我々はoutput.txtに次の権限を取得します:-rw-r--r--。ただし、別のユーザーが実行すると、-rw-r--r--となります。

私のスクリプトのアンサンブルには、BASH、Python、Scalaが含まれています。新しいファイルがデフォルトで-rw-rw-r--として作成されるように、ディレクトリまたはユーザーレベルで設定できるものはありますか?

+0

なぜあなただ​​けの正しい権限で事前にファイルを作成しないでください。何もファイルを削除しない限り、そのパーミッションは元のままです。 – Barmar

+0

右。私はそれをすることができましたが、私は新しい知識と、私がやっていることを単純化するものを求めていました。提供された回答はかなり役に立ちます。 – Larsenal

答えて

2

umaskコマンドに002オクタルマスクを使用する必要があります。スクリプトを作成するスクリプトの開始時に

umask 002 

実行

#!/bin/bash 

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

umask 002664775にデフォルトのディレクトリのパーミッションとデフォルトのファイルアクセス権を設定します。次のように

進表記法は以下のとおりです。

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 
+0

このコマンドを**スクリプトに入れることができます。 – Barmar

+0

私は彼がスクリプト内で作成されたファイルに対するアクセス許可を確保したかったと思っていました。スクリプトを実行する前に環境を変更する必要があると思われます。 – Barmar

+0

私はあなたが正しいと思う、私は私の答えを変更しました。 – anubhava

関連する問題