Sunday, December 15, 2019

14.04 - Run script on shell login for all users


I have a script named "als" that parses the aliases in a user's .bashrc file that I'd like to run for any user logging in via SSH.


This should display similar to a Message of the day (MOTD) banner. MOTD banners are static data though.


Here's the code.


#!/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_^ __'

It works if I append ./als to my ~/.profile file, but this only executes for me. Again, I'd like this to run for all users on shell login



You could save your script in /etc/profile.d/als.sh. According to Ubuntu EnvironmentVariables manual:



Files with the .sh extension in the /etc/profile.d directory get
executed whenever a bash login shell is entered (e.g. when logging in
from the console or over ssh), as well as by the DisplayManager when
the desktop session loads.



You should also modify relative path with absolute path:


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

And this should works for all users.


No comments:

Post a Comment

11.10 - Can't boot from USB after installing Ubuntu

I bought a Samsung series 5 notebook and a very strange thing happened: I installed Ubuntu 11.10 from a usb pen drive but when I restarted (...