SHIFT

--- Sjoerd Hooft's InFormation Technology ---

User Tools

Site Tools


aixautohomedir
Differences

This shows you the differences between two versions of the page.

Link to this comparison view

aixautohomedir [2013/01/26 20:09] (current)
sjoerd created
Line 1: Line 1:
 += AIX Home Directory
 +Under normal circumstances you would use the PAM module pam_mkhomedir.so to create a home directory when it not exists and a user logins. This does not work using SSH because this is considered a security breach. This article is about the autocreation of a home directory when users login using SSH. Because the pam module doesn'​t work anymore we use the "​make_home_dir"​ program from [[http://​www.trustsec.de/​soft/​oss/​|TrustSec]]. ​
  
 +Note: The recommendations used here are mostly from the readme, this readme was however created for linux so a few commands didn't work. The commands used here are for AIX. 
 +
 += Installation make_home_dir
 +The installation of make_home_dir on AIX is not so straight forward as hoped for. I had to perform these steps to get it working:
 +# System setup
 +# Modification make file
 +# Compile source
 +# Configure /​etc/​profile
 +
 +== System setup
 +Before the program can be installed you need to setup your system:
 +Do the following, to setup your system:
 +Add a group named '​home':​
 +  $ mkgroup home
 +Now make the parent of the home-directories writeable to this group:
 +  $ chgrp home /home
 +  $ chmod g+w /home
 +
 +=== AIX 6.1
 +Additionally,​ on AIX 6.1 you have to manually create the directory /​usr/​local/​sbin:​
 +<​code>​
 +mkdir /usr/local
 +mkdir /​usr/​local/​sbin
 +</​code>​
 +
 +== Modification make file
 +The makefile is created for linux and doesn'​t work out of the box on AIX. This is the original makefile:
 +<​code>​
 +# (c) Copyright 2003 -- Frank Kirschner <​kirschner@trustsec.de>​
 +#
 +# The install-dir of the binary
 +BIN_DIR=/​usr/​local/​sbin
 +# The group, that make_home_dir should be started with
 +GROUP=home
 +# The parent-directory of all home-directories
 +HOME_PARENT=/​home
 +
 +
 +
 +
 +SRC=make_home_dir.c
 +FILE=make_home_dir
 +DEST=$(BIN_DIR)/​$(FILE)
 +
 +all:​ $(FILE)
 +
 +install: $(FILE)
 + cp $(FILE) $(DEST)
 + strip $(DEST)
 + chgrp $(GROUP) $(DEST)
 + chmod g+s $(DEST)
 +
 +setup:
 + groupadd $(GROUP)
 + chgrp $(GROUP) $(HOME_PARENT)
 + chmod g+w $(HOME_PARENT)
 +
 +clean:
 + rm -f $(FILE)
 +
 +
 +$(FILE):​ $(SRC)
 + gcc -Wall -o $@ $<
 +</​code>​
 +
 +To make this file work on AIX you'll have to edit the last line:
 +  gcc -Wall -o $@ $<
 +to:
 +  gcc -Wall -o $@ $(SRC)
 +
 +=== error
 +If you don't change the makefile you'll get this error:
 +<​code>​
 +root@ms-lpar04:/​tmp/​sft/​make_home_dir-1.0>​make
 +        gcc -Wall -o make_home_dir
 +gcc: no input files
 +make: The error code from the last command is 1.
 +</​code>​
 +
 +== Compile source
 +After this you can finally compile the source:
 +<​code>​
 +root@ms-lpar04:/​tmp/​sft/​make_home_dir-1.0>​make
 +Target "​all"​ is up to date.
 +root@ms-lpar04:/​tmp/​sft/​make_home_dir-1.0>​make install
 +        cp make_home_dir /​usr/​local/​sbin/​make_home_dir
 +        strip /​usr/​local/​sbin/​make_home_dir
 +        chgrp home /​usr/​local/​sbin/​make_home_dir
 +        chmod g+s /​usr/​local/​sbin/​make_home_dir
 +root@ms-lpar04:/​tmp/​sft/​make_home_dir-1.0>​ls
 +COPYRIGHT ​       Makefile ​        ​README ​          ​make_home_dir ​   make_home_dir.c
 +</​code>​
 +
 +== Configure profile
 +Now you have to add some code to the /​etc/​profile script. The original code is again for linux and doesn'​t work completely on AIX. 
 +This is the original code:
 +<​code>​
 +if [ ! -d $HOME ]
 +then
 +   ​logger Creating new home-directory $HOME
 +   /​usr/​local/​sbin/​make_home_dir
 +   cd $HOME
 +   cp -a /etc/skel/. $HOME/.
 +   echo Home directory created
 +fi
 +</​code>​
 +To make it work on AIX change this line:
 +  cp -a /etc/skel/. $HOME/.
 +to
 +  cp /​etc/​skel/​.[^\.]* $HOME/
 +
 +NOTE: for this to work you'll have to change the default shell to /bin/bash. This is already been set for LUM enabled users in eDirectory.
 +
 +{{tag>​aix}}
aixautohomedir.txt ยท Last modified: 2013/01/26 20:09 by sjoerd