おそらくどんなバイナリを実行するユーザーを禁止する価値があるかもしれないいくつかの状況(私はそれが権限昇格の悪用対策のものであってもよいと仮定)があるかもしれません。しかし、多くの場合、通常のユーザは自分のバイナリを実行することができるので、ユーザが自分でfdisk
などを作成してコンパイルするとどうなりますか?実際には、ユーザーがfdisk
を実行することを許可したくありません。 fdisk
または他のプログラムが何らかの形でシステム状態を変更しないようにしたいだけです。だから、通常のユーザーは本当にfdisk
を実行することができます。
$ fdisk --help
Usage:
fdisk [options] <disk> change partition table
fdisk [options] -l [<disk>] list partition table(s)
...
実際に行うことはできません通常の何ユーザーが制限された操作を実行している:
$ fdisk /dev/sda
Welcome to fdisk (util-linux 2.27.1).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
fdisk: cannot open /dev/sda: Permission denied
のでfdisk
は、正常に起動したいくつかのメッセージを印刷しました。その後、生のディスクデバイス/dev/sda
を開こうとしましたが、その操作は本当にアクセス許可によって制限されていたので、fdisk
は何もできず終了していると不平を言っていました。
ただし、一部のユーザーが一部のバイナリの実行可能性を制限したい場合があります。管理者またはOSのメンテナンス担当者が通常のユーザに(/etc/fstab
の何らかのレコードによって許可されているパーティションをマウントするなど)何らかの特権的なアクションを実行させたい場合は、mount
またはsudo
などの特別な強化バイナリを設定します。許可ユーザーIDの設定:この場合には、
なバイナリが実行される
$ ls -l /bin/mount /usr/bin/sudo
-rwsr-xr-x 1 root root 40152 May 27 02:31 /bin/mount
-rwsr-xr-x 1 root root 136808 Aug 17 16:20 /usr/bin/sudo
は、カーネルは呼び出し元のユーザーのユーザーIDを、それを与えていない、しかし、UID 0(ルート)。通常のユーザはこのようにバイナリを設定することはできないので(ルートオーナーとUIDビットセットを設定する)、これらのバイナリの実行可能性を特定のグループに制限する価値があるかもしれません(しかし、上記の場合、 set-UID実行可能ファイルの実行可能性の制限がなんらかの方法で回避できないのか、そしてアプローチが本当に誰かによって広く使用されているのかどうか、私は本当に分かりません。
そして、1つの余分ノートは:お使いのシステム上のfdisk
の場合には、それがまたは通常のユーザーのPATH変数であってもなくてもよい/usr/sbin
ディレクトリにインストールされているので、fdisk
は、または通常のユーザが実行してもしなくてもよいですコマンドプロンプトでfdisk
と入力するだけですが、これは実際には制限ではありません(コマンドラインで実行可能ファイルへのフルパスを指定するだけでもよい)。