30 lines
		
	
	
		
			No EOL
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable file
		
	
	
	
	
			
		
		
	
	
			30 lines
		
	
	
		
			No EOL
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable file
		
	
	
	
	
#!/bin/sh
 | 
						|
#passwd files need to be stored on the persistent storage
 | 
						|
if [ ! -f /privatepersist/etc/passwd ]; then
 | 
						|
  mkdir -p /privatepersist/etc
 | 
						|
  cp /etc/passwd /privatepersist/etc/passwd
 | 
						|
fi
 | 
						|
rm -f /etc/passwd
 | 
						|
ln -s /privatepersist/etc/passwd /etc/passwd
 | 
						|
#tdb files need to be stored on the persistent storage
 | 
						|
if [ ! -f /privatepersist/varlibsamba/private/passdb.tdb ]; then
 | 
						|
  mkdir /privatepersist/varlibsamba
 | 
						|
  tar c -C /var/lib/samba . | tar x -C /privatepersist/varlibsamba
 | 
						|
fi
 | 
						|
rm -rf /var/lib/samba
 | 
						|
ln -s /privatepersist/varlibsamba /var/lib/samba
 | 
						|
#create required users
 | 
						|
if ! md5sum -c /privatepersist/k8s-users-checksum > /dev/null 2>&1; then
 | 
						|
  rm /var/lib/samba/private/passdb.tdb
 | 
						|
  if [ -s /secrets/create-users ]; then
 | 
						|
    for line in $(cat /secrets/create-users); do
 | 
						|
      USER=$(echo $line | cut -f1 -d:)
 | 
						|
      PASS=$(echo $line | cut -f2 -d:)
 | 
						|
      adduser -s /sbin/nologin -h /home/samba -H -D $USER
 | 
						|
      yes "$PASS" | smbpasswd -a $USER
 | 
						|
    done
 | 
						|
  fi
 | 
						|
  md5sum /secrets/create-users > /privatepersist/k8s-users-checksum
 | 
						|
fi
 | 
						|
# bug where smbd stops on "end of input"
 | 
						|
ionice -c 3 smbd --foreground --log-stdout < /dev/null |