私のサーバーには、同じスクリプトを実行する必要がある何百人ものユーザーがいます(https://sourceforge.net/projects/igcc/)ログインすると自動的に実行されます。各ホームディレクトリにスクリプトのコピーを配置する必要がありますか?
答え1
ユーザーのホームディレクトリにスクリプトを配置することは役に立ちません。スクリプトを実行するにはまだ何らかの方法が必要です。
スクリプト(またはそれへのリンク)を適切なディレクトリに配置し、グローバルシェル起動ファイルの1つにツールを実行させます(ユーザーが特定のグループにある場合)。ログイン時に実行するには、ほとんどのシステムで/etc/profile
またはファイルを使用できます/etc/profile.d/
。その後、次のようにグループメンバーシップをテストできます。
if id | grep -qwF specialgroup; then
/path/to/specialtool
fi
Linuxid
の場合、このような内容を印刷し、完全な...groups=1000(blah),4(adm),20(dialout),24(cdrom),25(floppy)...
単語grep -w
一致を探します。グループ名にプログラミング言語の意味で「単語文字」のみが含まれている限り、a-zA-Z0-9_
この方法は機能します。そうでない場合は、何か他のことをする必要があります。
GNU / Linuxシステムではない場合、またはシステム内のすべてを使用できますid
。groups
(もちろん、PATH
ログインスクリプトにフルパスを含める必要がないように、スクリプトをどこかに配置することもできます。)
答え2
(コメントできません。担当者が足りません...)
意見交換では、私はそのユーザーグループが所有するようにスクリプトを設定し、それに応じてugo権限を更新し、.bashrc(またはOSベースのそれに対応するもの)にすべての作業を開始する行を追加する必要があると言いたいと思います。スクリプトを言いました。
ところで、これは素晴らしいツールのようです。
答え3
これらのユーザーに対して実行したいのは、シェル(bashなど)がインタラクティブになる前に実行したいスクリプトではなく、シェルのようです。
この場合:間違った建設現場です!単にコマンドを使用してシェルをこの値に設定できますchsh
。man chsh
詳細より。
何らかの理由でC ++インタプリタを使用する必要があるため、不適切な場合は無視してください。
ところで、igccは5年間触れておらず、それ以来いくつかのC ++標準がありました。確かにあなたが使用したいC / C ++ REPLではありません。付着する代わりに。