PostgreSQLでCOPYを使う時のSELinux設定を教えてもらった

PostgreSQLでCOPYを使ってCSV取込を行おうとしたところ「許可がありません」と表示され取り込むことができなかった。調べたところSELinuxが悪さをしている模様。いつもならすぐさまSELinuxを停止するんだけど、今回は様子が違うようで...
11
Yamamoto Kazuhisa @kazuhisa1976

うーん。auditdは動いてるなぁ。

2012-07-19 19:32:15
ishikawa84g @ishikawa84g

@kazuhisa1976 今はコピーは成功して、ログだけでないで合っていますよね?/var/log/messages もでてないんですよねぇ。

2012-07-19 19:32:29
Yamamoto Kazuhisa @kazuhisa1976

殺したくない!殺したいわけじゃないんだ。僕たちはもっと分かり合えるはず SELinux!

2012-07-19 19:35:00
ishikawa84g @ishikawa84g

@kazuhisa1976 とすると、ログが抑止されているかもしれません。SELinux のログが抑止されている可能性がありますので yum -y install policycoreutils-python ; semanage dontaudit off で再度お願いします。

2012-07-19 19:35:01
Yamamoto Kazuhisa @kazuhisa1976

@ishikawa84g policycoreutils-pythonはすでにインストール済みでした。semanage dontaudit offにしたけど、audit.logとmessages両方何も出力されませんね。

2012-07-19 19:38:28
そーだい@初代ALF @soudai1025

@kazuhisa1976 @ishikawa84g ありがとうございます。今から資料を拝見させていただこうと思います!!

2012-07-19 19:40:39
ishikawa84g @ishikawa84g

@kazuhisa1976 うーむ。ログが出ていれば対処できるのですが、出ていないとなると色々確認しながらの切り分けになります。。

2012-07-19 19:45:44
Yamamoto Kazuhisa @kazuhisa1976

@ishikawa84g 了解しました。SELinux自体の動作も含めてちょっと自分で検証してみます。お付き合いいただきありがとうございました。

2012-07-19 19:47:01
Yamamoto Kazuhisa @kazuhisa1976

@ishikawa84g SELinuxをすぐ殺すのは良くないことだとは思ってるんですがやっぱり敷居が高いです。頂いた資料を読んでもう少し基礎力をつけます。

2012-07-19 19:50:43

うーん。ログが出ないことにはどうにもならないか。今回もまた殺すのか。こうして憎しみの連鎖は続いていくのか... 諦めかけたその時、メンションが!

ishikawa84g @ishikawa84g

@kazuhisa1976 あ、最後に。「PostgreSQLでcopyコマンド」 というのは pg_dump の出力結果などにもある COPY ではなく、restore_command に書く cp ですよね?

2012-07-19 19:52:38
Yamamoto Kazuhisa @kazuhisa1976

@ishikawa84g csv取込とかを行うcopyコマンドです。この場合は、どちらになるんでしょうか。

2012-07-19 19:53:38
Yamamoto Kazuhisa @kazuhisa1976

@ishikawa84g 「pg_dump の出力結果などにもある COPY 」ですね!

2012-07-19 19:54:55
ishikawa84g @ishikawa84g

@kazuhisa1976 こういうやつですね。COPY users FROM '/tmp/users.csv' WITH CSV;

2012-07-19 19:55:42
ishikawa84g @ishikawa84g

@kazuhisa1976 ようやくつながりましたw psql で入って、COPY コマンド。多分、CSV ファイルに対して、getattr か open が出来ないんだと思います。もしくは、配置ディレクトリに対して search が出来ない。

2012-07-19 19:57:08
ishikawa84g @ishikawa84g

@kazuhisa1976 ls -Z csv と ls -Zd csv配置先 の結果をいただけませんでしょうか。

2012-07-19 19:59:34
Yamamoto Kazuhisa @kazuhisa1976

@ishikawa84g $ ls -Z hogehoge.csv -rw-rw-r--. kazuhisa kazuhisa unconfined_u:object_r:user_home_t:s0 hogehoge.csv

2012-07-19 20:01:16
Yamamoto Kazuhisa @kazuhisa1976

@ishikawa84g $ ls -Zd box drwxrwxrwx. kazuhisa kazuhisa unconfined_u:object_r:user_home_t:s0 box です。

2012-07-19 20:02:25
ishikawa84g @ishikawa84g

@kazuhisa1976 了解です。ためしに、mv hogehoge.csv /tmp ; restorecon -Fv /tmp/hogehoge.csv をして、Enforcing状態で読み込んでもらってもいいですか?

2012-07-19 20:04:14
ishikawa84g @ishikawa84g

@kazuhisa1976 あばば、cp でも大丈夫です。

2012-07-19 20:05:00
Yamamoto Kazuhisa @kazuhisa1976

@ishikawa84g /tmp/hogehoge.csvをよみこむんですよね?やはり「許可がありません」と表示されます。

2012-07-19 20:07:42
ishikawa84g @ishikawa84g

@kazuhisa1976 はい。あと、ごめんなさい。とんだ嘘を付いてしまいました。。/tmp はディレクトリしか読めませんでした。。/var/lib/pgsql/data に移動して、restorecon して、読んでみて頂けますか。

2012-07-19 20:10:15
Yamamoto Kazuhisa @kazuhisa1976

@ishikawa84g cp hogehoge.csv /var/lib/pgsql/data;restorecon -Fv /var/lib/pgsql/data/hogehoge.csvを行なってから、COPYすると読み込めました!

2012-07-19 20:14:11