Script de shell para definir a senha do usuário do samba

0

Gostaria de definir uma senha para configurar o diretório de compartilhamento samba usando um script de shell. Eu escrevi o seguinte script test.sh :

#!/bin/bash

pass=123456
(echo "$pass"; echo "$pass") | smbpasswd -s -a $(whoami)

Isto imprime o seguinte:

When run by root:
    smbpasswd [options] [username]
otherwise:
    smbpasswd [options]

options:
  -L                   local mode (must be first option)
  -h                   print this usage message
  -s                   use stdin for password prompt
  -c smb.conf file     Use the given path to the smb.conf file
  -D LEVEL             debug level
  -r MACHINE           remote machine
  -U USER              remote username
extra options when run by root or in local mode:
  -a                   add user
  -d                   disable user
  -e                   enable user
  -i                   interdomain trust account
  -m                   machine trust account
  -n                   set no password
  -W                   use stdin ldap admin password
  -w PASSWORD          ldap admin password
  -x                   delete user
  -R ORDER             name resolve order

Como aponta, eu não estava rodando como root, quando eu o executo como root, ou seja, sudo ./test.sh , ele roda bem. Mas o problema é que ele adiciona root em vez de noobuser , que é meu usuário logado.

Como posso adicionar noobuser fazendo algo semelhante (sinto que estou sentindo falta de algo aqui)?

    
por skrowten_hermit 02.06.2017 / 08:39

2 respostas

2

test.sh:

#!/bin/bash

pass=123456

if [ -z "$SUDO_USER" ]; then
    echo "This script is only allowed to run from sudo";
    exit -1;
fi

(echo "$pass"; echo "$pass") | smbpasswd -s -a $SUDO_USER

invocação:

sudo ./test.sh
    
por 02.06.2017 / 09:39
0

se você não quiser passar argumentos para o script, então você pode tentar isso

#!/bin/bash

pass=123456
echo $pass
echo $pass | smbpasswd -s -a $(who am i | awk '{print $1}')

e, em seguida, invoque o script.

    
por 02.06.2017 / 10:35