[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[debian-users:30226] Re: repair permission of directories
池田@オレンジです。
On Mon, 15 Oct 2001 00:10:51 +0900
In repair permission of directories
HIRAMOTO Kouji <HGF03317@xxxxxxxxxxx> Wrote
> 平本と申します。
>
> find / -type d -exec chown a+rx {} \;
chmod ?
> #ついでにいうと、htdocs を / 以下にコピーされた。(;_;)
Makefile.tmplのrootが空だから、これをoverrideせずにそのまま実行しちゃう
と/をインストール先にしちゃうみたいですねぇ。
> せめて Debian のパッケージからインストールしたものに関しては、ディ
> スクトリのパーミッションを元に戻したいのですが、何か方法があります
> でしょうか?
setuidされているもの以外のパーミッション情報を保持しているデータベースは
無いと思います。
力技なら、インストール済みのパッケージを持ってきて、arで開いて
data.tar.gzからパーミッションを拾い、現状と食い違っている場合は修正する
スクリプトを作るとか...
#!/usr/bin/perl
open(IN, "dpkg --get-selections |);
while(<IN>) {
chop;
( $pkg, $dmy ) = split;
&check( $pkg );
}
close IN;
sub check() {
my( $okg ) = @_;
my( $line ) = `apt-get --reinstall --print-uris install $pkg`;
my( $url, $deb ) = split( /\s*/, $line );
`wget $url`;
`ar x $deb`
open(TAR, "tar tvfz data.tar.gz |");
while(<TAR>) {
next if( $_ !~ /^d/ );
# ディレクトリチェック & 修正
}
close TAR;
}
こんな感じかなぁ?
あと、preinst/postinstで修正される場合もありますね。
とりあえず私の手元のPCでは
$ cd /var/lib/dpkg/info
$ grep chmod *inst | wc -l
98
でした。ちなみに
$ dpkg --get-selections | wc -l
499
ファイルのパーミッション変更しているのも含まれるので、ディレクトリの変更
だけだったらそんなに無いと思います。
--
Masaki Ikeda <masaki@xxxxxxxxxxxx>
Orange System Co.