Temat: Samba Debian.

Witam. Napisałby mi ktoś prosty krypcik dodawania usera do samby i do odpowiedniej grupy?

Np tworzy sie uzytkownik user w home/samba/users robi sie jego katalog i ma tylko prawo do odczytu.

znalazłem coś takiego, ale to nie działa.

#!/bin/sh
# Copyright (C) 2006 OpenWrt.org


smb_add_user()
{
   samba_group=$(cat /etc/group | grep "^samba" | sed 's/.*:x://g' | sed 's/://g')
   if [ -z "$samba_group" ] ; then
      samba_group=1000
      tst=$(cat /etc/group | grep ":$samba_group:")
      while [ -n "$tst" ] ; do
         samba_group=$(($samba_group+1))
         tst=$(cat /etc/group | grep ":$samba_group:")
      done
      echo "samba:x:$samba_group:" >>/etc/group   
   fi

     username=$1
   password=$2

   if [ -z "$username" ] || [ -z "$password" ] ; then
      return
   fi

   user_line=$(cat /etc/passwd | grep "^$username:")
   if [ -z "$user_line" ] ; then
      user_num="$samba_group"
      tst=$(cat /etc/passwd | grep ":.*:$user_num:.*:.*:/.*:/.*$")
      while [ -n "$tst" ] ; do
         user_num=$((user_num+1))
         tst=$(cat /etc/passwd | grep ":.*:$user_num:.*:.*:/.*:/.*$")
      done
      echo "$username:*:$user_num:$samba_group:$username:/var:/bin/false" >>/etc/passwd
   fi
   smbpasswd "$username" "$password"
}

2

Odp: Samba Debian.

Owszem działa. Tylko to funkcja którą wywołać

Czyli na końcy brakuje Ci

smb_add_user maglosia haselko

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

Odp: Samba Debian.

Mnie pyta o login o hasło podaje i potem mam error

:43: missing
:43: -; unexpected operator
:43: -: unexpected operator

when ryn by root
i mam opcje do wyboru...hmm...

a dodalem to pomiedzy echo na koncu

bo tutaj widze nie wkleilem calego kodu


#!/bin/sh
# Copyright (C) 2008-2010 OpenWrt.org


. /etc/functions.sh

echo
echo -n 'Login:' ;read user
echo -n 'Hasło:' ;read haslo

smb_add_user()
{
   samba_group=$(cat /etc/group | grep "^samba" | sed 's/.*:x://g' | sed 's/://g')
   if [ -z "$samba_group" ] ; then
      samba_group=1000
      tst=$(cat /etc/group | grep ":$samba_group:")
      while [ -n "$tst" ] ; do
         samba_group=$(($samba_group+1))
         tst=$(cat /etc/group | grep ":$samba_group:")
      done
      echo "samba:x:$samba_group:" >>/etc/group   
   fi

     username=$1
   password=$2

   if [ -z "$username" ] || [ -z "$password" ] ; then
      return
   fi

   user_line=$(cat /etc/passwd | grep "^$username:")
   if [ -z "$user_line" ] ; then
      user_num="$samba_group"
      tst=$(cat /etc/passwd | grep ":.*:$user_num:.*:.*:/.*:/.*$")
      while [ -n "$tst" ] ; do
         user_num=$((user_num+1))
         tst=$(cat /etc/passwd | grep ":.*:$user_num:.*:.*:/.*:/.*$")
      done
      echo "$username:*:$user_num:$samba_group:$username:/var:/bin/false" >>/etc/passwd
   fi
   smbpasswd "$username" "$password"
}

smb_add_user "$user" "$haslo"

echo
echo 'Dodaj użytkownika do /etc/config/samba'
TUTAJ DODAŁEM
echo

i błędy odnośnie tego etc/config/samba mi wyskakuja

4

Odp: Samba Debian.

#!/bin/sh zamień na #!/bin/sh -x

i zobaczysz dokładnie gdzie masz błędy i co się dzieje.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

Odp: Samba Debian.

Mam dokładnie taki sam bład jak wyżej.

A nie zrobiłbyś mi na szybko skrypcik co dodaje jednego usera i dodaje go do wybranej grupy przezemnie?
Byłbym wdzięczny bardzo.

6

Odp: Samba Debian.

http://eko.one.pl/?p=openwrt-samba#nowyuytkownik

Cztery linie...

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

Odp: Samba Debian.

No dobra, ale ja jeszcze bym chciał tak żeby dodawało mi usera do grupy i tworzylo katalog dla niego o tej samej nazwie w /home/samba/skrypty

Da sie to zrobisz? Bo ja nie umiem.

ps: zbierasz jeszcze routerki?

8

Odp: Samba Debian.

Tworzenie katalogu:

mkdir -p /home/samba/skrypty/user

Dodawanie do istniejącej grupy:

sed -i 's/\(grupa.*\)/\1:user/g' /etc/group

Jak masz coś zbędnego możesz wysłać, zgłoś się na priv to dam Ci adres.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

9 (edytowany przez ChooyaMiToDziala 2013-02-20 12:22:38)

Odp: Samba Debian.

Dzięki wielkie już prawie koncówka. Masz może pomysł na:

Muszę stworzyć 500+ userów w sambie- jak to zapętlić, abym nazw nie musiał zmieniać ciągle...tylko wpisywać, albo coś poprzez petle, aby wiedzial programik, ze ma zrobic kolejnego usera o nr wyzej.
i ostatnie. dostep odczytu do folderu install zrobilem kazdemu. Ale jak zrobic taki myk, ze jeden user widzi tylko swoj katalog np. zd-001 ma katalog i widzi go odczyt/.zapis ...? umiałbyś ogarnać? byłbym wdzieczny. To Ci wyślę za to uratowanie tyłka dwa routerki Pentagrama i Linksysa.

PS JAK ZMIENIE MALGOSIA NA NP. MALGOSIA 1 wszystkie tam malgosie wink
to mam blad FAILED TO ADD ENTRY FOR USER MALGOSIA1

10

Odp: Samba Debian.

Jak masz 500 userów to raz że musisz ich wszystkich wpisać, dwa - zrób pętlę po prostu

A="user1 user2 ... user500"
for i in $A; do
  echo "user $i"
  ta funkcja
done

W sambie możesz podać homes 1, wtedy utworzy się zasób będący katalogiem domowym danego użytkownika i tylko on go będzie widzieć.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

Odp: Samba Debian.

Szczerze to się nie orientuje co to jest to homes 1, gdzie mogę to zrobić? TA funkcja oznacza tą funkcję 4 linijki?

12

Odp: Samba Debian.

ta funkcja to wywołanie skryptu który masz. w $i masz nazwę użytkownika.

W konfiguracji samby.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

Odp: Samba Debian.

mógłbyś mi to zlepić w całość, bo już nie rozumiem nic, a tak to pomysle i chociaz zrozumiem po czesci jak to zrobiles.
Przeslij adres mi na pm to wysle po pracy routerki.

Będzie to działać. Bo ja nie zbyt znam sie na takim programowaniu.skryptach.