特定のユーザーまたはグループに、システム上のすべてのファイルを削除する権限を付与せずに、ファイルの読み取り/実行権限のみを付与する方法を探しています。
答え1
私のシステムには、コンピュータについて全く知らないユーザーがいるので、学習目的でのみコンピュータを閲覧したいと思います。私の意図は、システム上のファイルを誤って削除したり変更したりすることなくシステムを閲覧できる別のアカウントを提供することです。ただし、他のユーザーとしてシステムを変更できる必要があります。
これはおよそUnix / Linuxシステムが正常に動作する方法です。ユーザーには、(a)自分が所有する権限、または(b)自分のグループに書き込み権限を持つファイルまたはディレクトリのみを削除または変更する権限があります。
システム管理者(あなたと仮定)はすべてを制御できます。したがって、これらの新しいユーザーが自分のグループにいることを確認してください。
Unixは次のように設計されています。マルチユーザーシステム。したがって、Unix / Linuxは最初から一般ユーザーにのみ制限された権限を与えました。通常、一般ユーザーはシステムファイルを台無しにすることはできません。名前付きシステム管理者だけがroot
これを実行できます。
一部のシステムでは、通常のユーザーがを実行してこれを実行できます。ファイルがその機能を提供していないことをsudo
確認してください。/etc/sudoers
厳密にしたい場合は、ホームディレクトリの所有権を与えないでください。それでも書き込み権限がありますが、/tmp
大き/var/tmp
すぎるファイルを作成してパーティションを埋めない限り、問題は発生しません。
答え2
要件を確認したら、ツールを使用してsetfacl
重要な特定のファイル/ディレクトリ(たとえば/etc
、.、、など)への/lib
アクセスを制限できます/bin)
。これにより、新しいユーザーは重要なシステムファイルを削除または変更できません。
注文する:
setfacl -m u:{user_name}:{permission} {file/directory}
学習者のホームディレクトリを制限するのは良い考えではありません。