This page shows how to setup a SAMBA server on CentOS 6 x86_64.
I have noticed that whenever I setup a Linux SAMBA server that already has an DNS entry on the Domain Server, you can't 'browse' to the server in Windows. The solution is to set the machine up with an IP and name that haven't been used in AD before.
You must have a CentOS machine already set up in accordance with the the “Install CentOS 6” guide.
This section shows how to setup a fully open file share where anyone can read/write/create/delete files.
The following commands must be run as root.
Install Samba
yum -y install samba
Setup the share directory. If you are using a different disk, now is the time to set this up.
mkdir -p /data/samba/wikifiles chmod -R 777 /data/samba/wikifiles semanage fcontext -a -t samba_share_t '/data/samba/wikifiles(/.*)?' restorecon -R /data/samba/wikifiles
Edit the config file after making a backup
cd /etc/samba
cp smb.conf smb.conf.original
cat > /etc/samba/smb.conf <<'END_OF_TEXT'
[global]
unix charset = UTF-8
dos charset = CP932
workgroup = EXAMPLE-DOMAIN
netbios name = PRINTER
server string = Samba Server Version %v
interfaces = lo eth0 172.16.0.0/24
hosts allow = hosts allow = 127. 172.16.
log file = /var/log/samba/log.%m
max log size = 50
security = share
passdb backend = tdbsam
load printers = yes
cups options = raw
[homes]
comment = Home Directories
browseable = no
writable = yes
; valid users = %S
; valid users = MYDOMAIN\%S
[printers]
comment = All Printers
path = /var/spool/samba
browseable = no
guest ok = no
writable = no
printable = yes
[docgen]
path = /opt/test
writable = yes
guest ok = yes
guest only = yes
create mode = 0777
directory mode = 0777
share modes = yes
END_OF_TEXT
Start the services
service smb start service nmb start
Ensure they start on boot
chkconfig smb on chkconfig nmb on
Open the firewall
iptables -I INPUT -m state --state NEW -m udp -p udp --dport 137 -j ACCEPT iptables -I INPUT -m state --state NEW -m udp -p udp --dport 138 -j ACCEPT iptables -I INPUT -m state --state NEW -m tcp -p tcp --dport 139 -j ACCEPT iptables -I INPUT -m state --state NEW -m tcp -p tcp --dport 445 -j ACCEPT service iptables save service iptables restart
cat >> /etc/init.d/samba <<'END_OF_TEXT'
#!/bin/bash
# chkconfig: 2345 95 20
case $1 in
start)
service smb start
service nmb start
;;
stop)
service smb stop
service nmb stop
;;
restart)
service smb restart
service nmb restart
;;
*)
echo "Usage: samba {start|stop|restart}"
exit 1
esac
exit 0
END_OF_TEXT
chmod u+x /etc/init.d/samba
service samba restart
=Old Notes= Old notes from Ben's time at IBM
mount -t cifs -o username=HURMQNT\stafford,password=$CIFS_PASSWORD //moondisc/mqsiout_s000_x86l /cmvc/mqsi/output/S000/x86_linux_2 mount -t cifs -o username=HURMQNT\stafford,password=******** //moondisc/mqsiout_s000_x86l /cmvc/mqsi/output/S000/x86_linux_2 mount -t cifs -o username=HURMQNT\\stafford,password=$CIFS_PASSWORD //moondisc/mqsiout_s000_x86l /cmvc/mqsi/output/S000/x86_linux_2 mount -t cifs -o username=HURMQNT\\stafford,password=$CIFS_PASSWORD //moondisc/mqsiout_s700_x86l /cmvc/mqsi/output/S000/x86_linux_2 umount /cmvc/mqsi/output/S000/x86_linux_2 mount -t cifs -o username=HURMQNT\\stafford,password=$CIFS_PASSWORD //moondisc/mqsiout_t700_x86l /cmvc/mqsi/output/T800/x86_linux_2 Samba access group MQSIGEN on Moondisc//moondisc/mqsiout_t700_x86l
END_OF_TEXT</code>
chmod u+x /etc/init.d/samba service samba restart chkconfig samba on
net ads join -U administrator
# Check that you can resolve your domain srv record
host -t srv _kerberos._tcp.example.com
mkdir /home/example chmod 550 /home/example/
authconfig \ - -disablecache \ - -enablewinbind \ - -enablewinbindauth \ - -smbsecurity=ads \ - -smbworkgroup=EXAMPLE-DOMAIN \ - -smbrealm=EXAMPLE-DOMAIN.CO.UK \ - -enablewinbindusedefaultdomain \ - -winbindtemplatehomedir=/home/example/%U \ - -winbindtemplateshell=/bin/bash \ - -enablekrb5 \ - -krb5realm=EXAMPLE-DOMAIN.CO.UK \ - -enablekrb5kdcdns \ - -enablekrb5realmdns \ - -enablelocauthorize \ - -enablemkhomedir \ - -enablepamaccess \ - -updateall
yum install samba
iptables -I INPUT -m state - -state NEW -m udp -p udp - -dport 137 -j ACCEPT iptables -I INPUT -m state - -state NEW -m udp -p udp - -dport 138 -j ACCEPT iptables -I INPUT -m state - -state NEW -m tcp -p tcp - -dport 139 -j ACCEPT iptables -I INPUT -m state - -state NEW -m tcp -p tcp - -dport 445 -j ACCEPT service iptables save service iptables restart
cat > /etc/init.d/samba <<'END_OF_TEXT'
#!/bin/bash
# chkconfig: 2345 95 20
case $1 in
start)
service smb start
service nmb start
service winbind start
;;
stop)
service smb stop
service nmb stop
service winbind stop
;;
restart)
service smb restart
service nmb restart
service winbind restart
;;
*)
echo "Usage: samba {start|stop|restart}"
exit 1
esac
exit 0
END_OF_TEXT
chmod u+x /etc/init.d/samba service samba restart chkconfig samba on
net ads join -U administrator
# Check that you can resolve your domain srv record
host -t srv _kerberos._tcp.example.com
mkdir /home/example chmod 550 /home/example/
authconfig \ - -disablecache \ - -enablewinbind \ - -enablewinbindauth \ - -smbsecurity=ads \ - -smbworkgroup=EXAMPLE-DOMAIN \ - -smbrealm=EXAMPLE-DOMAIN.CO.UK \ - -enablewinbindusedefaultdomain \ - -winbindtemplatehomedir=/home/example/%U \ - -winbindtemplateshell=/bin/bash \ - -enablekrb5 \ - -krb5realm=EXAMPLE-DOMAIN.CO.UK \ - -enablekrb5kdcdns \ - -enablekrb5realmdns \ - -enablelocauthorize \ - -enablemkhomedir \ - -enablepamaccess \ - -updateall
vi /etc/samba/smb.conf idmap config emind:backend = rid idmap config emind:base_rid = 500 idmap config emind:range = 500-1000000 'idmap config SAMDOM:backend = ad 'idmap config SAMDOM:schema_mode = rfc2307 'idmap config SAMDOM:range = 500-40000
service samba restart
vi /etc/pam.d/password-auth auth requisite pam_succeed_if.so user ingroup linuxusers debug
sed "s/session\ \ \ \ \ optional\ \ \ \ \ \ pam_oddjob_mkhomedir.so\ umask=\0\0\7\7/session\ \ \ \ \ required\ \ \ \ \ \ pam_mkhomedir.so\ skel=\/etc\/skel\ umask=0022/g" /etc/pam.d/password-auth
mkdir -p /data/datastore/setups chmod -R 777 /data/datastore/setups semanage fcontext -a -t samba_share_t '/data/datastore(/.*)?' restorecon -R /data/datastore
[setups] path = /data/datastore/setups writable = yes guest ok = yes guest only = yes create mode = 0777 directory mode = 0777 share modes = yes valid users = @"EXAMPLE-DOMAIN\\IT DEPT" @"EXAMPLE-DOMAIN\\Domain Admins"
service samba restart
Bad config On Suse systems the Samba config file is /etc/samba/smb.conf. Add the following lines to the global section of the smb.conf file
map to guest = Never restrictanonymous = 2 After saving the file, restart the Samba process with the following command. rcsmb restart