Linuxユーザーのルートディレクトリを変更する方法


0

Linuxホスト上のユーザーの場合は、自分のホームディレクトリ以外にはすべてアクセスできないようにする必要があります。

これは通常、ユーザーのルートディレクトリを変更して(そしてユーザーのホームディレクトリに設定すると)行われると聞きましたが、その方法が見つかりませんでした。

私は考えた chroot ただし、指定されたディレクトリをルートディレクトリと見なして、指定されたコマンドを実行するだけのようです。そうらしい、それっぽい chroot 私が必要なものではありません。

だから私の質問は:ユーザーのルートディレクトリを変更するコマンドは何ですか?



@ user257493私が理解したように、 /etc/security/chroot.conf 私は次のような行を追加しました: user1 /home/user1、そして /home/user1 user1のルートになるでしょう?変更を加えるために何かを再起動する必要があります /etc/security/chroot.conf 効力を発揮する?

1
この質問には説明が必要だと思います。
JT.WK

ホームディレクトリ以外のすべてにアクセスできない場合、それらのコマンドは自分のホームディレクトリにはないため、ユーザーはコマンドを実行することさえできません
nos

私はあなたの質問に対する新しい答えをあなたに与えました。私はあなたがそれを好きだとは思わない。
Omnifarious

回答:


3

ルートディレクトリではなく、ホームディレクトリを変更したいようです。ルートは常に/または/ rootになります。

usermod -d /path/to/new/homedir/ username

家ではなく根を変える必要があります。

2

このホームディレクトリの背後にある「すべてにアクセスできない」ことを確認するために、私はchrootを使用しますが、chrootされたディレクトリを準備しなければ何もできないので、バイナリやライブラリは利用できません。

FTPサーバーの設定はあなたにとって有用です: http://tldp.org/LDP/solrhe/Securing-Optimizing-Linux-RH-Edition-v1.3/chap29sec296.html

これは、ftpユーザーをこのchrootディレクトリに制限するために設定された完全chroot設定です。


2

私はこの答えを支持しています、そして私がそれに-1を得たかどうか私は気にしません。これは、Unixが合理的な方法であなたにできることではありません。実際には不可能なことを求めているのです。

しかし、あなたが求めているもののようなものを得るための一種の方法があります。仮想マシンを使用してください。問題のユーザー用に仮想マシンのインスタンスを設定し、ホストOSではなく、それらにログイン権限のみを与えます。

これが私の最初の答えです。

パーミッションを使うだけです。それが彼らの目的です。とにかく、ユーザーは通常/ tmpとそのホームディレクトリ以外には書き込みを行うことができません。そして彼らには読み取りアクセス権が必要です。 /bin//usr/bin/usr/lib、そして /lib それとも彼らは何もできないだろう。

パーミッションよりも厳密なものがほしいと思う場合は、selinuxの設定を検討してください。

を使う chroot あなたが望むものをあなたに与えるつもりはないだけです。セットアップするのは本当に複雑です、そしてそれを回避する方法があります。


@Omnifarious 私はuser1が他の世界を見ることができないようにする必要があります。パーミッションを使ってこの問題を解決することは、user1を変更するのではなく、その他の地域を変更することを意味します。私はuser1を変更することによって問題を解決するソリューションを必要とします。はい、user1のルートディレクトリがホームの場合は、次のようにディレクトリに直接アクセスすることはできません。 /binしかし、私はにシンボリックリンクを作成することができます /bin user1のホームディレクトリで、自分が何を見ることができ、何を傾けるのかを決定します

1
@Vahagn:シンボリックリンクは、ユーザーが自分のchroot刑務所外のものにアクセスできるようにします。ハードリンクはありますが、ファイルシステムにまたがることはできません。 cd /home/new_guy ; ln -s /bin ./bin ; chroot . ls bin

1

のマニュアルを参照 useradd。あなたが使用する必要があります -d スイッチ。


家ではなく根を変える必要があります。

1

追加すればいいと思います

if grep "\\<${USER}\\>" /etc/jailbirds > /dev/null
then
    echo I am not a crook
else
    exec chroot $CWD
endif

あなたの最後まで /etc/profile あなたはあなたが求めているものを手に入れるかもしれませんが、それは私が気付いていないいくつかの副作用を持っているかもしれません(実行しているシェルを引き継ぐ /etc/profile 問題を引き起こす可能性があります)。この場合、あなたはファイルを作成する必要があるでしょう /etc/jailbirds これはあなたがchrootしたいユーザーのリストでした。また、このファイルが存在することを確認し、他のユーザー(特にroot)がchrootによってロックされないようにするためにこのファイルにアクセスするときの対処方法を決定する必要があります。

さらに、これを行うのは難しいでしょう。ユーザーがアクセスできない /proc これは多くのシェルユーティリティを作るでしょう(例えば pstopそして、他の多くの人はうまくいきません。ユーザーもアクセスできない /dev/null多くのものを壊すでしょう。

ユーザーもアクセスできない /dev/tty どちらが壊れる less そして more 標準入力で使用した場合ユーザーのアプリケーションは、chrootの前からstdin、stdout、およびstderrオープンファイル記述子を継承しますが、/ dev / ttyをオープンすることによって、ユーザーからのキーストロークを取得してパイプからstdinをリダイレクトすることを処理できます。

また、多くのプログラムが使用するプログラム、共有ライブラリ、または/ etcの下にある多くのファイル(/ etc / protocolsなど)にアクセスすることもできません。

これらはすべて回避できるものですが、ユーザーの環境を使用可能にするためには、私が考えていたよりももっと多くの作業が必要になります。

あなたが私の提案を試してみるなら、私はあなたが非常に注意することを勧めます。それを誤解して物事を悪くするのは簡単です。ちなみに、私はこれをテストしていません。


0
usermod -d /path/to/new/homedir/ username

それはあなたの質問に答えますが、私はそれがあなたが必要なものであると確信できませんか?


家ではなく根を変える必要があります。

0

私はあなたが少し混乱していると思います。ディレクトリ/ rootは、rootユーザーのみがアクセス可能です。各ユーザーは通常/ home /に自分のHOMEディレクトリを持ち、システムのrootユーザーは/ rootを所有します。

HOMEディレクトリを変更したい場合は他の答えに従うか、/ etc / passwdファイルを編集してください


rootユーザーは神です。どこでも見たりしたりできる。 Punyユーザーは自分のドメインを見ることしかできません。他の多世界は拒否されます。
bbaja42

0

ゲストユーザーを作成する

useradd -s /bin/sh -m guest

他社製のライブラリに依存しないシェルをインストールしてください。

cd /home/guest
apt-get download busybox-static
dpkg -x *.deb .
rm *.deb
cd bin
./busybox --install .

ルートディレクトリを/ home / guestに変更し、guestとして実行します。

mkdir /home/guest/etc
grep guest /etc/passwd > /home/guest/etc/passwd
chroot /home/guest /bin/sh
exec env -i login -f guest

chrootの中では、sshサーバーをインストールして生成することができます。そうすれば、ユーザーはリモートでログインできます。ただし、特定のアプリケーションが/ procファイルシステムとその友人にアクセスしたい場合は、問題が発生する可能性があります。その場合は、Schrootやqemuのようなものがより簡単な選択肢になるlxcコンテナ、名前空間、仮想マシンなどを踏み始めるかもしれません。

自家製ソリューションを使用する場合、注意しないとセキュリティ問題が発生する可能性があります(誤って/ home / guest / binの所有権をguestに与えた場合、次回の起動時にguestがrootとして実行される可能性があります)。 chroot)

上記のコマンドがあなたが望むものであるかどうか、そして/またはそれらがセキュリティホールに対して脆弱であるかどうか私は知りません。彼らが助けてくれるといいのに。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.