[Samba] how to use root preexec on user share with %U not as root user
rpenny at samba.org
Thu Apr 30 08:12:41 UTC 2020
On 30/04/2020 00:25, Jelle de Jong via samba wrote:
> Hello everybody,
> I am trying to get samba 4 to make a user dir without the use of ADUC
> to set the homeDirectory, but with samba-tool user create only.
> I created a root preexec but the %U is filled with root and not the
> username of the user.
> I need to user [users] and not the old [homes] because I got a GPO for
> redirection to the //server/users/%USERNAME% and I need this folder to
> be created before the first logon of the user otherwise it seems to go
> path = /srv/storage/users/
> read only = No
> root preexec = /usr/local/bin/samba-mkdir-home %U
> if [ ! -e /srv/storage/users/$1 ]; then
> mkdir /srv/storage/users/$1
> chown "$1":"domain user" /srv/storage/users/$1
> Kind regards,
> Jelle de Jong
Define 'first logon'.
If it is logging on via ssh or direct to the computer (via lightdm etc),
then you need you would use pam_mkhomedir instead
That doesn't work if just connecting to a Samba share, so you have two
Create a share:
path = /path/to/users
read only = no
The first option is:
Go to ADUC, select a user, right click, select 'Options' and then the
'Profiles' tab. At the bottom of the 'Profiles' tab select a letter e.g.
'H:' then the shares UNC e.g. //Samba_servers_hostname/users/username,
now click 'Apply', this should create the users homedir on the Samba server.
The second option relies on adding a line to the share:
root preexec = /path/to/a/script %H %U
This will cause the script to be run whenever a user connects to the
share and pass the users homedir path and username to the script. With
this option, you do not need to touch the users profile tab in ADUC.
More information about the samba