1#!/bin/sh 2 3# 4# This file and its contents are supplied under the terms of the 5# Common Development and Distribution License ("CDDL"), version 1.0. 6# You may only use this file in accordance with the terms of version 7# 1.0 of the CDDL. 8# 9# A full copy of the text of the CDDL should have accompanied this 10# source. A copy of the CDDL is also available via the Internet at 11# http://www.illumos.org/license/CDDL. 12# 13 14# 15# Copyright 2017 Nexenta Systems, Inc. All rights reserved. 16# 17 18# Helper program to run fksmbd (user-space smbd for debugging) 19# using binaries from the proto area. 20 21[ -n "$ROOT" ] || { 22 echo "Need a bldenv to set ROOT=..." 23 exit 1; 24} 25 26if [[ ! -w /var/smb || ! -w /var/run/smb ]] 27then 28 echo "Need to create/chown/chmod /var/smb /var/run/smb" 29 echo "mkdir -p /var/run/smb" 30 echo "chown -R $USER /var/smb /var/run/smb" 31 echo "chmod -R a+rw /var/smb /var/run/smb" 32 exit 1; 33fi 34 35if [[ ! -r /var/smb/smbpasswd ]] 36then 37 echo "Need readable /var/smb/smbpasswd, i.e." 38 echo 'chgrp staff /var/smb/smbpasswd' 39 echo 'chmod 440 /var/smb/smbpasswd' 40 exit 1; 41fi 42 43if [[ -e /var/smb/.pwd.lock && ! -w /var/smb/.pwd.lock ]] 44then 45 echo "Need to cleanup /var/smb/.pwd.lock, i.e." 46 echo "rm -f /var/smb/.pwd.lock" 47 exit 1; 48fi 49 50# OK, setup env. to run it. 51 52export SMBD_DOOR_NAME="/tmp/fksmbd_door" 53export SMB_SHARE_DNAME="/tmp/fksmbshare_door" 54 55LD_LIBRARY_PATH=$ROOT/usr/lib/smbsrv:$ROOT/usr/lib:$ROOT/lib 56export LD_LIBRARY_PATH 57 58# Enable everything, for debugging 59export SMB_MAX_PROTOCOL=300 60export SMB_SIGNING=require 61 62# normally runs with cwd=/ but this is more careful 63cd /var/smb 64 65# run with the passed options 66exec $ROOT/usr/lib/smbsrv/fksmbd "$@" 67