web-dev-qa-db-ja.com

すべてのユーザーのシェルログインでスクリプトを実行する

SSH経由でログインするすべてのユーザーに対して実行したいユーザーの.bashrcファイル内のエイリアスを解析する「als」という名前のスクリプトがあります。

これは、今日のメッセージ(MOTD)バナーのように表示されます。ただし、MOTDバナーは静的データです。

コードは次のとおりです。

#!/bin/bash
echo
echo Your aliases:
echo \(from ~/.bashrc\)
echo
cat .bashrc | egrep 'alias.+\=' | tr -s [:space:] | sed 's_^ alias_alias_' | sed 's_alias__' | sort | sed 's_=_\t\t_' | sed 's_^ __'

~/.profileファイルに./alsを追加すると機能しますが、これは私だけのために実行されます。繰り返しますが、シェルログインのすべてのユーザーに対してこれを実行したいです。

4
user38537

スクリプトを/etc/profile.d/als.shに保存できます。 Ubuntuによると EnvironmentVariables manual:

/etc/profile.dディレクトリ内の.sh拡張子を持つファイルは、bashログインシェルが入力されるたびに(たとえば、コンソールまたはssh経由でログインするとき)、デスクトップセッションがロードされるときにDisplayManagerによって実行されます。

また、絶対パスで相対パスを変更する必要があります。

 cat /home/$USER/.bashrc | egrep 'alias.+\=' | tr -s [:space:] | sed 's_^ alias_alias_' | sed 's_alias__' | sort | sed 's_=_\t\t_' | sed 's_^ __'  

そして、これはすべてのユーザーに対して機能するはずです。

7
Lety