私のホームフォルダには2人のユーザーがいます。管理者1人とゲスト1人。
デフォルトでは、ゲストユーザーがSSHセッションを介してログインしたときにホームフォルダ以外のディレクトリにディレクトリを変更できないようにしたいと思います。
ユーザーは次のようになります。
root@Ubuntu-2004-focal-64-minimal / # id olw
uid=1000(olw) gid=1002(olw) groups=1002(olw),1000(admins)
root@Ubuntu-2004-focal-64-minimal / # id guest
uid=1002(guest) gid=1001(guest) groups=1001(guest)
メインディレクトリ:
drwxr-xr-x 5 root root 4096 Jun 16 11:01 home/
私が理解しているように、これはルートグループ以外の人がこのディレクトリを読み取ったり入力(実行)したりできることを意味します。
そのディレクトリ内では、ファイルシステムは次のようになります。
drwxr-xr-x 5 root root 4096 Jun 16 11:01 ./
drwxr-xr-x 18 root root 4096 Jun 14 16:13 ../
drwxrwx--- 2 root guest 4096 Jun 16 11:11 guest/
drwxr-x--- 4 olw admins 4096 Jun 15 16:12 olw/
ゲストがホームディレクトリにある場合、/homeは他の誰でも実行できるようになり、ホームディレクトリに戻すことができます。
chmod o-rx home/
ホームフォルダのグループも管理者に変更されました。そうしないと、rootまたはrootグループのユーザーを除いて、誰もrootフォルダで操作を実行できません。
drwxr-x--- 5 root admins 4096 Jun 16 11:01 ./
drwxr-xr-x 18 root root 4096 Jun 14 16:13 ../
drwxrwx--- 2 root guest 4096 Jun 16 11:11 guest/
drwxr-x--- 4 olw admins 4096 Jun 15 16:12 olw/
今奇妙なことは次のとおりです。
管理者に切り替えると、すべてがうまく機能します。自分のホームフォルダに行き、すべての操作を実行できますが、GUESTアカウントを使用すると
oot@Ubuntu-2004-focal-64-minimal /home # su guest
bash: /home/guest/.bashrc: Permission denied
デフォルトの.bashrcファイルを読み取ったり、コマンドを実行したりすることもできませんls
。
ゲストホームフォルダへの権限をすべての人がフルアクセスできるように切り替えましたが、結果は次のとおりです。
drwxr-x--- 5 root admins 4096 Jun 16 11:01 ./
drwxr-xr-x 18 root root 4096 Jun 14 16:13 ../
drwxrwxrwx 2 root guest 4096 Jun 16 11:11 guest/
drwxr-x--- 4 olw admins 4096 Jun 15 16:12 olw/
それでもエラーが発生します。私は何が間違っていましたか?私はゲストが自分のホームディレクトリを離れることができないようにしたいのですが、ゲストが自分のホームディレクトリを見てそこからコマンドを実行できることを願っています。なぜolwユーザーに機能しますか?
ユーザー内部のファイルシステムは次のとおりです。
ゲスト
drwxrwxrwx 2 root guest 4096 Jun 16 11:11 ./
drwxr-x--- 5 root admins 4096 Jun 16 11:01 ../
-rw------- 1 guest guest 42 Jun 16 11:22 .bash_history
-rwxrwxrwx 1 root guest 220 Jun 15 15:00 .bash_logout*
-rwxrwxrwx 1 root guest 3771 Jun 15 15:00 .bashrc*
-rwxrwxrwx 1 root guest 0 Jun 15 15:00 .cloud-locale-test.skip*
-rwxrwxrwx 1 root guest 807 Jun 15 15:00 .profile*
-rwxrwxrwx 1 root guest 20 Jun 15 15:14 WELCOME.txt*
オルフ
drwxr-x--- 4 olw admins 4096 Jun 15 16:12 ./
drwxr-x--- 5 root admins 4096 Jun 16 11:01 ../
-rwxr-x--- 1 olw olw 960 Jun 16 11:35 .bash_history*
-rwxr-x--- 1 olw olw 220 Jun 15 14:38 .bash_logout*
-rwxr-x--- 1 olw olw 3771 Jun 15 14:38 .bashrc*
drwx------ 2 olw olw 4096 Jun 15 15:54 .cache/
-rwxr-x--- 1 olw olw 0 Jun 15 14:38 .cloud-locale-test.skip*
drwxrwx--x 3 olw olw 4096 Jun 15 15:10 .local/
-rwxr-x--- 1 olw olw 807 Jun 15 14:38 .profile*
答え1
すべてのファイルアクセスはファイル権限によって異なります。そしてそれが存在するディレクトリ階層。
必要な結果を得る方法はいくつかありますが、これらはすべて重要であり、サーバーセキュリティの他の部分を損なう可能性があります。たとえば、ゲストのhomedirを/other/guestに設定できますが、/homeからゲストを除外するには、他のすべてのユーザーを含むグループを作成し、/homeのグループ所有権をそのグループに設定し、chmodを設定する必要があります。 o - rwx /homeしかし、まだ終わっていません。ファイルシステム権限に加えて、Ubuntuシステムにはapparmorというセキュリティサブシステムがあります。このサブシステムは、ファイルだけでなく、オブジェクトのより一元化されたユーザーデータベースとそれを関連付ける権限も使用し、更新が必要です。
私はLinuxの使い方を知っていると思いますが、私の考えではこれは明らかな利点がほとんどない非常に複雑な作業です。