SambaサーバーにPythonスクリプトがあります。最初はWindowsで使用し、今ではLinuxシステムでも使用したいと思います。そのため、次のコマンドを使用してLinuxシステム(Kubuntu 16.04)にサーバーフォルダをマウントしました。
sudo mount -t cifs //[IP address]/Share Share -o username=guest
これで、Linuxシステムのこの共有ディレクトリにあるPythonファイルを実行したいと思います。 Pythonがこのディレクトリのファイルに書き込む必要があるときに問題が発生します(私は.PNGファイルを作成して結果を記録するために.CSVファイルに書き込みます)。
IOError: [Errno 13] Permission denied: 'filename.png'
これは意味があります...そのファイルに対する権限は次のとおりです。
-rw-rw-r--+ 1 nobody nogroup
私が書いた.PNGファイルは実際にその瞬間に生成されたものでした。したがって、結果は上記の権限を持つ空のファイルです。
既存のファイル(Windowsで作成)の権限は次のとおりです。
-rwxrw-rw-+ 1 nobody nogroup
誰かが私がここに出るのを助けることができますか?
ファイルに書き込めます。 Windowsコンピュータでは引き続き操作/アクセスできます。
問題がどこにあるのかよくわかりません。このファイルが作成されたばかりで、なぜ他の人の所有者ではないのかわかりません。もちろん、書き込みできないのは、グループ権限が読み取り専用で、ファイルがnogroupの一部であるためです。
私は読んで書いて、あなたが望むすべてのことをすることができるWindowsコンピュータ(サーバーではない)から同じファイルにアクセスします。
だから私の質問は、なぜこのファイルが誰にも属さず、nogroupに属しているのか、そしてこの問題をどのように解決できますか?
ベストアンサー1
これにはできるだけ多くの問題があります。
- ユーザーとして共有をマウントします
guest
。このアカウントにファイルを生成するための十分な権限がない場合、問題が発生します。 - を使用しないため、
-o noperm
クライアントは権限の確認とサーバーが実行しようとしているすべてをプリエンプションしようとします。 - 空のPNGファイルが既に存在するか、それともそのファイルがスクリプトによって生成されたと確信していますか?
- サーバーがWindowsであるかSambaであるかに応じて、Windows権限と対話するサーバー側のファイルシステム権限がある場合があります。