私のUbuntuシステムには、User1とUser2という2人のユーザーがいます。
User1にディレクトリ(フォルダ)があり、/home/User1/Software
このソフトウェアフォルダをuser2のホームディレクトリに設定し、user2がログインするたびにこのソフトウェアフォルダのみを表示し、そのフォルダには読み取り権限しか持たないようにします。
User2を介してシステムにリモートでログインすると、読み取り権限のみを持つソフトウェアフォルダに直接移動し、ソフトウェアとそのサブフォルダを除く他のフォルダにはアクセスできません。
答え1
制限付きシェルを使用するようにUser2のアカウントを変更する必要がありますrbash
。
sudo chsh -s /bin/rbash User2
注:これはユーザーのコマンドラインシェル(ログインを含むssh
)のみを制限します。たとえば、コンソールにログインしても、GUIデスクトップ環境には影響しません。
詳細については、リソースを参照してくださいman rbash
。ただし、一部の制限により、ユーザーは次のことができません。
・CDでディレクトリを変更する
・SHELL、PATH、ENV、または BASH_ENV の値を設定または設定解除します。
・/を含むコマンド名を指定してください。
· .build-inコマンドでinclude /を指定します。
·>、>|、<>、>&、&>、および>>リダイレクト演算子を使用した出力リダイレクト
· 組み込み exec コマンドを使用してシェルを別のコマンドに置き換える
これらの制限は、スタートアップファイルを読み取った後に適用されます。
リダイレクトをブロックするのは必要以上のものかもしれませんが(残念ながら、ディレクトリは読み取り専用なのでそうではないかもしれません)、残念ながらすべてでなければ専任ですrbash
。
答え2
/home
ユーザーが自分のファイルを除くディレクトリ内のすべてのファイルを表示できないようにする方法
ユーザーに表示したくないディレクトリのファイル権限を管理して、これを行います。
ユーザーに一意のログイン名とグループ名を提供します。数字のユーザーIDとグループIDを取得して、システムの所有権がないことを確認して、次の手順を実行します。
sudo find / -uid n -o -gid n
でのみ/home
アクセスできるようにし、その子user
のすべてのファイルにアクセスできるようにします。group
other
sudo chmod -R o-rwx /home
システム上の他のユーザーが互いのファイルを表示できるようにするには、その/home
ユーザーをすべて公開グループ(たとえば)に追加し、users
それをumask
002(通常はデフォルト)に設定します。
これ以上の制限が必要な場合は、rbashおよび/またはchrootに関連するソリューションを確認できます。