(Aktualisiert diese, wie ich ausgebügelt einige der Knicke)
Das obige ist verwirrend. Sprechen Sie über eine SMB-Freigabe, die von einem Linux-Server oder einem Windows-Server freigegeben wurde?
Ich habe dies gerade überprüft (ich habe mein 'C'-Laufwerk) auf meinem Linux-Client gemountet.
Natürlich funktionieren unter Windows im Stammverzeichnis alle Symlinks. Allerdings sehe ich auf meinem Linux-Client
s# ll /athenae
total 100663718
drwxr-xr-x 2 0 Sep 9 12:53 $RECYCLE.BIN/
-rwxr-xr-x 1 53342 Dec 4 2011 Cygwin-Terminal.ico*
-rwxr-xr-x 1 51 Dec 10 2009 Cygwin.bat*
-rwxr-xr-x 1 157097 Dec 4 2011 Cygwin.ico*
l--------- 1 0 Jul 16 2013 D -> /??/UNC/Ishtar/Documents
drwxr-xr-x 2 0 Jul 13 2009 Documents and Settings/
drwxr-xr-x 2 0 May 4 2014 Drivers/
drwxr-xr-x 2 0 Jan 16 03:21 Fraps/
l--------- 1 0 Nov 29 2012 Home -> /??/C:/Users/
dr-xr-xr-x 2 0 Aug 28 2013 MSOCache/
drwxr-xr-x 2 0 Sep 18 16:01 PortableApps/
drwxr-xr-x 2 0 Nov 6 19:45 Prog/
drwxr-xr-x 2 0 Jan 17 15:35 Program Files/
drwxr-xr-x 2 0 Jan 17 16:36 Program Files (x86)/
drwxr-xr-x 2 0 Dec 30 14:24 ProgramData/
drwxr-xr-x 2 0 Aug 28 2013 Python27/
drwxr-xr-x 2 0 Aug 28 2013 RAMDISK/
drwxr-xr-x 2 0 Nov 2 2013 Recovery/
drwxr-xr-x 2 0 Oct 11 08:24 Recycled/
l--------- 1 0 Mar 28 2013 Share -> /??/UNC/Bliss/Share
drwxr-xr-x 2 0 Jul 6 2011 Symbols/
drwxr-xr-x 2 0 Jan 20 22:13 System Volume Information/
drwxr-xr-x 2 0 Sep 9 17:44 Users/
drwxr-xr-x 2 0 Jan 12 2014 Win/
drwxr-xr-x 2 0 Jan 17 16:36 Windows/
l--------- 1 0 Mar 21 2014 bin -> /??/C:/windows/system32/cygwin/bin ## (note, link in W/S32/Cyg/bin points to 64-bit cyg)
-rwxr-xr-x 1 27 Apr 19 2011 boot*
drwxr-xr-x 2 0 Jul 2 2010 boot.d/
-rwxr-xr-x 1 90 Apr 19 2011 boot.ini*
drwxr-xr-x 2 0 Jan 12 2014 cygcommon/
drwxr-xr-x 2 0 Oct 8 17:06 cygwin/
drwxr-xr-x 2 0 Jan 9 20:01 cygwin64/
drwxr-xr-x 2 0 Nov 23 03:34 dev/
drwxr-xr-x 2 0 May 17 2014 devv-/
l--------- 1 0 Apr 11 2014 etc
-rwxr-xr-x 1 208876 Feb 17 2009 grldr*
drwxr-xr-x 2 0 Oct 12 12:58 inetpub/
l--------- 1 0 Jan 13 2014 lib
l--------- 1 0 Dec 16 2009 m -> /??/UNC/Bliss/Music
drwxr-xr-x 2 0 Jun 10 2012 mnt/
drwxr-xr-x 2 0 Jan 12 2014 opt/
l--------- 1 0 Jul 12 2010 p -> /??/UNC/Bliss/Pictures
-rwxr-xr-x 1 103079215104 Jan 10 21:21 pagefile.sys*
drwxr-xr-x 2 0 Jan 23 2014 proc/
l--------- 1 0 Apr 21 2013 prog64 -> Program Files/
-rwxr-xr-x 1 1372 Oct 12 01:37 pulseaudio.exe.stackdump*
l--------- 1 0 Jan 13 2014 sbin
l--------- 1 0 Jan 12 2014 temp -> tmp/
drwxr-xr-x 2 0 Jan 20 23:40 tmp/
l--------- 1 0 Jan 13 2014 usr
l--------- 1 0 Jan 13 2014 var
drwxr-xr-x 2 0 Aug 28 2013 windowsearch/
Alle Links werden sowohl unter Windows (7) als auch unter Linux aufgelöst. Früher hatte ich einige in Rot, was darauf hinweist, dass der Symlink nicht aufgelöst werden konnte, aber zusätzlich dazu, dass die Pfade sowohl unter Windows als auch unter Linux funktionieren, ist dies eine Selbstverständlichkeit (einige hatte ich mit relativen Links versucht, die ich durcheinander gebracht habe) Hauptproblem waren diejenigen, die angaben, dass "JUNCTION" und nicht "SYMLINKD" fehlerhaft waren (wie in "cmd.exe" angegeben und ein "dir" an der Wurzel dieser Freigabe ausgeführt).
Jetzt weiß ich, dass es im Allgemeinen Unterschiede in der Implementierung gibt, ABER die Symlink [d] -Implementierungen sind kompatibel (vorausgesetzt, die Pfade sind korrekt. Unter Windows zeigt "cmd, dir":
11/29/2012 07:14 PM <SYMLINKD> Home [C:\Users]
Unter Windows in Cygwin wird Folgendes angezeigt:
lrwxrwxrwx 1 6 Nov 29 2012 Home -> /Users/
und unter Linux mit dem CIFS-Client wird Folgendes angezeigt:
l--------- 1 0 Nov 29 2012 Home -> /??/C:/Users/
Windows speichert seine Symlinks (erstellt mit mklink oder mklink / d für Verzeichnisse) im selben Format mit einem Windows-Pfad.
Linux ist viel vielseitiger in dem, was es erlaubt, und Sie können ein Verzeichnis namens "/ ??" erstellen. in "/" brauchte ich darunter 2 Einträge:
lrwxrwxrwx 1 10 Feb 28 15:43 C: -> ../Athenae/
drwxrwx---+ 3 44 Feb 28 16:13 UNC/
Der erste ist ein regulärer Linux-Symlink, der zweite ist ein Verzeichnis.
Athenae ist die Windows-Maschine, die das Laufwerk 'root (C :)' auf den Linux-Client exportiert. auf dem Linux-Client, der bei / Athenae gemountet ist. Jeder Verweis auf C: aus dem Windows-Symlink verweist also auf das Stammverzeichnis der gemounteten Freigabe unter Linux.
Unter UNC habe ich die Hostnamen angegeben, die ich zum Laufen bringen wollte (alle denselben Namen für den 1-Linux-Server, aber an verschiedenen Stellen wird unterschiedlich darauf verwiesen, da es sich auch um einen Domänencontroller handelt):
lrwxrwxrwx 1 6 Feb 28 16:12 Bliss -> Ishtar/
drwxrwx---+ 2 61 Feb 28 16:18 Ishtar/
lrwxrwxrwx 1 6 Feb 28 16:13 ishtar -> Ishtar/
(Während der Fall unter Windows keine Rolle spielt, spielt er unter Linux eine alternative Groß- und Kleinschreibung des Hostnamens und des Domänennamens. Beide zeigen auf ein echtes Verzeichnis, in das ich die zu lösenden Symlinks eingefügt habe.) Wobei ich HINWEIS: Einige dieser Freigaben sind "USER" -spezifisch. Da Sie (noch ...?) keinen "Variablennamen" in einen Symlink einfügen können ln -s '$HOME/Documents' Documents
, musste ich den Dokument-Symlink auf einen festen Speicherort verweisen. - In meinem Fall kein Problem, da ich der einzige bin, der versucht, die Symlinks dieser gemounteten Windows-Freigabe mit dem Linux-CIFS-Client aufzulösen.
(Viele alte Gespräche über die Verbindungsprobleme, die ich zuvor hatte, wurden beseitigt).
Wenn Sie von einem Linux-basierten Server mit Samba mounten, gelten andere Regeln. Samba kann jedoch Linux-Symlinks folgen, wenn es mit Linux-Erweiterungen, Widelinks und dem Parametersatz "Client Managed Wide Links = Ja" konfiguriert ist Der spätere Parameter wurde " falsch " umbenannt in:
allow insecure wide links = yes
Da die meisten Windows-Administratoren es Benutzern nicht erlauben, sich bei ihrem Server anzumelden, wurde dies als Fehler in ihrer Sicherheitsrichtlinie angesehen. Für Windows-Administratoren, die Berechtigungen und ACLs verwenden, um den Zugriff zu steuern, und "vertrauenswürdige Benutzer" haben (ich und Mitbewohner im Grunde), war dies kein Fehler, sondern ein Segen.
Alles hängt von Ihrer 'Sicherheitsrichtlinie' ab ... ;-)
Hoffe, dies schafft Klarheit für die Freigaben, die von Windows aus freigegeben werden und auf die über Linux (oder Windows) zugegriffen wird ...
ps keine Angriffe gemeint oder impliziert! ;-);
---- Die neuesten cifs-utils scheinen alle unter Windows funktionierenden Symlinks sowie alle Linux-Symlinks anzuzeigen (dh wenn das Ziel vorhanden ist, funktionieren sie):
Ishtar:/athenae> uname -a
Linux Ishtar 3.19.3-Isht-Van #1 SMP PREEMPT Tue Apr 7 21:40:02 PDT 2015 x86_64 x86_64 x86_64 GNU/Linux
Ishtar:/athenae> ll |grep -- '->'|sed 's/^/ /'
l--------- 1 0 Jul 16 2013 D -> /??/UNC/Ishtar/Documents/
l--------- 1 0 Feb 28 16:38 M -> /??/UNC/Bliss/Music/
l--------- 1 0 Feb 28 16:10 P -> /??/UNC/Bliss/Pictures/
l--------- 1 0 Mar 28 2013 Share -> /??/UNC/Bliss/Share/
l--------- 1 0 Mar 21 2014 bin -> /??/C:/windows/system32/cygwin/bin/
l--------- 1 0 Feb 28 15:34 etc -> /??/C:/Windows/System32/cygwin/etc/
l--------- 1 0 Mar 5 14:32 lib -> /??/C:/Windows/System32/cygwin/lib/
l--------- 1 0 May 14 07:15 opt -> /??/C:/Windows/System32/cygwin/opt/
l--------- 1 0 Apr 21 2013 prog64 -> Program Files/
l--------- 1 0 Mar 5 14:33 sbin -> /??/C:/Windows/System32/cygwin/sbin/
l--------- 1 0 Jan 12 2014 temp -> tmp/
l--------- 1 0 Mar 5 14:35 usr -> /??/C:/Windows/System32/cygwin/usr/
l--------- 1 0 Mar 5 14:35 var -> /??/C:/Windows/System32/cygwin/var/
Alle diese Links "lösen" sich auf und zeigen auf das, was sie sollen ... Auf der Linux-Box.
Umgekehrt - Linux-Symlinks - werden sie auf einem Windows-Client nicht als "Symlinks" angesehen, aber ein Linux-Client kann Windows-Symlinks als solche anzeigen und sie kopieren oder ihnen folgen. Dies verwendet cifs-utils-6.4-3.2.2.x86_64.
Ich finde das erstaunlich ... Ich sollte in der Lage sein, eine vollständige 'tar'-Sicherung unter Linux durchzuführen (wenn die SID-> UID-Zuordnung funktioniert, sollte sie sogar den richtigen Besitz und die richtigen ACLs haben) ....