
2つのユーティリティがあり、どちらもユーザーへの特権アクセスを偽造できるのはなぜchroot
ですかfakeroot
?
答え1
chroot は実際に fakeroot とは全く違うことをします。これは「ルート変更」を意味し、「/」ディレクトリをシステム以外のディレクトリにマッピングするプロセスを実行できることを意味します。ほとんどの場合、これは他のドライブまたはパーティションにインストールされているオペレーティングシステムです。このchroot環境では、root権限は実際には実際であり、chrootは実際には特権プロセスでのみアクセスできます。 Fakerootは、プロセスが生成するすべてのファイルが元のユーザーにのみ属していても、rootアクセスと呼ばれるファンタジーをプロセスに提供します。
答え2
fakerootだけが「偽」になることができます。特権を受けたアクセスユーザー」。
移動するchroot特定のユーザーに、現在のシステムで使用されているルート(/)ツリーとは異なる特定のルート(/)ツリーに対してコマンドを実行させることができます。
目的のルートディレクトリが/ mntにあるとし、chroot環境で/ foo / barを実行すると、実際には/ mnt / foo / barが起動し、barは/ mntが実際のルートディレクトリであるかのように動作します。
しかし、もちろん、ユーザーが/mnt /mnt/fooと/mnt/foo/barへの適切なアクセス権を持っていないと、それはうまくいきません。
ユーザーは自動的にroot(ユーザー)になり、偽のrootユーザーではありません。ルートディレクトリのみを変更してください。
(注) chroot ユーティリティには、ほとんどの基本的な Linux ディストリビューションの一部である coreutils パッケージが付属しています。通常、別のシステムから新しいシステムをインストールする場合に必要です。
近さユーザーがrootとしてファイル操作を実行できる環境が作成されます。
「false」という言葉はその環境でのみ機能することを理解する必要があります。ログアウトした後は、他のユーザー、システム自体、自分については何も変更されません。マニュアルページに触発されたいくつかの例を見てみましょう。
$ whoami
me
$ fakeroot /bin/bash
# whoami
root
# ls -ld / (note that this is the original (real) root directory)
drwxr-xr-x 20 root root 1024 Jun 17 21:50 /
# chown me:users /
# chmod a+w /
# ls -ld /
drwxrwxrwx 20 me users 1024 Jun 17 21:50 /
# exit
$ ls -ld /
drwxr-xr-x 20 root root 1024 Jun 17 21:50 /
しかし逆にchroot、近さパッケージの一部として特別にインストールする必要があります。通常、ユーザーID 0を使用して別のシステムに配布するファイルをアーカイブするときに必要です。