Difference between revisions of "Samba"

From CBLFS
Jump to navigationJump to search
m (Updated download url)
 
(47 intermediate revisions by 11 users not shown)
Line 2: Line 2:
 
|-
 
|-
 
!Download Source:
 
!Download Source:
| ftp://us1.samba.org/pub/samba/stable/samba-3.0.23c.tar.gz
+
| http://www.samba.org/samba/ftp/old-versions/samba-{{Samba-Version}}.tar.gz
 
|}
 
|}
  
 
----
 
----
 +
 +
{{Package-Introduction|The Samba package provides file and print services to SMB/CIFS clients and Windows networking to Linux clients. Samba can also be configured as a Windows NT 4.0 Domain Controller replacement (with caveats working with NT PDC's and BDC's), a file/print server acting as a member of a Windows NT 4.0 or Active Directory domain and a NetBIOS (rfc1001/1002) nameserver (which amongst other things provides LAN browsing support).|http://www.samba.org}}
  
 
== Dependencies ==
 
== Dependencies ==
Line 11: Line 13:
 
=== Optional ===
 
=== Optional ===
 
* [[popt]]
 
* [[popt]]
* [[Linux-Pam]]
+
* [[Linux-PAM]]
 
* [[OpenLDAP]]
 
* [[OpenLDAP]]
 
* [[CUPS]]
 
* [[CUPS]]
* [[MIT Krb5]] or [[Heimdal]]
+
* [[MIT krb5]] or [[Heimdal]]
* [[Python]]
 
 
* [[Acl]]
 
* [[Acl]]
 +
 
=== Optional (For the passdb libraries) ===
 
=== Optional (For the passdb libraries) ===
 
* [[LibXML2]]
 
* [[LibXML2]]
Line 24: Line 26:
 
== Configuration Information ==
 
== Configuration Information ==
  
To build Samba against [[Linux-Pam]] pass the following to configure:
+
To build Samba against [[Linux-PAM]] pass one of the following to configure:
 
 
--with-pam
 
 
 
To build Samba against [[Python]] pass the following to configure:
 
  
  --with-python
+
  --with-pam --with-pammodulesdir=/lib/security
 +
--with-pam --with-pammodulesdir=/lib32/security
 +
--with-pam --with-pammodulesdir=/lib64/security
  
 
== Non-Multilib ==
 
== Non-Multilib ==
Line 36: Line 36:
 
Compile the package:
 
Compile the package:
  
  cd source &&
+
  cd source3 &&
 
  ./configure --prefix=/usr --sysconfdir=/etc \
 
  ./configure --prefix=/usr --sysconfdir=/etc \
     --localstatedir=/var --with-piddir=/var/run \
+
     --libdir=/usr/lib --localstatedir=/var \
    --with-fhs --with-smbmount &&
+
    --with-piddir=/var/run --with-fhs --with-cifsmount &&
 
  make
 
  make
  
 
Install the package
 
Install the package
  
  make install &&
+
  make ROOTSBINDIR=/sbin install-everything &&
mv -v /usr/lib/samba/libsmbclient.so /usr/lib &&
 
ln -v -sf ../libsmbclient.so /usr/lib/samba &&
 
ln -v -sf libsmbclient.so /usr/lib/libsmbclient.so.0 &&
 
 
chmod -v 644 /usr/include/lib{smbclient,msrpc}.h &&
 
 
install -v -m755 nsswitch/libnss_win{s,bind}.so /lib &&
 
ln -v -sf libnss_winbind.so /lib/libnss_winbind.so.2 &&
 
ln -v -sf libnss_wins.so /lib/libnss_wins.so.2 &&
 
 
if [ -f nsswitch/pam_winbind.so ]; then
 
    install -v -m755 nsswitch/pam_winbind.so /lib/security
 
fi &&
 
 
   
 
   
 
  install -v -m644 ../examples/smb.conf.default /etc/samba &&
 
  install -v -m644 ../examples/smb.conf.default /etc/samba &&
 
   
 
   
  install -v -m755 -d /usr/share/doc/samba-3.0.23c &&
+
  install -v -m755 -d /usr/share/doc/samba-{{Samba-Version}} &&
  install -v -m644 ../docs/*.pdf /usr/share/doc/samba-3.0.23c &&
+
  install -v -m644 ../docs/*.pdf /usr/share/doc/samba-{{Samba-Version}} &&
  ln -v -s ../../samba/swat  /usr/share/doc/samba-3.0.23c
+
  ln -v -s ../../samba/swat  /usr/share/doc/samba-{{Samba-Version}}
 
 
If you passed ''--with-python'' to the configure script issue the following command to install the [[Python]] extensions:
 
 
 
make python_install
 
  
 
== Multilib ==
 
== Multilib ==
Line 76: Line 59:
  
 
  export USE_ARCH=32 &&
 
  export USE_ARCH=32 &&
  cd source &&
+
  cd source3 &&
 
  CC="gcc ${BUILD32}" ./configure --prefix=/usr --sysconfdir=/etc \
 
  CC="gcc ${BUILD32}" ./configure --prefix=/usr --sysconfdir=/etc \
     --localstatedir=/var --with-piddir=/var/run \
+
     --libdir=/usr/lib --localstatedir=/var \
    --with-fhs --with-smbmount &&
+
    --with-piddir=/var/run --with-fhs --with-cifsmount &&
 
  make
 
  make
  
 
Install the package
 
Install the package
  
  make install &&
+
  make ROOTSBINDIR=/sbin install-everything
mv -v /usr/lib/samba/libsmbclient.so /usr/lib &&
 
ln -v -sf ../libsmbclient.so /usr/lib/samba &&
 
ln -v -sf libsmbclient.so /usr/lib/libsmbclient.so.0 &&
 
 
chmod -v 644 /usr/include/lib{smbclient,msrpc}.h &&
 
 
install -v -m755 nsswitch/libnss_win{s,bind}.so /lib &&
 
ln -v -sf libnss_winbind.so /lib/libnss_winbind.so.2 &&
 
ln -v -sf libnss_wins.so /lib/libnss_wins.so.2 &&
 
 
if [ -f nsswitch/pam_winbind.so ]; then
 
    install -v -m755 nsswitch/pam_winbind.so /lib/security
 
fi
 
 
 
If you passed ''--with-python'' to the configure script issue the following command to install the [[Python]] extensions:
 
 
 
make python_install
 
  
 
Clean up the enviornment:
 
Clean up the enviornment:
Line 108: Line 74:
  
 
=== N32 ===
 
=== N32 ===
 
  
 
Compile the package:
 
Compile the package:
  
 
  export USE_ARCH=n32 &&
 
  export USE_ARCH=n32 &&
  cd source &&
+
  cd source3 &&
 
  CC="gcc ${BUILDN32}" ./configure --prefix=/usr --sysconfdir=/etc \
 
  CC="gcc ${BUILDN32}" ./configure --prefix=/usr --sysconfdir=/etc \
     --libdir=/usr/lib32 --localstatedir=/var --with-piddir=/var/run \
+
     --libdir=/usr/lib32 --localstatedir=/var \
    --with-fhs --with-smbmount &&
+
    --with-piddir=/var/run --with-fhs --with-cifsmount &&
 
  make
 
  make
  
 
Install the package
 
Install the package
  
  make install &&
+
  make ROOTSBINDIR=/sbin install-everything
mv -v /usr/lib32/samba/libsmbclient.so /usr/lib32 &&
 
ln -v -sf ../libsmbclient.so /usr/lib32/samba &&
 
ln -v -sf libsmbclient.so /usr/lib32/libsmbclient.so.0 &&
 
 
chmod -v 644 /usr/include/lib32{smbclient,msrpc}.h &&
 
 
install -v -m755 nsswitch/libnss_win{s,bind}.so /lib32 &&
 
ln -v -sf libnss_winbind.so /lib32/libnss_winbind.so.2 &&
 
ln -v -sf libnss_wins.so /lib32/libnss_wins.so.2 &&
 
 
if [ -f nsswitch/pam_winbind.so ]; then
 
    install -v -m755 nsswitch/pam_winbind.so /lib32/security
 
fi
 
 
 
If you passed ''--with-python'' to the configure script issue the following command to install the [[Python]] extensions:
 
 
 
make python_install
 
  
 
Clean up the enviornment:
 
Clean up the enviornment:
Line 145: Line 93:
  
 
=== 64Bit ===
 
=== 64Bit ===
 
  
 
Compile the package:
 
Compile the package:
  
 
  export USE_ARCH=64 &&
 
  export USE_ARCH=64 &&
  cd source &&
+
  cd source3 &&
 
  CC="gcc ${BUILD64}" ./configure --prefix=/usr --sysconfdir=/etc \
 
  CC="gcc ${BUILD64}" ./configure --prefix=/usr --sysconfdir=/etc \
     --libdir=/usr/lib64 --localstatedir=/var --with-piddir=/var/run \
+
     --libdir=/usr/lib64 --localstatedir=/var \
    --with-fhs --with-smbmount &&
+
    --with-piddir=/var/run --with-fhs --with-cifsmount &&
 
  make
 
  make
  
 
Install the package
 
Install the package
  
  make install &&
+
  make ROOTSBINDIR=/sbin install-everything &&
mv -v /usr/lib64/samba/libsmbclient.so /usr/lib64 &&
 
ln -v -sf ../libsmbclient.so /usr/lib64/samba &&
 
ln -v -sf libsmbclient.so /usr/lib64/libsmbclient.so.0 &&
 
 
chmod -v 644 /usr/include/lib64{smbclient,msrpc}.h &&
 
 
install -v -m755 nsswitch/libnss_win{s,bind}.so /lib64 &&
 
ln -v -sf libnss_winbind.so /lib64/libnss_winbind.so.2 &&
 
ln -v -sf libnss_wins.so /lib64/libnss_wins.so.2 &&
 
 
if [ -f nsswitch/pam_winbind.so ]; then
 
    install -v -m755 nsswitch/pam_winbind.so /lib64/security
 
fi &&
 
 
   
 
   
 
  install -v -m644 ../examples/smb.conf.default /etc/samba &&
 
  install -v -m644 ../examples/smb.conf.default /etc/samba &&
 
   
 
   
  install -v -m755 -d /usr/share/doc/samba-3.0.23c &&
+
  install -v -m755 -d /usr/share/doc/samba-{{Samba-Version}} &&
  install -v -m644 ../docs/*.pdf /usr/share/doc/samba-3.0.23c &&
+
  install -v -m644 ../docs/*.pdf /usr/share/doc/samba-{{Samba-Version}} &&
  ln -v -s ../../samba/swat  /usr/share/doc/samba-3.0.23c
+
  ln -v -s ../../samba/swat  /usr/share/doc/samba-{{Samba-Version}}
 
 
If you passed ''--with-python'' to the configure script issue the following command to install the [[Python]] extensions:
 
 
 
make python_install
 
  
 
Clean up the enviornment:
 
Clean up the enviornment:
Line 189: Line 119:
 
== Configuring ==
 
== Configuring ==
  
=== Mounting Shares by Unprivileged Users ===
+
=== Bootscript ===
 +
 
 +
Install the init script for samba included in the [[bootscripts]] package:
 +
 
 +
make install-samba
 +
 
 +
Install the init script for winbind included in the [[bootscripts]] package:
 +
 
 +
make install-winbind
 +
 
 +
=== Creating /etc/samba/smb.conf ===
 +
 
 +
== Client Only ==
 +
 
 +
Create a basic configuration file:
 +
cat > /etc/samba/smb.conf << "EOF"
 +
[global]
 +
    workgroup = MYGROUP
 +
    dos charset = cp850
 +
    unix charset = ISO-8859-1
 +
EOF
 +
 
 +
== Client + Server Support ==
 +
 
 +
Add user NoBody for the server to run under. This is not needed of only using the client side, or if user/group NoBody already exist
 +
 
 +
groupadd -g 65534 nobody &&
 +
useradd -c "Nobody" -d /dev/null \
 +
        -u 65534 -g nobody -s /bin/false nobody
 +
 
 +
Create a share for each user's home directory, and share all printers to Windows machines:
 +
 
 +
cat > /etc/samba/smb.conf << "EOF"
 +
 +
[global]
 +
    workgroup = MYGROUP
 +
    dos charset = cp850
 +
    unix charset = ISO-8859-1
 +
 +
[homes]
 +
    comment = Home Directories
 +
    browseable = no
 +
    writable = yes
 +
 +
[printers]
 +
    comment = All Printers
 +
    path = /var/spool/samba
 +
    browseable = no
 +
    guest ok = no
 +
    printable = yes
 +
EOF
 +
 
 +
At this point, you will most likely want to install [[SWAT]] (Samba Web Administration Tool) to manage /etc/samba/smb.conf from a web browser.
 +
 
 +
== Adding Samba Users ==
  
For an unprivileged user to run '''smbmount''' and '''smbumount''' the comands must my setuid root:
+
smbpasswd -a
  
chmod -v 4755 /usr/bin/smb{mnt,umount}
+
[[Category:Servers]]

Latest revision as of 14:07, 24 January 2011

Download Source: http://www.samba.org/samba/ftp/old-versions/samba-3.5.6.tar.gz

Introduction to Samba

The Samba package provides file and print services to SMB/CIFS clients and Windows networking to Linux clients. Samba can also be configured as a Windows NT 4.0 Domain Controller replacement (with caveats working with NT PDC's and BDC's), a file/print server acting as a member of a Windows NT 4.0 or Active Directory domain and a NetBIOS (rfc1001/1002) nameserver (which amongst other things provides LAN browsing support).

Project Homepage: http://www.samba.org

Dependencies

Optional

Optional (For the passdb libraries)

Configuration Information

To build Samba against Linux-PAM pass one of the following to configure:

--with-pam --with-pammodulesdir=/lib/security
--with-pam --with-pammodulesdir=/lib32/security
--with-pam --with-pammodulesdir=/lib64/security

Non-Multilib

Compile the package:

cd source3 &&
./configure --prefix=/usr --sysconfdir=/etc \
    --libdir=/usr/lib --localstatedir=/var \
    --with-piddir=/var/run --with-fhs --with-cifsmount &&
make

Install the package

make ROOTSBINDIR=/sbin install-everything &&

install -v -m644 ../examples/smb.conf.default /etc/samba &&

install -v -m755 -d /usr/share/doc/samba-3.5.6 &&
install -v -m644 ../docs/*.pdf /usr/share/doc/samba-3.5.6 &&
ln -v -s ../../samba/swat  /usr/share/doc/samba-3.5.6

Multilib

32Bit

Compile the package:

export USE_ARCH=32 &&
cd source3 &&
CC="gcc ${BUILD32}" ./configure --prefix=/usr --sysconfdir=/etc \
    --libdir=/usr/lib --localstatedir=/var \
    --with-piddir=/var/run --with-fhs --with-cifsmount &&
make

Install the package

make ROOTSBINDIR=/sbin install-everything

Clean up the enviornment:

unset USE_ARCH

N32

Compile the package:

export USE_ARCH=n32 &&
cd source3 &&
CC="gcc ${BUILDN32}" ./configure --prefix=/usr --sysconfdir=/etc \
    --libdir=/usr/lib32 --localstatedir=/var \
    --with-piddir=/var/run --with-fhs --with-cifsmount &&
make

Install the package

make ROOTSBINDIR=/sbin install-everything

Clean up the enviornment:

unset USE_ARCH

64Bit

Compile the package:

export USE_ARCH=64 &&
cd source3 &&
CC="gcc ${BUILD64}" ./configure --prefix=/usr --sysconfdir=/etc \
    --libdir=/usr/lib64 --localstatedir=/var \
    --with-piddir=/var/run --with-fhs --with-cifsmount &&
make

Install the package

make ROOTSBINDIR=/sbin install-everything &&

install -v -m644 ../examples/smb.conf.default /etc/samba &&

install -v -m755 -d /usr/share/doc/samba-3.5.6 &&
install -v -m644 ../docs/*.pdf /usr/share/doc/samba-3.5.6 &&
ln -v -s ../../samba/swat  /usr/share/doc/samba-3.5.6

Clean up the enviornment:

unset USE_ARCH

Configuring

Bootscript

Install the init script for samba included in the bootscripts package:

make install-samba

Install the init script for winbind included in the bootscripts package:

make install-winbind

Creating /etc/samba/smb.conf

Client Only

Create a basic configuration file:

cat > /etc/samba/smb.conf << "EOF"
[global]
    workgroup = MYGROUP
    dos charset = cp850
    unix charset = ISO-8859-1
EOF

Client + Server Support

Add user NoBody for the server to run under. This is not needed of only using the client side, or if user/group NoBody already exist

groupadd -g 65534 nobody &&
useradd -c "Nobody" -d /dev/null \
       -u 65534 -g nobody -s /bin/false nobody

Create a share for each user's home directory, and share all printers to Windows machines:

cat > /etc/samba/smb.conf << "EOF"

[global]
    workgroup = MYGROUP
    dos charset = cp850
    unix charset = ISO-8859-1

[homes]
    comment = Home Directories
    browseable = no
    writable = yes

[printers]
    comment = All Printers
    path = /var/spool/samba
    browseable = no
    guest ok = no
    printable = yes
EOF

At this point, you will most likely want to install SWAT (Samba Web Administration Tool) to manage /etc/samba/smb.conf from a web browser.

Adding Samba Users

smbpasswd -a
Retrieved from "?title=Samba&oldid=20952"