chmod
Linuxでは、権限管理として最初の数字を使用する概念を理解しています。ユーザー、二つ目はグループ3番目は他のユーザー上記のようにこの回答存在するUNIXの権限とファイルタイプの理解。
admin
、、、usera
5人のユーザーを持つLinuxシステムがあるとしますuserb
。デフォルトでは、ユーザーは内部のすべてのファイルに対する実行権限を持っているため、これらのファイルは75個あるため、これらのユーザーはシステムのコマンドラインを使用して内部のファイルを実行できます。userc
guest
usera
userb
userc
/usr/bin
5許可する。これまでは問題ありません。ただし、ユーザーがguest
そのフォルダからファイルを実行できないようにしたいと思います/usr/bin
。そのフォルダ内のすべてのファイルに対する権限を750のように変更すると、それを行うことができることがわかりますが、chmod
そうすると、ユーザーの権限がめちゃくちゃになりますusera
。また、ファイルの実行も禁止されます。userb
userc
私のコンピュータ上のすべてのファイルは/usr/bin
そのグループに属しているため、root
1つを作成し、すべてのnewgroup
ファイルのグループをこのグループに変更して追加できることがわかります。ただし、これはシステムのデフォルト設定があまりにも変更されているように聞こえます。この問題を解決するより賢い方法を知っている人はいますか?usera
userb
userc
newgroup
PATH
あまりにも多くのファイル権限を変更する必要がある過度に複雑なソリューションを使用せずに、単一のユーザーがコマンドラインを使用する(またはコマンドラインからファイルを実行する)ことを禁止するにはどうすればよいですか。
答え1
ACL を使用して権限を削除します。この場合、すべての実行可能ファイルの権限を変更する必要はありません。単に実行権限を削除すると、/usr/bin/
ディレクトリナビゲーションが無効になり、その中のすべてのファイルへのアクセスが無効になります。
setfacl -m u:guest:r /usr/bin
u
これは、ユーザーの権限がディレクトリのみを読み取るguest
ように設定するため、ディレクトリにアクセスできますが、その中には何もありません。r
/usr/bin
ls
すべての権限を削除することもできます。
setfacl -m u:guest:- /usr/bin
答え2
何してるの?特定のユーザーのシステムの使用を禁止する標準コマンドは、非常に失礼です。システムを危険にさらすことができるコマンドはその間どこかに属し、セキュリティのために慎重に調査されました。ファイルの権限はほとんどのいたずらな試みを防ぐ必要があります。
- 限られたフェンスを提供することを検討してください(説明書を確認してください。同様の名前で指定されている可能性がありますが、
rbash
注意してください。rsh
他の種類の動物です!)。ユーザーをかなり効果的に制限します(注意してください。はい爆発することもあります! ) - これが一部のサービス所有を担当する疑似ユーザーである場合、一般的な回避策は「ユーザー」に何もしないシェルを提供することです
/bin/true
。 ;/bin/true
シェルスクリプトの場合このような用途には使用しないでください。)。これにより、誰かがアカウントにログインすると、そのセッションはすぐに終了します。 - それらのために1つを作成するか
chroot
(もう一度言いますが、それを回避する方法があります)、BSD刑務所のLinuxコンテナを使用してそれらを制限し、それらが表示したいものだけを公開します。ほとんどのコントロールがありますが、設定して最新の状態に保つのは混乱しています。