# Mac OS X: Creating a login hook, # http://support.apple.com/kb/HT2420 # cf. also http://www.bombich.com/mactips/loginhooks.html # LoginHook echo $'#!/bin/sh\n/usr/bin/logger -i "LoginHook"\nexit 0\n' > ~/Desktop/login.sh /bin/chmod 0750 ~/Desktop/login.sh #/bin/chmod 0500 ~/Desktop/login.sh /bin/ls -l ~/Desktop/login.sh /usr/bin/sudo /usr/bin/defaults write com.apple.loginwindow LoginHook "/Users/$(/usr/bin/logname)/Desktop/login.sh" /usr/bin/sudo /bin/ls -l /private/var/root/Library/Preferences/com.apple.loginwindow.plist /usr/bin/sudo /usr/bin/defaults read /private/var/root/Library/Preferences/com.apple.loginwindow LoginHook # LogoutHook echo $'#!/bin/sh\n/usr/bin/logger -i "LogoutHook"\nexit 0\n' > ~/Desktop/logout.sh /bin/chmod 0750 ~/Desktop/logout.sh #/bin/chmod 0500 ~/Desktop/logout.sh /bin/ls -l ~/Desktop/logout.sh /usr/bin/sudo /usr/bin/defaults write com.apple.loginwindow LogoutHook "/Users/$(/usr/bin/logname)/Desktop/logout.sh" /usr/bin/sudo /bin/ls -l /private/var/root/Library/Preferences/com.apple.loginwindow.plist /usr/bin/sudo /usr/bin/defaults read /private/var/root/Library/Preferences/com.apple.loginwindow LogoutHook # now logout & login again # cf. also http://codesnippets.joyent.com/posts/show/1591 open -a Console /private/var/log/system.log # disable login & logout hook again /usr/bin/sudo /usr/bin/defaults delete com.apple.loginwindow LoginHook /usr/bin/sudo /usr/bin/defaults delete com.apple.loginwindow LogoutHook rm -i ~/Desktop/login.sh rm -i ~/Desktop/logout.sh #--------------------------------------------------- LogInHookDir="/Library/LoginScript" /usr/bin/sudo /bin/mkdir -p "$LogInHookDir" ( /bin/cat <<-'EOF' #!/bin/bash /usr/bin/logger -i "id: $(/usr/bin/id)" /usr/bin/logger -i "short name of the user who is logging in: $1" /usr/bin/logger -i "SHELL: $SHELL" /usr/bin/logger -i "BASH: $BASH" /usr/bin/logger -i "users: $(/usr/bin/users)" /usr/bin/logger -i "groups: $(/usr/bin/groups)" # /usr/bin/id -Gn /usr/bin/logger -i "logname: $(/usr/bin/logname)" /usr/bin/logger -i "whoami: $(/usr/bin/whoami)" # /usr/bin/id -un exit 0 EOF ) | /usr/bin/sudo /bin/cp /dev/stdin "${LogInHookDir}/loginhook.sh" #/usr/bin/sudo /bin/chmod 1755 "${LogInHookDir}" #/usr/bin/sudo /bin/chmod 0744 "${LogInHookDir}/loginhook.sh" /usr/bin/sudo /bin/chmod 1544 "${LogInHookDir}" /usr/bin/sudo /bin/chmod 0544 "${LogInHookDir}/loginhook.sh" /usr/bin/sudo /usr/bin/nano "${LogInHookDir}/loginhook.sh" # cf. dirmodes, http://codesnippets.joyent.com/posts/show/1402 dirmodes "$LogInHookDir" ls -ld "${LogInHookDir}" /usr/bin/sudo /bin/ls -l "${LogInHookDir}/loginhook.sh" /usr/bin/sudo /usr/bin/defaults write com.apple.loginwindow LoginHook "${LogInHookDir}/loginhook.sh" /usr/bin/sudo /usr/bin/defaults read /private/var/root/Library/Preferences/com.apple.loginwindow LoginHook # now logout & login again # cf. also http://codesnippets.joyent.com/posts/show/1591 open -a Console /private/var/log/system.log
Never been to CodeSnippets before?
Snippets is a public source code repository. Easily build up your personal collection of code snippets, categorize them with tags / keywords, and share them with the world (or not, you can keep them private!)
Creating login & logout scripts on Mac OS X (See related posts)
Comments on this post
You need to create an account or log in to post comments to this site.
Related Posts
» Create & delete user account... in shell osx mac bash unix delete create user account dscl
» Creating & deleting system s... in shell osx mac bash unix account dscl admin agent
» Run ClamAV from a system ser... in shell osx mac bash unix clamav virus account agent
» Using PlistBuddy to customiz... in shell osx mac launchd bash unix defaults launchctl plistbuddy syslogd plist
» Switch to the login window f... in shell osx mac bash unix window login screen access lock keychain
» Disable audible bell in Term... in shell osx mac bash unix defaults audible disable bell
Snippets (source code soon to be available) developed by Peter Cooper and powered by Ruby On Rails
So make sure you put these scripts someplace secure.
The Desktop of a standard user is a security risk for sure.
For more info:
http://developer.apple.com/documentation/MacOSX/Conceptual/BPSystemStartup/Articles/CustomLogin.html#//apple_ref/doc/uid/20002134-111735