ユーザーの読み取り/書き込み/実行権限を奪う

ユーザーの読み取り/書き込み/実行権限を奪う

/etcそのため、入って読めるユーザーがいますhttpd.conf

など/etcの主要な場所へのこのユーザーのアクセスを拒否したいと思います。/var

最良のアプローチは何ですか? 1人のユーザーに対してのみフォルダ/ファイル権限を変更したくありません。

答え1

ファイルアクセス制御リストを使用して、特定のユーザーの権限を削除できます。コマンドは、ファイルにACLを設定(生成)するsetfaclです。

使用例:

root@host:/tmp# date > f1
root@host:/tmp# ls -l f1
-rw-r--r-- 1 root root           30 Mar 28 12:12 f1
root@host:/tmp# setfacl -m u:johan:0 f1
root@host:/tmp# ls -l f1
-rw-r--r--+ 1 root root          30 Mar 28 12:12 f1

権限の後ろにある+記号を参照してください。ファイルにACLセットがあることを通知します。 setfaclコマンドオプション-mは、ACLを生成/変更するように指示します。 "u:johan:0" パラメーターは、ユーザー "johan" のユーザー項目が "0" に設定されるようにします。これは特権モード「0 0 0」の略で、「--- --- --- - と同じです。」レガシー「rwx rwx rwx」特権セットの場合。

root@host:/tmp# getfacl f1
# file: f1
# owner: root
# group: root
user::rw-
user:johan:---
group::r--
mask::r--
other::r--

root@host:/tmp# cat f1
Thu Mar 28 12:12:07 SAST 2013
root@host:/tmp# exit

終了後、コマンドは「johan」などの指定されたユーザーの権限を持ちます。

johan@host:/tmp> cat f1
cat: f1: Permission denied

あまりにも多くのことを言って特に注意してください。 / etcへのアクセス権を無分別に削除すると、さまざまな障害が発生し、ユーザーがログインできなくなる可能性があります。多くのシステム機能は、ログインしたユーザーの権限を使用して/ etcのさまざまな構成ファイルを読み取ります。ただし、ユーザーが特定の個々のファイルにアクセスするのを防ぐことはまったく許可されていません。

答え2

以下を設定したい場合があります。chroot 刑務所見ている刑務所キット

刑務所チャンネルアンガス、同じ/新しいパスに移動します。


簡単な例から始めましょう。

まず、chrootディレクトリを別々のパーティションに配置して、ユーザーがシステムパーティションを満たすことができないようにします。

しかし、簡単に説明すると、次のようになります。

  1. chrootディレクトリを作成します。

    # mkdir /usr/chroot_test
    # cd /usr/chroot_test
    
  2. システムディレクトリを作成します。

    # mkdir bin etc home lib var
    
  3. いくつかの基本的なツールを追加します。

これは依存関係を見つけるために使用できますldd

# ldd /bin/bash
linux-gate.so.1 =>  (0xb774d000)
libtinfo.so.5 => /lib/libtinfo.so.5 (0xb770a000)
libdl.so.2 => /lib/libdl.so.2 (0xb7705000)
libc.so.6 => /lib/libc.so.6 (0xb755a000)
/lib/ld-linux.so.2 (0xb774e000)

chrootのlibにコピーします。

# cp /lib/{libtinfo.so.5,libdl.so.2,libc.so.6,ld-linux.so.2} lib/

ここでchrootと入力してください。

# chroot /usr/chroot_test
bash-4.2# ls
bash: ls: command not found
bash-4.2# pwd
/
bash-4.2# exit
exit

わかりました。さらにツールを追加します。

# sed '/=>/!d;/=>\s*(/d;s/.*=>\s*\([^ ]*\) .*/\1/' < <(ldd /bin/{ls,cat,vi}) | sort -u)

... copy

など。

次にchrootログインを追加します(http://kegel.com/crosstool/current/doc/chroot-login-howto.html)。


しかし、前述のように、このプロセスはJailkitを使用して単純化できます。http://olivier.sessink.nl/jailkit/howtos_chroot_shell.html

答え3

気になるファイルは意味は公開アクセスが可能です。非常に敏感なデータはロックされています。はい、Unixは(設計と歴史に応じて)かなりオープンなシステムです。

このユーザーに深刻な懸念がある場合は、そのユーザーをブロックしてください。お客様が信頼していないユーザーは、お使いのコンピュータには存在できません。

あるいは、妄想について尋ねてください。状況が歩くことができない可能性があります。

関連情報