ローカルファイルの書き込みを無効にする方法は?

ローカルファイルの書き込みを無効にする方法は?

私は共有された公共のコンピュータを管理しています。各ユーザーには独自のディレクトリがあります/home。新しいユーザーがログインに時間がかかるため、ネットワークマウントを実行するのが好きではありませんが、ユーザーが自分のディレクトリ/homeに書き込めないように設定したいと思います。/homeユーザーはネットワークストレージを使用でき、ユーザーはそれを使用する必要がありますが、強制的に使用することはできません。

理想的には、彼らがローカルコンピュータにデータを書き込むのを完全に防ぎ、代わりにストレージサーバーに書き込むように指示したいと思います。これが不可能な場合は、少なくともローカルコンピュータのディスククォータを制限して、すべてのスペースを消費しないようにしたいと思います。どうすればいいですか?

ベストアンサー1

ファイルシステムイメージファイルを/home/home

ファイルシステムイメージファイルは次のように動作します。

  1. 固定サイズ(100 MBなど)の空のファイルを作成します。

    dd if=/dev/zero of=/var/home/bob.img bs=1024 count=100000
    

    これを使用する必要はありません/var/home。これは他の場合には存在しないディレクトリです。 このファイルはルートに属する必要があり、モード600を設定する必要があります。他の人が読めないように。明らかに、ユーザーごとに100 MBのファイルを生成するのに十分なスペースがあることを確認してください。しかし/home、同時にすべてを取り除き、適切なスペースを確保できることに注意してください。

  2. イメージにファイルシステムを作成します。

    mke2fs -m 0 /var/home/bob.img
    

    警告メッセージが表示されますbob.img is not a block special device。とにかく進んでください。

    これを初めて行う場合は、ユーザーの既存のホームディレクトリにコピーしたいので、一時的にインストールする必要があります。

    mount /var/home/bob.img /mnt/tmp
    mv /home/bob/* /mnt/tmp
    mv /home/bob/.* /mnt/tmp
    

.最後のトピックでは、およびを上書きするかどうかを尋ねます..いいえ。 トップレベルの「隠し」ポイントファイルを移動すると、最初のファイルがmv残ります。ファイルブラウザまたは他の方法を使用して移動を実行することもできます。 /home/bobこれで空でなければならず、マウントされた画像をそこに移動できます。

    umount /mnt/tmp
    mount /var/home/bob.img /home/bob

見て、すべて〜らしい以前の方法に戻って、今/home/bobは別のファイルシステムなので、ユーザーはbob100 MBを超えるファイルを入れることはできません。また、既存のイメージファイルなので、このスペースはボブ用に予約されており、他のものも占有しません。

起動時にこれらすべてをインストールするには、初期化サービスが必要です。次のように簡単にできます。

#!/bin/bash

for img in /var/home/*.img; do
    name=$(basename $img .img)
    mount $img "/home/$name"
done

システムがシャットダウンしたら、自動的に削除する必要があります。データは他のどこよりも安全です。

おすすめ記事