Сценарий оболочки для установки пароля для пользователя samba

Я хотел бы установить пароль для установки общего каталога samba с помощью сценария оболочки. Я написал следующий сценарий test.sh :

#!/bin/bash

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

Он напечатает следующее:

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

Как указано, я не запускал его как root, когда я запускал его как root, то есть sudo ./test.sh, все работает нормально. Но загвоздка в том, что он добавляет root вместо noobuser , который является моим зарегистрированным пользователем.

Как я могу добавить noobuser , выполнив нечто подобное (у меня такое чувство, что я что-то здесь упускаю)?

0
02.06.2017, 09:39
2 ответа

если вы не хотите передавать аргумент скрипту, вы можете попробовать это

#!/bin/bash

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

и затем вызвать скрипт.

0
28.01.2020, 02:33

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

вызов:

sudo./test.sh
4
28.01.2020, 02:33

Теги

Похожие вопросы