Poprawna odpowiedź to Samba, bo jest to dedykowana usługa w systemach Linux/Unix do udostępniania zasobów w sieciach z komputerami z systemem Windows. Samba implementuje protokoły SMB/CIFS, czyli dokładnie ten sam mechanizm, z którego korzysta Windows przy udostępnianiu folderów sieciowych i drukarek. Dzięki temu stacja z Linuksem może „udawać” serwer plików Windows, do którego użytkownik podłącza się normalnie przez Eksplorator Windows (np. wpisując \\serwer\udział). Z mojego doświadczenia, w małych firmach i szkołach Samba bardzo często pracuje jako główny serwer plików, domeny lub prosty kontroler logowania, bo jest darmowa, stabilna i dobrze udokumentowana. W praktyce administrator konfiguruje plik smb.conf, definiuje udziały (tzw. shares), ustawia uprawnienia, mapowanie użytkowników i ewentualnie integrację z usługą katalogową (np. Active Directory). Użytkownicy Windows widzą wtedy zasoby linuksowego serwera tak, jakby to był zwykły serwer Windows – mogą podłączać dyski sieciowe, zapisywać dokumenty, korzystać z drukarek sieciowych, stosować uprawnienia oparte o konta domenowe. Dobrą praktyką jest łączenie Samby z systemem uprawnień Linuksa (UID, GID, prawa dostępu) oraz stosowanie szyfrowania połączeń, silnych haseł i aktualnych wersji protokołu SMB (np. wyłączenie starych, dziurawych wersji SMB1). W wielu środowiskach stosuje się też rozdzielenie ról: Samba jako serwer plików i wydruku, a inne serwisy (WWW, SSH) na osobnych maszynach lub kontenerach, co zwiększa bezpieczeństwo i ułatwia administrację. Moim zdaniem znajomość podstaw konfiguracji Samby to absolutny must-have dla każdego, kto myśli poważnie o administracji mieszanymi sieciami Windows/Linux.
W tym pytaniu łatwo się pomylić, bo większość wymienionych usług kojarzy się z serwerami, ale pełnią one zupełnie inne role. Kluczowe jest zrozumienie, jaki protokół wykorzystuje Windows do udostępniania plików i drukarek. Komputery z systemem Windows korzystają z protokołów SMB/CIFS, a w świecie Linuksa właśnie Samba implementuje ten zestaw protokołów i pozwala systemowi Linux „wejść” w świat sieci Windows. To nie jest zwykły serwer WWW ani narzędzie zdalnego logowania, tylko konkretna implementacja usług plików i drukarek zgodna ze standardami Microsoftu. Usługa IIS to Internet Information Services, czyli serwer WWW i aplikacji dla systemu Windows. Działa on tylko na Windowsie i służy głównie do hostowania stron internetowych, usług webowych, ewentualnie aplikacji ASP.NET. Samo postawienie IIS-a nie sprawi, że Linux zacznie współdzielić pliki z Windows, bo to zupełnie inny protokół (HTTP/HTTPS, a nie SMB). Częsty błąd myślowy to utożsamianie „serwera” jako pojęcia ogólnego – skoro coś jest serwerem, to niby może wszystko. W praktyce każdy serwer realizuje określone protokoły i funkcje. Protokół SSH kojarzy się z Linuksem i administracją, ale służy do bezpiecznego zdalnego logowania i tunelowania, a nie do współdzielenia plików w sposób natywny dla Windows. Owszem, można przez SSH przesyłać pliki (SCP, SFTP), jednak użytkownik Windows nie zobaczy takiego serwera jako zwykłego „dysku sieciowego” w otoczeniu sieciowym. To bardziej narzędzie administratora niż komfortowy serwer plików dla biura. Serwer Apache to bardzo popularny serwer HTTP w systemach Linux i nie tylko. Świetnie nadaje się do hostowania stron WWW, API, paneli administracyjnych, ale nie do klasycznego udostępniania folderów i drukarek w sieci Windows. Można co prawda udostępniać pliki przez HTTP, lecz użytkownik nie będzie miał typowej integracji z Eksploratorem Windows, uprawnieniami NTFS, mapowaniem dysków sieciowych czy drukowaniem jak na lokalnej drukarce. Podsumowując, typowym błędem jest patrzenie na nazwy usług bez zrozumienia, jakie protokoły sieciowe obsługują i z jakiego klienta mają być używane. Do współpracy Linuksa z Windows w zakresie plików i drukarek standardem branżowym jest Samba, bo implementuje właśnie SMB/CIFS, czyli to, czego oczekuje system Windows w sieci lokalnej.