特定命令の使用禁止

特定命令の使用禁止

クラスタでツールを開発します。各ユーザーには独自のログインノードがあります。.bash_profile特定のツールを実行しないログインノードがあります。ユーザーが特定のノードでこれらのツールを使用できないようにするにはどうすればよいですか?

これまでは、元のツールをオーバーライドして関数内のツールコマンドをオーバーライドすることを検討していました。

$ tool  # Launches the tool normally.

$ vim common-env.sh  # Is sourced in each user's .bash_profile
function tool() {
  if [ $(is_in_forbiden_node) -eq 0 ]; then
    echo "You have to leave node X before launching this command!"
    return 1  # Forbids the use of the original tool.
  else 
     command tool  # Launches the original tool normally.
  fi
}
export -f tool

これはうまくいきますが、完璧ではありません。ユーザーは次のように入力してこの制限を回避できます。

$ command tool

または:

$ /usr/bin/env tool

代替は何ですか?私はシステム管理者ではないので、管理者権限を必要とするすべての作業は私には役立ちません。

ベストアンサー1

新しいグループを作成し、実行可能ファイルに新しいグループを付与し、実行可能ファイルから実行ビット(および読み取り権限)を削除します。

これは「ゲーム」プログラムへの一般的なアプローチですが、あなたが探しているものと非常に似ていると思います。

おすすめ記事