2017-11-06 3 views
0

私はmakedirs機能を使用してディレクトリを作成しています:ファイルの許可を変更する要因は何ですか?

makedirs(self.output_dir, exist_ok=True) 

私は、この新しいディレクトリ内の一時ディレクトリ(temp_dir)からいくつかのファイルをコピーしています。最後に

、およびPythonドキュメントによると、私はoutput_dirの許可がrwxrwxrwxことを期待しています。

OS。 makedirs(パス[、モード])

再帰的なディレクトリ作成機能。 MKDIR()と同様ですが、葉のディレクトリが含まれているために必要なすべての 中間レベルのディレクトリになります。葉のディレクトリが既に存在するか が作成できない場合 は、エラーの例外を発生させます。デフォルトモードは0777(8進数)です。

ただし、output_dirの許可はrwx------であることが判明しました。私はoutput_dirの許可の操作を自分のコードのどこにも行なわないので、この結果はわかりません。私は例えばos.chmodを使用していません。私は、rootとして私のPythonスクリプトを実行すると仮定すると、

は、どのような要因は、ディレクトリのパーミッションを変更しているだろうか?

EDIT

は私が一時ディレクトリtemp_dirが同じ予期しないパーミッション(rwxrwxrwx)を持っていることに気づきました。

temp_dir = tempfile.TemporaryDirectory() 

この動作は期待通りですか?私はこのテーマについて何も見つけることができませんでした。

答えて

2

あなたはすでに、ディレクトリ作成の名誉のumaskをのpythonを実行する前に、現在のumaskを持っている場合。

例えば

umask -S u=rwx,g=,o= 

その後

import os 
os.makedirs(... 
+0

私のumaskが '022'に設定するので、私は間違っていたと私は許可、ない' 0777'として '0755'を期待すべきです。しかし、私が最終的に得た許可は '0755'でもありません。だから私はこれが答えだとは思わない。 – Eldy

+0

最良のヘルプを得るには、プログラム全体または同等のテストプログラム全体を投稿する必要があります。 – mjr104

+0

また、あなたの元の質問は「何の要因」であり、未解決の質問です。私はあなたにこれらの要因の一つを与えました。質問を編集してより閉鎖された方がよいでしょう。私はなぜ私のプログラムは私が期待していないXを行うのですか? – mjr104

関連する問題