Integrando o Ubuntu 12.04 LTS à base LDAP do campus SJ

De MediaWiki do Campus São José
Ir para: navegação, pesquisa

O script shell foi projetado para rodar em sistema Ubuntu versão 12.04 logo após a instalação. Como há o uso de correções de arquivo (patches), convém não modificar qualquer arquivo manualmente antes deste script:

Arquivo:33284.pdf

#!/bin/bash
 
echo "Atualização do sistema:"
sleep 2
apt-get update
apt-get -y upgrade
 
echo "Instalação de pacotes essenciais:"
sleep 2
apt-get -y install language-pack-pt
apt-get -y install vim
apt-get -y install ntp
apt-get -y install libnss-ldap libpam-ldap ldap-utils nscd
apt-get -y install smbfs smbclient libpam-mount
apt-get -y install patch
 
echo "Configuração do LDAP de São José nos arquivos:"
echo "- /etc/nsswitch.conf"
cp -p /etc/nsswitch.conf /etc/nsswitch.conf-original
cat > /etc/nsswitch.conf << EOF
# 20101103 Integração com LDAP do IF-SC São José (3 linhas)
passwd:         compat ldap
group:          compat ldap
shadow:         compat ldap
 
hosts:          files mdns4_minimal [NOTFOUND=return] dns mdns4
networks:       files
 
protocols:      db files
services:       db files
ethers:         db files
rpc:            db files
 
netgroup:       nis
EOF
 
echo "- /etc/ldap.conf"
cat > /etc/ldap.conf << EOF
# 20101103 Integração com LDAP do IF-SC São José (4 linhas)
base dc=cefetsc,dc=edu,dc=br
uri ldap://200.135.37.117
ldap_version 3
bind_policy soft
EOF
 
echo "- /etc/ldap/ldap.conf"
cat > /etc/ldap/ldap.conf << EOF
# 20101103 Integração com LDAP do IF-SC São José (4 linhas)
base dc=cefetsc,dc=edu,dc=br
uri ldap://200.135.37.117
ldap_version 3
bind_policy soft
 
EOF
 
echo "- /etc/security/group.conf"
patch -p0 -N -r /dev/null << EOF
--- /etc/security/group.conf-original	2010-08-16 23:51:34.000000000 -0300
+++ /etc/security/group.conf	2010-11-03 13:38:13.398772242 -0200
@@ -94,6 +94,10 @@
 #xsh; tty* ;sword;!Wk0900-1800;sound, play
 #xsh; tty* ;*;Al0900-1800;floppy
 
+# 20101103 Integração com LDAP do IF-SC São José (3 linhas)
+login;*;*;Al0000-2400;users,cdrom,floppy,plugdev,audio,dip
+kdm;*;*;Al0000-2400;users,cdrom,floppy,plugdev,audio,dip,video
+lightdm;*;*;Al0000-2400;users,cdrom,floppy,plugdev,audio,dip,video
 #
 # End of group.conf file
 #
EOF
 
echo "- /etc/pam.d/lightdm"
patch -p0 -N -r /dev/null << EOF
--- /etc/pam.d/lightdm-original	2010-09-13 10:48:47.000000000 -0300
+++ /etc/pam.d/lightdm	2010-12-22 12:01:59.358051205 -0200
@@ -4,6 +4,8 @@
 auth    required        pam_env.so readenv=1 envfile=/etc/default/locale
 auth    sufficient      pam_succeed_if.so user ingroup nopasswdlogin
 @include common-auth
+# 20101222 Integração com LDAP do IF-SC São José (1 linha)
+auth		optional			pam_group.so
 auth    optional        pam_gnome_keyring.so
 @include common-account
 session [success=ok ignore=ignore module_unknown=ignore default=bad] pam_selinux.so close
EOF
 
echo "- /etc/pam.d/common-session"
patch -p0 -N -r /dev/null << EOF
--- /etc/pam.d/common-session-original	2010-11-03 13:25:19.540400433 -0200
+++ /etc/pam.d/common-session	2010-11-03 13:38:03.982939340 -0200
@@ -21,7 +21,9 @@
 # since the modules above will each just jump around
 session	required			pam_permit.so
 # and here are more per-package modules (the "Additional" block)
-session	required	pam_unix.so 
+session	required	pam_unix.so
+# 20101103 Integração com LDAP do IF-SC São José (1 linha)
+session	required	pam_mkhomedir.so skel=/etc/skel/ umask=0077
 session	optional	pam_mount.so 
 session	optional			pam_ldap.so 
 session	optional			pam_ck_connector.so nox11
EOF
 
echo "- /etc/security/pam_mount.conf.xml"
patch -p0 -N -r /dev/null << EOF
--- /etc/security/pam_mount.conf.xml-original	2010-05-24 07:33:45.000000000 -0300
+++ /etc/security/pam_mount.conf.xml		2012-05-15 15:19:39.983796788 -0300
@@ -14,6 +14,19 @@
 
 		<!-- Volume definitions -->
 
+			<!-- 20101103 Integração com LDAP do IF-SC São José (3 linhas) -->
+			<volume fstype="smbfs" server="dk" path="homes" mountpoint="/media/pessoal/%(USER)/pessoal"
+				options="dir_mode=0711,iocharset=utf8" />
+			<volume fstype="smbfs" server="dk" path="tele" mountpoint="/media/pessoal/%(USER)/tele"
+				options="iocharset=utf8" />
+			<volume fstype="smbfs" server="dk" path="publico" mountpoint="/media/pessoal/%(USER)/publico"
+				options="iocharset=utf8" />
+			<volume fstype="smbfs" server="dk" path="cgeral" mountpoint="/media/pessoal/%(USER)/cgeral"
+				options="iocharset=utf8" />
+			<volume fstype="smbfs" server="dk" path="rac" mountpoint="/media/pessoal/%(USER)/rac"
+				options="iocharset=utf8" />
+			<volume fstype="smbfs" server="dk" path="licenciatura" mountpoint="/media/pessoal/%(USER)/licenciatura"
+				options="iocharset=utf8" />
 
 		<!-- pam_mount parameters: General tunables -->
 
EOF

echo "- /etc/lightdm/lightdm.conf"
patch -p0 -N -r /dev/null << EOF
--- /etc/lightdm/lightdm.conf-original	2012-05-15 15:52:55.022801552 -0300
+++ /etc/lightdm/lightdm.conf	2012-05-15 15:32:17.600767446 -0300
@@ -2,3 +2,6 @@
 [SeatDefaults]
 user-session=ubuntu
 greeter-session=unity-greeter
+#
+# 20120515 Ederson Torresini: permitindo o login via LDAP
+greeter-show-manual-login=true
EOF

echo "- /etc/cups/client.conf"
cat > /etc/cups/client.conf << EOF
# 20120515 Ederson Torresini: servidor DK
ServerName dk
EOF

Nota: percebe-se, nas últimas linhas do programa, os compartilhamentos do servidor principal de arquivos (DK) que serão montados automaticamente - neste caso 6 (homes, tele, publico, cgeral, rac e licenciatura). Pode-se, pois, adequar o arquivo /etc/security/pam_mount.conf.xml, após a execução do script, adicionando ou removendo compartilhamentos.