HTML,CSS,PHP,ワードプレスカスタマイズ 技術情報資料

ファイルのオーナーを変更する。

スポンサーリンク

FTPでアップロードしたり、プログラムからファイルを作ったりするとアップロード/作成したファイル、ディレクトリのオーナーが apach とかになったりすることがあります。

本当は、ありえないんだけど、サーバー管理者のレベルが低かったりするとよく起こります。

代表例は、le ・・・ やめとこ(笑)

まぁ、le ・・・ の場合は、サーバーコントロールパネルから所有者を変更ができるようになっていますが、
(逃げられないから、それでごまかしてるってことでしょうがww)ファイルを1本づつしていしないといけない。

こちらは、何百本もファイルをアップロードしてるのでとてもじゃないけど無理。

そこで、自作プログラムでオーナーを変更してみようと思ったわけです。

ファイルのオーナーを変更するプログラム perl 編


と、いっても perl でしかやるつもりはなかった。こういう系は パーミッションすら変更できない php では絶対無理。

で、プログラムソースです。試してみてください。

#!/usr/bin/perl —
main();
exit 0;
# ============================================================================
sub main
# ============================================================================
{

# 以下のファイルのオーナーを変更できるか試してみた。
# スーパーユーザーでないとだめっぽい。
my $fname = ‘相対位置で変更したいファイルを指定’;
my $iam = ‘新しいユーザー名’; # 自分のユーザー名

# ファイル情報を取得する
my ($dev, $ino, $mode, $nlink, $uid, $gid, $rdev, $size,
$atime, $mtime, $ctime, $blksize, $blocks) = stat $fname;

# ファイルの所有者ユーザID(数値)からユーザ名を取得する
my $uname = getpwuid $uid;

# 自身のユーザーID,グループIDを取得する
my ($name, $password, $uid, $gid, $quota, $comment, $gcos, $dir, $shell)
= getpwnam $iam;

# 肝、ファイルのオーナーID,グループIDを変更する
my @file = ($fname);
my $ret = chown $uid, $gid, @file;

# 変更後のファイルのユーザー情報を取得する
my ($ndev, $nino, $nmode, $nnlink, $nuid, $ngid, $nrdev, $nsize,
$natime, $nmtime, $nctime, $nblksize, $nblocks) = stat $fname;

# コマンドが効いていれば、ユーザー名が変わってるはず!
my $cname = getpwuid $nuid;

# 結果の表示
print "Content-type: text/html\n\n";
print <<"EOM";
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=x-sjis">
<meta http-equiv="x-ua-compatible" content="IE=8" >
<meta http-equiv="x-ua-compatible" content="IE=EmulateIE8" >
<TITLE>$htmltitle</TITLE>
</HEAD>
<body>
# 以下のファイルのオーナーを変更できるか試してみた。
# スーパーユーザーでないとだめっぽい。
$fname
<hr />
USER NAME : $uname (変更コマンド発効前のオーナー)
RETURN ST : $ret (変更コマンド実行の戻りステータス 0:失敗 1:成功)
CHANGE IS : $cname (変更コマンド発効後のオーナー)

name : $name
uid_ : $uid
gid_ : $gid
quot : $quota
comt : $comment
gcos : $gcos
dir_ : $dir
shel : $shell
</body>
</html>
EOM
}



ファイルのオーナーを変更する まとめ


基本的にファイルのオーナーを変更することができるのは、スーパーユーザーのみ。

知ってたさ(--

プログラムでやろうともなにしようともスーパーユーザーのみ。

それは、どこでも書いてある。


結果として、できません(笑)

でも、ファイルのユーザーとか自身の情報とかをゲットするコマンドは使えるんじゃないでしょうか?

使用の具体例として参考になれば幸いです。


期待させてすみません。 m(_ _)m


ということで、le ・・・は、データ引っ越しして、解約しようと思っています。

スポンサーリンク

関連記事

スポンサーリンク

よく使うタグ

・float クリア
<br clear="all"><div style="clear:both;" class="clearfix"></div>
・角丸め
round-radius
border-radius:5px; -webkit-border-radius:10px; -moz-border-radius:10px;
・div box
overflow:scroll;min-width:300px;max-width:300px;min-height:300px;max-height:300px;
・TEXTAREAリサイズ
resize: vertical;
・サイトURL
home_url() // http://…
if(site_url()==home_url){
$shorturl_yuzu_path = substr(ABSPATH,0,strpos( ABSPATH, substr(site_url(),strlen(home_url()) ) ) ).’/’;
}else{
$shorturl_yuzu_path = ABSPATH.’/’;
}
// /var/…
・WP HOME URL
site_url() // http://…/wp
ABSPATH // /var/…/wp
・プラグイン(自分のDIR追加必要)
plugins_url() // http://…/plugins
WP_PLUGIN_URL // http://…/plugins
WP_PLUGIN_DIR // /var/…/plugins
・使用中のテーマ
get_template_directory_uri() // http://…/theme/xx
get_template_directory() // /var/…/theme/xx
・wp-content
content_url() // http://…/wp-content
WP_CONTENT_DIR // /var/…/wp-content
・画像URLからDIR変換
$pctdir=str_replace(content_url(), WP_CONTENT_DIR,$pcturl);
・パス名分解
$pathData = pathinfo($file);
echo $pathData["dirname"]; // /var/~
echo $pathData["filename"]; // xxx
echo $pathData["extension"]; // txt
echo $pathData["basename"]; // xxx.txt
・画像サイズ
list($width,$height) = getimagesize($url);
if(has_post_thumbnail()){
$thumbnail_id = get_post_thumbnail_id();
$thumbnail_img = wp_get_attachment_image_src( $thumbnail_id , ‘full’ );
$src = $image[0]; //url
$width = $image[1]; //横幅
$height = $image[2]; //高さ
・画像サイズ比率
list($src_w,$src_h) = getimagesize($file);
$dst_w = 600;$dst_h = 0;
$dst_h = ($dst_w!=0)?(intval(($src_h*$dst_w)/$src_w )):(($dst_h!=0)?(intval(($src_w*$dst_h)/$src_h)):0);
・疑似要素順
link visited hover active


特殊文字
シングルクォート : &#39;
ダブルクォート : &quot;
WP設定内表示前処理(htmlタグ許可項目)
$str = str_replace(‘<','&lt;' ,$str);
$str = str_replace(‘>’,’&gt;’ ,$str);
$str = str_replace(‘\”‘,’&quot;’,$str);
$str = str_replace(“\'”,’&#39;’ ,$str);
WO設定項目表示前処理(htmlタグ許可項目)
$str = str_replace(‘\”‘,'”‘,$str);
$str = str_replace(“\'”,”‘”,$str);
・テーマ
get_theme_root_uri()
get_theme_root()
・WP 情報
get_bloginfo( $show )
・Wp config FTP 情報 設置
define( ‘FTP_HOST’, ‘host’ );
define( ‘FTP_USER’, ‘id’ );
define( ‘FTP_PASS’, ‘pw’ );
define( ‘FTP_SSL’, false );
弾に使う
placeholder:ユーザー入力補助

カテゴリー

MW WP FORM のフックが効かない。

MW WP FORM のフックが効かない。 MW WP FORM のフックが効かない。MW WP FORM は、各種フックがあってカスタマイズが便利~とか言われているプラグインですが。。。マニュアルにはあるのにフックが効かないフックがかなりある

MW WP FORM のショートコードで出力される内容をカスタマイズする。

MW WP FORM のショートコードで出力される内容をカスタマイズする。 MW WP FORM のショートコードで出力される内容をカスタマイズしたくなりました。非表示フィールド type=”hidden” にデータをためておいて、それをメール送信する

WelCart 買い物かごのカスタマイズ、テンプレートファイルの場所

WelCart 買い物かごのカスタマイズ、テンプレートファイルの場所 WelCart 買い物かごのカスタマイズするとき、毎回テンプレートファイルを探すのでメモしておきます。WelCart 買い物かごのカスタマイズ、テンプレートファイルの場所WelCart 買い物かごのカ

WelCart で投稿ページに商品購入欄を作る

WelCart で投稿ページに商品購入欄を作る WelCart の商品ページは、ご存知んごとくウルトラダサい。これをカスタマイズしないとなんとも素人っぽさの抜けないサイトになってしまう。WelCart で投稿ページに商品購入欄を作るときのモジュール

FB 広告 最適化~グーグルアナリティクスとサーチコンソールの連動のさせかた(必要な分だけ)

FB 広告 最適化~グーグルアナリティクスとサーチコンソールの連動のさせかた(必要な分だけ) FB 広告 最適化にあたって必要になってくるツールがグーグルアナリティクスとサーチコンソール。別にグーグルのアナリティクス、サーチコンソールでなくてもアクセス解析はできるんだけど、グーグルはユーザー囲

FB 広告 最適化~グーグルアナリティクスの使い方(必要な分だけ)

FB 広告 最適化~グーグルアナリティクスの使い方(必要な分だけ) FB 広告 最適化にあたって必要になってくるツールがグーグルアナリティクス。別にグーグルのアナリティクスでなくてもアクセス解析はできるんだけど、グーグルはユーザー囲い込みの為他のアクセス解析では見せな