[gelöst] debian samba-tool script Problem

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Benutzeravatar
joe2017
Beiträge: 1136
Registriert: 07.08.2017 14:29:51

[gelöst] debian samba-tool script Problem

Beitrag von joe2017 » 04.08.2020 12:29:31

Hallo liebe Scripter,

ich habe ein merkwürdiges Problem und bräuchte mal eure Unterstützung.

Ich möchte mittels Script Benutzer diversen Gruppen hinzufügen.
Hierzu habe ich einige Hilfsdateien. Ich habe eine Datei in welcher alle Gruppen aufgelistet sind und in einem Ordner "Group" Dateien mit den Gruppennamen und in diesen stehen die Benutzer.

FileGroups.csv

Code: Alles auswählen

_ems_Global_Gruppe1_r
_ems_Global_Gruppe1_w
_ems_Global_Gruppe1_x
_ems_Global_Gruppe2_r
_ems_Global_Gruppe2_w
_ems_Global_Gruppe2_x
usw...
Floder Group:
_ems_Global_Gruppe1_r.txt

Code: Alles auswählen

User1
_ems_Global_Gruppe1_w.txt

Code: Alles auswählen

User1
User2
_ems_Global_Gruppe1_x.txt

Code: Alles auswählen

User1
User2
User3
usw.

Jetzt habe ich ein Script geschrieben was wie folgt aussieht:

Code: Alles auswählen

while IFS=, read VARGroup
do
  # echo $VARGroup
  while IFS=, read VARUser
  do
    # echo $VARGroup $VARUser
    sudo samba-tool group addmembers $VARGroup $VARUser
  done < /path/Group/$VARGroup.txt
done < /path/FileGroups.csv
Ich bekomme immer eine Fehlermeldung wenn ich das Ganze ausführe:

Code: Alles auswählen

". Operation cancelled._Gruppe1_r" - Unable to find "User1
  File "/usr/lib/python2.7/dist-packages/samba/netcmd/group.py", line 242, in run
    add_members_operation=True)
  File "/usr/lib/python2.7/dist-packages/samba/samdb.py", line 302, in add_remove_group_members
    raise Exception('Unable to find "%s". Operation cancelled.' % member)
Was mir gerade aufgefallen ist, weshalb ich meine Gruppennamen angepasst habe. Meine Gruppen beginnen immer mit "_ems_Global_". In der Fehlermeldung steht jedoch ". Operation cancelled._Gruppe1_r" - Unable to find "User1. Warum steht hier ". Operation cancelled._Gruppe1_r" und nicht ". Operation cancelled._ems_Global_Gruppe1_r"?


Wenn ich in meinem Script die auskommentierte echo Zeile aktiviere sehe ich im Script vor der Fehlermeldung alles richtig.

Code: Alles auswählen

_ems_Global_Gruppe1_r User1
_ems_Global_Gruppe1_w User1 User2
_ems_Global_Gruppe1_x User1 User2 User3
Wenn ich den Befehl manuell ausführe wird der Benutzer hinzugefügt.

Code: Alles auswählen

sudo samba-tool group addmembers _ems_Global_Gruppe1_r User1
Hat jemand eine Idee woran das liegen könnte?
Zuletzt geändert von joe2017 am 05.08.2020 13:59:20, insgesamt 1-mal geändert.

Benutzeravatar
joe2017
Beiträge: 1136
Registriert: 07.08.2017 14:29:51

Re: debian samba-tool script Problem

Beitrag von joe2017 » 05.08.2020 10:30:58

Ich habe gerade herausgefunden, was das Problem ist!

Die einzelnen txt Gruppen Dateien wurden in Windows erzeugt. Diese habe ich auf mein Debian Server kopiert und damit hat Debian anscheinend ein Problem.
Wenn ich die Datei mit den selben Inhalten in Debian anlege funktioniert das Script.

Was muss ich mit den Dateien von Windows tun, damit diese in Debian korrekt gelesen werden? Was ist hier der Unterschied und wie finde ich das heraus?

Ich habe mir die Information zu den beiden Dateien anzeigen lassen.

Code: Alles auswählen

file -i /path/*
Beide files haben folgendes encoding
text/plain; charset=us-ascii

Die Datei von Windows ist jedoch größer
Windows 210
Debian 196

Benutzeravatar
joe2017
Beiträge: 1136
Registriert: 07.08.2017 14:29:51

Re: debian samba-tool script Problem

Beitrag von joe2017 » 05.08.2020 10:45:16

Ich habe einen Befehl gefunden, welcher die Files für Debian lesbar machen sollte.

Code: Alles auswählen

tr -d '\15\32' < File-A > File-B
Wie führe ich das für alle Files in einem Ordner aus?
Für einen Tip wäre ich super Dankbar!

eggy
Beiträge: 3331
Registriert: 10.05.2008 11:23:50

Re: debian samba-tool script Problem

Beitrag von eggy » 05.08.2020 10:56:58

xargs

Benutzeravatar
joe2017
Beiträge: 1136
Registriert: 07.08.2017 14:29:51

Re: debian samba-tool script Problem

Beitrag von joe2017 » 05.08.2020 11:13:03

Ich habe es wie folgt gelöst. Wahscheinlich etwas umständlich, aber es funktioniert.

Code: Alles auswählen

for file in /path/*.txt; do sudo tr -d '\15\32' < "$file" > "$file.csv"; done
sudo rm -rf /path/*.txt
for file in /path/*.txt.*; do sudo mv "$file" "${file/.csv/}"; done

Antworten