Samba als eigenständiger AD-DC
Datum: Fr 7. Jul 2017 (letzte Änderung 23.04.2021)
ZIEL: Eine eigenständigen Samba Domänen Controller bereitstellen, der mittels internem DNS-Server und LDAP-Datenbank als Active Directory Domain Controller fungieren kann.
Linux-Distribution: Debian 9 (Samba 4.5.8) oder Debian 10 (Samba 4.9.5)
Siehe https://wiki.samba.org/index.php/Setting_up_Samba_as_an_Active_Directory_Domain_Controller
Wir verfahren im Prinzip nach dem Tutorial unter https://www.server-world.info/en/note?os=Debian_9&p=samba&f=4
Vorbereitungen
Dies sind ist die Ausgangskonfiguration:
root@sambaDC1:~# ip -4 addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
inet 10.20.30.40/24 brd 10.20.30.255 scope global enp0s3
valid_lft forever preferred_lft forever
root@sambaDC1:~#
root@sambaDC1:~# cat /etc/resolv.conf
nameserver 10.20.30.3
search haus2.site
root@sambaDC1:~#
root@sambaDC1:~# hostname -s
sambaDC1
root@sambaDC1:~#
root@sambaDC1:~# hostname -f
sambaDC1.haus2.site
root@sambaDC1:~#
root@sambaDC1:~# samba -V
Version 4.5.8-Debian
root@sambaDC1:~#
Software installieren
Es folgt die Installation wichtiger Pakete, wobei wir den Kerberos-Client unkonfigurieriert lassen - also einfach alle Voreinstellungen mit Enter übernehmen:
root@sambaDC1:~# apt-get install samba krb5-config winbind smbclient
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut.
Statusinformationen werden eingelesen.... Fertig
samba ist schon die neueste Version (2:4.5.8+dfsg-2).
smbclient ist schon die neueste Version (2:4.5.8+dfsg-2).
Vorgeschlagene Pakete:
libnss-winbind libpam-winbind
Die folgenden NEUEN Pakete werden installiert:
krb5-config winbind
0 aktualisiert, 2 neu installiert, 0 zu entfernen und 0 nicht aktualisiert.
Es müssen 558 kB an Archiven heruntergeladen werden.
Nach dieser Operation werden 1.928 kB Plattenplatz zusätzlich benutzt.
Möchten Sie fortfahren? [J/n]
Holen:1 http://ftp.tu-chemnitz.de/pub/linux/debian/debian stretch/main amd64 krb5-config all 2.6 [24,6 kB]
Holen:2 http://ftp.tu-chemnitz.de/pub/linux/debian/debian stretch/main amd64 winbind amd64 2:4.5.8+dfsg-2 [533 kB]
Es wurden 558 kB in 1 s geholt (553 kB/s).
Vorkonfiguration der Pakete ...
Vormals nicht ausgewähltes Paket krb5-config wird gewählt.
(Lese Datenbank ... 31475 Dateien und Verzeichnisse sind derzeit installiert.)
Vorbereitung zum Entpacken von .../krb5-config_2.6_all.deb ...
Entpacken von krb5-config (2.6) ...
Vormals nicht ausgewähltes Paket winbind wird gewählt.
Vorbereitung zum Entpacken von .../winbind_2%3a4.5.8+dfsg-2_amd64.deb ...
Entpacken von winbind (2:4.5.8+dfsg-2) ...
winbind (2:4.5.8+dfsg-2) wird eingerichtet ...
mkdir: Verzeichnis '/var/lib/samba/winbindd_privileged' angelegt
die Gruppe von '/var/lib/samba/winbindd_privileged' wurde von root in winbindd_priv geändert
der Modus von '/var/lib/samba/winbindd_privileged' wurde von 0755 (rwxr-xr-x) in 0750 (rwxr-x---) geändert
Created symlink /etc/systemd/system/multi-user.target.wants/winbind.service → /lib/systemd/system/winbind.service.
Job for winbind.service failed because the control process exited with error code.
See "systemctl status winbind.service" and "journalctl -xe" for details.
invoke-rc.d: initscript winbind, action "start" failed.
● winbind.service - Samba Winbind Daemon
Loaded: loaded (/lib/systemd/system/winbind.service; enabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Thu 2017-07-06 16:07:19 CEST; 13ms ago
Docs: man:winbindd(8)
man:samba(7)
man:smb.conf(5)
Process: 1485 ExecStart=/usr/sbin/winbindd $WINBINDOPTIONS (code=exited, status=1/FAILURE)
Main PID: 1485 (code=exited, status=1/FAILURE)
Jul 06 16:07:19 sambaDC1 systemd[1]: Starting Samba Winbind Daemon...
Jul 06 16:07:19 sambaDC1 systemd[1]: winbind.service: Main process exited, code=exited, status=1/FAILURE
Jul 06 16:07:19 sambaDC1 systemd[1]: Failed to start Samba Winbind Daemon.
Jul 06 16:07:19 sambaDC1 systemd[1]: winbind.service: Unit entered failed state.
Jul 06 16:07:19 sambaDC1 systemd[1]: winbind.service: Failed with result 'exit-code'.
dpkg: Fehler beim Bearbeiten des Paketes winbind (--configure):
Unterprozess installiertes post-installation-Skript gab den Fehlerwert 1 zurück
Trigger für libc-bin (2.24-11+deb9u1) werden verarbeitet ...
Trigger für systemd (232-25) werden verarbeitet ...
Trigger für man-db (2.7.6.1-2) werden verarbeitet ...
krb5-config (2.6) wird eingerichtet ...
Fehler traten auf beim Bearbeiten von:
winbind
E: Sub-process /usr/bin/dpkg returned an error code (1)
root@sambaDC1:~#
Der aufgetretene Fehler ist nicht so schlimm, der winbind-Daemon wird dann zu einem späteren Zeitpunkt gestartet.
Domänencontroller bereitstellen
Jetzt geht es mit der Konfiguration und Provisionierung des Samba-Servers weiter. Bei der Aktion samba-tool domain provision
wird u.a. das Administrator-Passwort gesetzt; es muss mindestens 7 Zeichen lang und komplex genug sein. Ansonsten bricht der Vorgang mit einem Fehler ab, was aber nicht weiter schlimm ist: vor einem erneutem Aufruf dieser Kommandozeile muss nur die ‚smb.conf‘ gelöscht werden. Dieser wichtige Vorgang gestaltet sich insgesamt so:
root@sambaDC1:~# cd /etc/samba/
root@sambaDC1:/etc/samba#
root@sambaDC1:/etc/samba# ls -ltr
insgesamt 28
drwxr-xr-x 2 root root 4096 Mai 18 11:53 tls
-rw-r--r-- 1 root root 8 Mai 18 11:53 gdbcommands
-rw-r--r-- 1 root root 54 Jul 6 15:19 dhcp.conf
-rw-r--r-- 1 root root 333 Jul 6 16:02 smb.conf
root@sambaDC1:/etc/samba#
root@sambaDC1:/etc/samba# mv smb.conf /root/smb.conf_orig
root@sambaDC1:/etc/samba#
root@sambaDC1:/etc/samba#
root@sambaDC1:/etc/samba# samba-tool domain provision
Realm [HAUS2.SITE]:
Domain [HAUS2]:
Server Role (dc, member, standalone) [dc]:
DNS backend (SAMBA_INTERNAL, BIND9_FLATFILE, BIND9_DLZ, NONE) [SAMBA_INTERNAL]:
DNS forwarder IP address (write 'none' to disable forwarding) [10.20.30.3]:
Administrator password:
Retype password:
Looking up IPv4 addresses
Looking up IPv6 addresses
No IPv6 address will be assigned
Setting up secrets.ldb
Setting up the registry
Setting up the privileges database
Setting up idmap db
Setting up SAM db
Setting up sam.ldb partitions and settings
Setting up sam.ldb rootDSE
Pre-loading the Samba 4 and AD schema
Adding DomainDN: DC=haus2,DC=site
Adding configuration container
Setting up sam.ldb schema
Setting up sam.ldb configuration data
Setting up display specifiers
Modifying display specifiers
Adding users container
Modifying users container
Adding computers container
Modifying computers container
Setting up sam.ldb data
Setting up well known security principals
Setting up sam.ldb users and groups
Setting up self join
Adding DNS accounts
Creating CN=MicrosoftDNS,CN=System,DC=haus2,DC=site
Creating DomainDnsZones and ForestDnsZones partitions
Populating DomainDnsZones and ForestDnsZones partitions
Setting up sam.ldb rootDSE marking as synchronized
Fixing provision GUIDs
A Kerberos configuration suitable for Samba 4 has been generated at /var/lib/samba/private/krb5.conf
Once the above files are installed, your Samba4 server will be ready to use
Server Role: active directory domain controller
Hostname: sambaDC1
NetBIOS Domain: HAUS2
DNS Domain: haus2.site
DOMAIN SID: S-1-5-21-2804442938-3476954425-3519845702
root@sambaDC1:/etc/samba#
Als nächstes kümmern wir uns um die Kerberos-Clientkonfiguration, die wir während der Installation ausgelassen haben und starten danach die Daemons:
root@sambaDC1:/etc/samba# cp -bf /var/lib/samba/private/krb5.conf /etc/
root@sambaDC1:/etc/samba#
root@sambaDC1:/etc/samba# systemctl stop smbd nmbd winbind
root@sambaDC1:/etc/samba# systemctl unmask samba-ad-dc
Removed /etc/systemd/system/samba-ad-dc.service.
root@sambaDC1:/etc/samba# systemctl start samba-ad-dc
root@sambaDC1:/etc/samba# systemctl enable samba-ad-dc
Synchronizing state of samba-ad-dc.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable samba-ad-dc
root@sambaDC1:/etc/samba#
Kommt eine Distribution mit SysVinit zum Einsatz, sind folgende Stop/Start-Kommandos erforderlich:
root@smbsrv:/etc/samba# service smbd stop
[ ok ] Stopping SMB/CIFS daemon: smbd.
root@smbsrv:/etc/samba#
root@smbsrv:/etc/samba# service nmbd stop
[ ok ] Stopping NetBIOS name server: nmbd.
root@smbsrv:/etc/samba#
root@smbsrv:/etc/samba# service winbind stop
root@smbsrv:/etc/samba#
root@smbsrv:/etc/samba# service samba-ad-dc start
[ ok ] Starting Samba AD DC daemon: samba.
root@smbsrv:/etc/samba#
Zur Kontrolle der nunmehr laufenden Daemons und der neuen Konfiguration geben wir folgendes ein:
root@sambaDC1:/etc/samba# ps aux | grep -E 'mbd|win|samba'
root 1906 0.1 6.9 514788 51932 ? Ss 16:10 0:00 /usr/sbin/samba
root 1907 0.0 4.5 514788 33640 ? S 16:10 0:00 /usr/sbin/samba
root 1908 0.2 6.7 525656 50188 ? S 16:10 0:00 /usr/sbin/samba
root 1909 0.0 5.0 514788 37916 ? S 16:10 0:00 /usr/sbin/samba
root 1910 0.0 4.5 514788 33640 ? S 16:10 0:00 /usr/sbin/samba
root 1911 3.4 5.5 514788 40972 ? S 16:10 0:03 /usr/sbin/samba
root 1912 0.1 7.8 509864 58068 ? Ss 16:10 0:00 /usr/sbin/smbd -D --option=server role check:inhibit=yes --foreground
root 1913 0.0 4.6 514788 34668 ? S 16:10 0:00 /usr/sbin/samba
root 1914 0.0 5.8 521084 43356 ? S 16:10 0:00 /usr/sbin/samba
root 1915 0.0 5.2 514788 39404 ? S 16:10 0:00 /usr/sbin/samba
root 1916 0.0 4.5 514788 33640 ? S 16:10 0:00 /usr/sbin/samba
root 1917 0.0 4.5 514788 33640 ? S 16:10 0:00 /usr/sbin/samba
root 1918 0.0 6.2 514788 46232 ? S 16:10 0:00 /usr/sbin/samba
root 1919 0.1 7.4 478376 55560 ? Ss 16:10 0:00 /usr/sbin/winbindd -D --option=server role check:inhibit=yes --foreground
root 1920 0.0 5.0 514788 37364 ? S 16:10 0:00 /usr/sbin/samba
root 1921 0.0 5.7 521504 42648 ? S 16:10 0:00 /usr/sbin/samba
root 1925 0.0 4.6 502292 34552 ? S 16:10 0:00 /usr/sbin/smbd -D --option=server role check:inhibit=yes --foreground
root 1926 0.0 4.6 502292 34332 ? S 16:10 0:00 /usr/sbin/smbd -D --option=server role check:inhibit=yes --foreground
root 1927 0.0 5.8 477940 43600 ? S 16:10 0:00 /usr/sbin/winbindd -D --option=server role check:inhibit=yes --foreground
root 1930 0.0 5.2 478376 39048 ? S 16:10 0:00 /usr/sbin/winbindd -D --option=server role check:inhibit=yes --foreground
root 1931 0.0 5.1 479008 38612 ? S 16:10 0:00 /usr/sbin/winbindd -D --option=server role check:inhibit=yes --foreground
root 1932 0.0 4.6 509864 34948 ? S 16:10 0:00 /usr/sbin/smbd -D --option=server role check:inhibit=yes --foreground
root 2101 0.0 0.1 12784 980 pts/0 S+ 16:11 0:00 grep --color=auto -E mbd|win|samba
root@sambaDC1:/etc/samba#
root@sambaDC1:/etc/samba#
root@sambaDC1:/etc/samba# cat smb.conf
# Global parameters
[global]
netbios name = SAMBADC1
realm = HAUS2.SITE
workgroup = HAUS2
dns forwarder = 10.20.30.3
server role = active directory domain controller
[netlogon]
path = /var/lib/samba/sysvol/haus2.site/scripts
read only = No
[sysvol]
path = /var/lib/samba/sysvol
read only = No
root@sambaDC1:/etc/samba#
Nun wäre es gut, einen Domänennutzer namens „debra“ anzulegen:
root@sambaDC1:/etc/samba# samba-tool user create debra
New Password:
Retype Password:
User 'debra' created successfully
root@sambaDC1:/etc/samba#
Sinnvollerweise lassen wir uns nun die Browseliste ausgeben, was bei Debian 10 nicht mehr anonym möglich ist, sondern nur noch authentifiziert z.B. mittels smbclient -L localhost -U debra
(Domänennutzer „debra“) funktioniert. Hier die Variante für die Samba-Version von Debian 9:
root@sambaDC1:/etc/samba# smbclient -L localhost -U%
Domain=[HAUS2] OS=[Windows 6.1] Server=[Samba 4.5.8-Debian]
Sharename Type Comment
--------- ---- -------
netlogon Disk
sysvol Disk
IPC$ IPC IPC Service (Samba 4.5.8-Debian)
Domain=[HAUS2] OS=[Windows 6.1] Server=[Samba 4.5.8-Debian]
Server Comment
--------- -------
Workgroup Master
--------- -------
WORKGROUP SAMBADC1
root@sambaDC1:/etc/samba#
root@sambaDC1:/etc/samba# samba-tool domain level show
Domain and forest function level for domain 'DC=haus2,DC=site'
Forest function level: (Windows) 2008 R2
Domain function level: (Windows) 2008 R2
Lowest function level of a DC: (Windows) 2008 R2
root@sambaDC1:/etc/samba#
Vor der Aufnahme eines Windows 7 Rechners in die Samba Domäne:
root@sambaDC1:/etc/samba# pdbedit -L -w
SAMBADC1$:4294967295:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX:789B04D223FAFB1AB5AAC787C10294D5:[S ]:LCT-595E445A:
Administrator:4294967295:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX:0B14252E7F38340DC3C6C3E6304B9BBC:[U ]:LCT-595E445A:
debra:4294967295:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX:0B14252E7F38340DC3C6C3E6304B9BBC:[U ]:LCT-595E45AA:
krbtgt:4294967295:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX:72767E45FFB333BD1428FB8F8DE8917E:[DU ]:LCT-595E445A:
nobody:65534:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX:[U ]:LCT-00000000:
root@sambaDC1:/etc/samba#
Windows-Client in die Domäne aufnehmen
Nun erfolgt die Aufnahme eines Windows 7/10-Rechners in die Samba Domäne mit Hilfe des Nutzernamens ‚Administrator‘ und dem oben bei ‚samba-tool domain provision‘ gesetztem Passwort. Danach sieht die Ausgabe folgendermaßen aus:
root@sambaDC1:/etc/samba# pdbedit -L -w
SAMBADC1$:4294967295:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX:789B04D223FAFB1AB5AAC787C10294D5:[S ]:LCT-595E445A:
Administrator:4294967295:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX:0B14252E7F38340DC3C6C3E6304B9BBC:[U ]:LCT-595E445A:
IE11WIN7$:4294967295:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX:AA6E4AB0F6D0A897B317B4B1F846B130:[W ]:LCT-595E4606:
debra:4294967295:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX:0B14252E7F38340DC3C6C3E6304B9BBC:[U ]:LCT-595E45AA:
krbtgt:4294967295:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX:72767E45FFB333BD1428FB8F8DE8917E:[DU ]:LCT-595E445A:
nobody:65534:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX:[U ]:LCT-00000000:
root@sambaDC1:/etc/samba#
Servergespeichertes Profil einrichten
Wir müssen zu unserer Samba-Konfiguration /etc/samba/smb.conf
ein Share namens profiles hinzufügen (Zeilen 14 bis 18):
root@sambaDC1:~# nl /etc/samba/smb.conf
1 # Global parameters
2 [global]
3 dns forwarder = 192.168.2.1
4 netbios name = sambaDC1
5 realm = DOM1.TEST
6 server role = active directory domain controller
7 workgroup = DOM1
8 [netlogon]
9 path = /var/lib/samba/sysvol/dom1.test/scripts
10 read only = No
11 [sysvol]
12 path = /var/lib/samba/sysvol
13 read only = No
14 [profiles]
15 comment = Profile Share
16 path = /srv/samba/profiles
17 read only = No
18 ; Nicht mehr bei Samba 4.9.5 vorhanden:
19 ;profile acls = Yes
root@sambaDC1:~#
root@sambaDC1:~# # >>> die letzten 5 Zeilen wurden hinzugefügt.
root@sambaDC1:~#
root@sambaDC1:~# mkdir -p -m 757 /srv/samba/profiles
Danach legen wir noch einen neuen Domänennutzer mit einem entsprechenden Profil-Pfad an, mit dem wir uns dann an der Windows-Maschine anmelden können:
root@sambaDC1:~# samba-tool user create aduser3 --profile-path='\\sambaDC1.dom1.test\profiles\%USERNAME%'
root@sambaDC1:~#
root@sambaDC1:~# # Nur zur Kontrolle:
root@sambaDC1:~# pdbedit -L -v -u aduser3
Fehlersuche
Es können natürlich vielerlei Probleme auftreten, das Samba Wiki unter https://wiki.samba.org/index.php/Samba_AD_DC_Troubleshooting ist sehr empfehlenswert. Ansonsten folgen hier ein paar Tipps:
DNS-Hostnamen auf dem Linux-Server mittels
hostname --fqdn
ausgeben lassenDNS-Namensauflösung auf dem Linux-Server mit
nslookup
,host
oderdig
kontrollierenDNS-Namensauflösung auf den Windows-Clients mit
nslookup
kontrollierenEinen zweiten Adress-Record hinzufügen, wenn Samba via PAT erreicht werden soll:
samba-tool dns add localhost dom1.test sambaDC1 A 10.1.1.200 -U Administrator
(die Adresse 10.1.1.200 hat dabei die äußere NIC des Routers, der Windows-Client ist im selben Netz und habe 10.1.1.202)
Probleme mit Dual-Stack (IPv6 -> IPv4) sind nicht so einfach lokalisierbar. So z.B. im speziellen Fall beim Domänenanschluss von Windows 10 nach erfolgreicher Authentifizierung als ‚Administrator‘. Dort tauchte nach längerer Wartezeit immer wieder „Netzwerkpfad wurde nicht gefunden“ auf.
Ursache war schließlich, dass der Linux-Server zusätzlich zur IPv4-Adresse über eine IPv6 Global Unicast Adresse aus dem Bereich 2000::/3 verfügte, die dem Windows-Host beim Ausführen von nslookup sambaDC1.dom1.test
parallel zur IPv4-Adresse übermittelt wurde. IPv6 zu deaktivieren brachte keine Besserung. Erst nach dem Eintragen dieser IPv6-Adresse als Nameserver (DNS-Clientkonfiguration für IPv6) war der Beitritt problemlos möglich. Vermutlich haben die Global Unicast Adressen oberste Priorität, Link Lokale Adressen allein hatten in einer separaten Versuchsanordnung keine Probleme bereitet. Besser ist also, man setzt generell auf das neue Pferd IPv6.
Probleme mit Linux-Containern: Um File Sharing in Containern nutzen zu können, müssen sie im privilegierten Modus laufen. Bei LXD kann man dies z.B. ganz einfach mit lxc config set myLinContainer security.privileged true
bewerkstelligen.
Information aus dem integrierten LDAP gewinnen: Nach der Installation des Pakets ldb-tools
lassen sich Details z.B. über den Nutzeraccount debra ausgeben (siehe auch https://wiki.samba.org/index.php/LDB):
root@deb-srv:~# ldbsearch -H /var/lib/samba/private/sam.ldb.d/DC=DOM1,DC=TEST.ldb cn=debra | head -12
# record 1
dn: CN=debra,CN=Users,DC=dom1,DC=test
objectClass: top
objectClass: person
objectClass: organizationalPerson
objectClass: user
cn: debra
instanceType: 4
whenCreated: 20210426063949.0Z
uSNCreated: 4069
nTSecurityDescriptor: O:S-1-5-21-3239757610-3408672333-1060019670-512G:S-1-5-2
1-3239757610-3408672333-1060019670-512D:AI(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;S-
root@deb-srv:~#
User-Passwörter, mount.cifs
1. Passwörter ändern ist kein großes Problem - das lässt sich für die oben angelegten Domänennutzer mit samba-tool
erledigen. Allerdings sind dabei ein paar Besonderheiten zu beachten.
Entweder lässt man sich interaktiv nach dem neuen Passwort fragen, z.B. für die Benutzerin namens ‚debra‘:
root@sambaDC1:~$ samba-tool user setpassword debra
New Password:
Retype Password:
root@sambaDC1:~$
Oder es wird auf der Kommandozeile übergeben (hier ein komplexeres mit Leerzeichen, einem Slash und einem für ‚mount.cifs‘ problematischen Komma):
root@sambaDC1:~ $ samba-tool user setpassword debra --newpassword='Top Q/, qwer'
Changed password OK
root@sambaDC1:~ $
ACHTUNG: Das Tool gibt fälschlicherweise auch dann „Changed password OK“ aus, wenn das Passwort nicht kompliziert genug war und deswegen ignoriert wurde! Im interaktiven Modus verhält es sich toleranter, so wird z.B. „123, qwer“ akzeptiert.
2. Mounten von Samba-Freigaben ist dank cifs (Common Internet File System) bzw. smbfs (veraltet) möglich. Unter Debian muss nur das Paket ‚cifs-utils‘ installiert sein, dann kann es auch wieder interaktiv geschehen:
root@smbclient:~ $ mount -t cifs -o username=debra //10.20.30.40/profiles /mnt
Password for debra@//10.20.30.40/profiles: ************
root@smbclient:~ $
Als weitere Mountoption ‚password=…‘ zu verwenden, ist aus mehreren Gründen nicht ratsam, insbesondere wegen der Interpretation von Kommas.
Dazu aus man 8 mount.cifs
: „Note that a password which contains the delimiter character (i.e. a comma ‚,‘) will fail to be parsed correctly on the command line. However, the same password defined in the PASSWD environment variable or via a credentials file (see below) or entered at the password prompt will be read correctly.“
Automatisierbar und sicher wird es dann via Hilfsdatei, in der eben auch diese Sonderzeichen möglich sind:
root@smbclient:~ $ umask 077
root@smbclient:~ $ cat > /etc/cifs-user <<\EOF
> username=debra
> password=Top Q/, qwer
root@smbclient:~ $ EOF
root@smbclient:~ $ umask 022
root@smbclient:~ $ mount -t cifs -o credentials=/etc/cifs-user //10.20.30.40/profiles /mnt