
特定の権限を持つunixユーザーアカウントを作成したいと思います。ユーザーはソフトウェアをインストールできるはずですが、ソフトウェアをアンインストールすることはできません。また、ルートはユーザーがログインしたときにメールで通知を受け取る必要があります。可能ですか?
私はDebianを使用しています。
答え1
ソフトウェアのインストールのみに管理権限を制限するには、sudo:を使用して、ユーザーがインストールを実行するパッケージ管理ツールのみを実行できるようにします。おそらく/etc/sudoersには次のものが必要です。
Cmnd_Alias SWINST = /path/to/pkg-manager install_action *
power_user hostname= NOPASSWD: SWINST
これにより、パスワードを入力しなくても、コンピュータでpower_user
最初の引数と追加の引数を使用してコマンドをhostname
実行できます(たとえば、Debianの場合はSUSEベースの展開の場合に変換されます)。/path/to/pkg-manager
install_action
/path/to/apt-get install *
/path/to/zypper in *
覚えておくべき2つのことがあります。
パッケージマネージャは複数の項目を受け入れることができないため、正しく機能する必要があります。行動コマンドラインに渡すと(たとえば、
pkg-manager install foo, remove bar
完全に中断されます)、パッケージマネージャも競合を処理するため、インストールだけでソフトウェアが削除される可能性があるため、可能であればこの機能を無効にするスイッチ/設定を使用してください(下記のCraigの説明を参照)。ローカルファイルからパッケージをインストールできる低レベルパッケージメンテナンスコマンドへのアクセスを許可しないでください。これにより、ユーザーは昇格パッケージを準備してインストールし、システムにさよならを言うことができます。代わりに、このコマンドを使用して信頼できるソフトウェアのみをインストールできることを確認する必要があります。
デスクトップシステムでは、現在PolicyKitインフラストラクチャが頻繁に使用されるため、これは別のオプションになります。
答え2
はい、可能です。各行の最後のオプションで、/etc/passwd
各ユーザーのシェルを指定します。たとえば、ラッパーを作成し、デフォルトのシェルの代わりにラッパー(シェルスクリプトかもしれません)を使用できますbash
。csh
デフォルト値を変更します。
mohsen:x:1000:1000:Mohsen Pahlevanzadeh,,,:/home/mohsen:/bin/bash
到着する:
mohsen:x:1000:1000:Mohsen Pahlevanzadeh,,,:/home/mohsen:/yourpath/yourshell.sh
その後、2つを入れる必要がありますyourshell.sh
。
- ルートとしてメールを送信するコマンド(
mail
、mutt command
... - マニュアルを読む) - ログインシェルの作成
exec /bin/bash -l
答え3
解決策に関する私の意見は次のとおりです。
部分権限を持つユーザーは、「please-install.sh」というスクリプトを実行します。スクリプトの引数はパッケージ名またはプログラム名です。
#!/bin/bash
cat <<__EOF__ | mail -s "please install" root@localhost
When you get time, please install these programs for me:
$@
Thanks,
__EOF__
これの利点は、問題領域について特別に訓練された(そしてトラブルシューティング作業から数百万年にわたって進化した)、非常に複雑なニューラルネットワークがすべての安全および他の実際的な意味を評価し、しっかりと対応できるようにし、Speedはあらゆる要求に反応するということです。 。そんな価値があります。例:「いいえ、このBit-Torrentクライアントを本番Webサーバーにインストールしないでください。」
もっとクールにしたい場合は、getoptを使用して、ユーザーが-lまたは--low、-h、または-high、-u、または-urgentなどの優先順位オプションを指定できるようにします。