Notice: get_currentuserinfo の使用はバージョン 4.5.0 から非推奨になっています ! 代わりに wp_get_current_user() を使ってください。 in /var/www/html/blog/wp-includes/functions.php on line 3831 Call Stack: 0.0000 228200 1. {main}() /var/www/html/blog/index.php:0 0.0001 228640 2. require('/var/www/html/blog/wp-blog-header.php') /var/www/html/blog/index.php:17 0.1083 5920008 3. require_once('/var/www/html/blog/wp-includes/template-loader.php') /var/www/html/blog/wp-blog-header.php:19 0.1094 5928080 4. include('/var/www/html/blog/wp-content/themes/zbench/single.php') /var/www/html/blog/wp-includes/template-loader.php:74 0.1094 5928112 5. get_header() /var/www/html/blog/wp-content/themes/zbench/single.php:1 0.1094 5928696 6. locate_template() /var/www/html/blog/wp-includes/general-template.php:45 0.1094 5928936 7. load_template() /var/www/html/blog/wp-includes/template.php:647 0.1095 5942800 8. require_once('/var/www/html/blog/wp-content/themes/zbench/header.php') /var/www/html/blog/wp-includes/template.php:688 0.1108 5959080 9. wp_head() /var/www/html/blog/wp-content/themes/zbench/header.php:8 0.1108 5959128 10. do_action() /var/www/html/blog/wp-includes/general-template.php:2589 0.1109 5959800 11. WP_Hook->do_action() /var/www/html/blog/wp-includes/plugin.php:453 0.1109 5959896 12. WP_Hook->apply_filters() /var/www/html/blog/wp-includes/class-wp-hook.php:323 0.1251 6181176 13. call_user_func_array:{/var/www/html/blog/wp-includes/class-wp-hook.php:298}() /var/www/html/blog/wp-includes/class-wp-hook.php:298 0.1251 6181784 14. add_google_analytics() /var/www/html/blog/wp-includes/class-wp-hook.php:298 0.1253 6182568 15. ga_current_user_is() /var/www/html/blog/wp-content/plugins/google-analyticator/google-analyticator.php:1116 0.1253 6182600 16. get_currentuserinfo() /var/www/html/blog/wp-content/plugins/google-analyticator/google-analyticator.php:1289 0.1253 6182824 17. _deprecated_function() /var/www/html/blog/wp-includes/pluggable-deprecated.php:49 0.1254 6183312 18. trigger_error() /var/www/html/blog/wp-includes/functions.php:3831

oooooooops! cannot change directory…(SELinux)

 oooooooops!というわけで、サーバにFTP接続しようとしたらディレクトリ遷移できなくて接続切られてしまう件。
 環境はは以下。
  • CentOS 5.2
  • vsFTPd。
 Windowsのコマンドプロンプトより

C:\Documents and Settings\hoge>ftp hoge_host
Connected to hoge_host.
220 (vsFTPd 2.0.5)
User (hoge_host:(none)): hoge
331 Please specify the password.
Password:
500 OOPS: cannot change directory:/home/hoge
500 OOPS: child died
Connection closed by remote host.

 vsFTPは初めてだったし、configも何もしてなかったから、それかなー、と思ってたら違う。
 これは、SELinuxのセキュリティポリシーによるもの。SELinuxもはじめて。

# man ftpd_selinux

SELinux  ftp daemon policy is customizable based on least access required.
So by default SElinux does not allow users to login and  read  their  home
directories.
If  you  are  setting  up  this machine as a ftpd server and wish to allow
users to access their home directorories, you need to set the ftp_home_dir
boolean.

setsebool -P ftp_home_dir 1

 SElinuxはデフォルトでユーザのFTP接続を許可しておらず、ユーザのホームディレクトリを読ませない。
 言われるがままに、setseboolコマンドを叩く。

# setsebool -P ftp_home_dir 1

 Windowsコマンドプロンプト

C:\Documents and Settings\hoge>ftp hoge_host
Connected to hoge_host.
220 (vsFTPd 2.0.5)
User (hoge_host:(none)): hoge
331 Please specify the password.
Password:
230 Login successful.
ftp>

 できた。
 「OOPS: cannot change directory」でWeb検索すると山ほど出てくるが備忘録としてエントリする。
Related Posts

2 Comments.

  1. ありがとうございました。役立ちました。

  2. fsockopen()が失敗する

    Warning [PHP]: fsockopen() [function.fso…