最初の桁をuserとして使用し、2番目の桁をとして使用して、chmod
でLinuxの権限を管理する概念を理解していますgroupおよび3番目のother usersas this answer in NIXの権限とファイルタイプについて 。
5人のユーザーがいるLinuxシステムがあるとしましょう:admin
、usera
、userb
、userc
、guest
。デフォルトでは、ユーザーusera
、userb
、userc
は/usr/bin
内のすべてのファイルに対する実行権限を持っているため、これらのユーザーはファイルの755権限。これまでのところ、それは完全に大丈夫です。ただし、ユーザーguest
がフォルダー/usr/bin
でファイルを実行することを禁止したいのですが、chmod
を使用して、このフォルダー内のすべてのファイルのアクセス許可を750のように変更することで実現できます。ユーザーのusera
、userb
、userc
の権限を台無しにしてしまいます。ファイルの実行も禁止されるからです。
私のコンピューターでは、/usr/bin
内のすべてのファイルがグループroot
に属しているので、newgroup
を作成し、それらすべてのファイルのグループをそれに変更して、usera
、userb
およびuserc
をnewgroup
に追加できます。しかし、それを行うと、システムのデフォルト設定を変更しすぎるように聞こえます。誰かがこの問題を解決するより賢い方法を知っていますか?
あまりにも多くのファイルのアクセス許可を変更する必要がある過度に複雑なソリューションなしに、単一のユーザーがコマンドラインを使用する(またはPATH
でファイルを実行する)ことをどのように禁止できますか?
ACLを使用して権限を削除します。この場合、すべての実行可能ファイルのアクセス許可を変更する必要はありません。実行許可を/usr/bin/
から削除するだけで、そのディレクトリの走査を禁止し、その結果、その中のファイルへのアクセスを禁止できます。
setfacl -m u:guest:r /usr/bin
これにより、u
ser guest
の権限がディレクトリ/usr/bin
のr
eadに設定されるため、そのディレクトリをls
にアクセスできますが、そのディレクトリ内にはアクセスできません。
すべての権限を削除することもできます:
setfacl -m u:guest:- /usr/bin
あなたは何をしようとしているのですか?システムの標準コマンドの一部のユーザーへの使用を禁止することは、極端に非情な振る舞いです...システムを危険にさらす可能性のあるコマンドは、その中間にあり、セキュリティのために慎重に吟味されています。ファイルへのアクセス許可は、悪意のある試みのほとんどを阻止するはずです。
rbash
のような名前が付けられています。ただし、rsh
は別の種類の動物です!)。ユーザーをかなり効果的にケージに入れます(ただし、気をつけてくださいis脱出する可能性があります!)/bin/true
などの何もしないシェルを与えることです(この行の推奨事項については、システムのマニュアルを確認してください)これは特別なプログラムかもしれません; /bin/true
がシェルスクリプトの場合これには使用しないでください)。このようにして、誰かがそのアカウントにログインできた場合、そのセッションはすぐに終了します。chroot
を作成するか(ここでも、分割する方法があります)、またはBSDのjailのLinuxコンテナーを使用してそれらを閉じ込め、表示したいものを正確に公開します。ほとんどの制御が、セットアップして最新の状態に保つのは面倒です。