DEV Community

Duygu Ölmez for Açıklab

Posted on • Updated on

CentOS 8 Samba Derleme

Başlamadan Dikkat Edilmesi Gerekenler

  • Samba için gerekli olan servisler dil bağımlı olduğundan kurulan sunucunun dilinin ingilizce olması gerekmektedir.
  • Rpm tabanlı işletim sistemlerinde ssh ile uzak sunucuya bağlanırken çevre değişkenleri ile birlikte fiziksel makinedeki samba-client ayarları, dil ayarları komutları çalıştırırken hatalara neden olabilmektedir. En garanti yöntem olarak sunucunun kendi terminali üzerinde bu komutu çalıştırmak olacaktır.

Samba Derleme

1- Depo güncellenir ve derlemek için gerekli olan paketler yüklenir.

sudo yum config-manager --set-enable  PowerTools
sudo yum update -y
sudo yum groups -y install "Development Tools"
sudo yum -y install epel-release
sudo yum -y install python3-iniparse libldb libtalloc libtdb libtevent python3-devel gnutls-devel libacl-devel openldap-devel pam-devel readline-devel krb5-devel cups-devel
sudo yum -y install python3-devel lmdb-devel lmdb gpgme-devel jansson-devel libarchive-devel rpcgen

2- Kurulmak istenen depo versiyonu bit değişkene atanır. Versiyon, Samba deposundaki listeden seçilebilir. (Örneğin: 4.11.6)

Bu aşamadan sonra yapılacak işlemlerde sürekli versiyon bilgisi kullanılacak. Farklı versiyonlar denenmek istediğinde tek tek komutlarda düzenleme yapmak yerine versiyon bilgisini değişkende tutarak $sambaver şeklinde kullanmak kolaylık sağlar.

sambaver=4.11.6

3- /usr/src dizinine gidilerek samba paketleri buraya çekilir. (Genellikle kaynağından indirilip yeniden derlenmek istenen paketler burada derlenir, darklı bir dizin de kullanılabilir.)

cd /usr/src
curl -O https://download.samba.org/pub/samba/stable/samba-$sambaver.tar.gz

4- İndirilen tar dosyası açılır ve çıkartılan dizin içerisine gidilir

tar xvfz samba-$sambaver.tar.gz
cd samba-$sambaver

5- Gerekli optionlar seçilir ve derleme işlemi yapılır

./configure --prefix=/usr --localstatedir=/var --with-configdir=/etc/samba --libdir=/usr/lib64 --with-modulesdir=/usr/lib64/samba --with-pammodulesdir=/lib64/security --with-lockdir=/var/lib/samba --with-logfilebase=/var/log/samba --with-piddir=/run/samba --with-privatedir=/etc/samba --enable-cups --with-acl-support --with-ads --with-automount --enable-fhs --with-pam --with-quotas --with-shared-modules=idmap_rid,idmap_ad,idmap_hash,idmap_adex --with-syslog --with-utmp --with-dnsupdate
make
make install

6- Samba servisi oluşturulur

echo """[Unit]
Description=Samba AD Daemon
Wants=network-online.target
After=network.target network-online.target rsyslog.service
[Service]
Type=forking
PIDFile=/run/samba/samba.pid
LimitNOFILE=16384
ExecStart=/usr/sbin/samba --daemon
ExecReload=/bin/kill -HUP $MAINPID
[Install]
WantedBy=multi-user.target""" > samba4.service
sudo mv samba4.service /usr/lib/systemd/system/

7- Bu aşamada samba kurulumunu derleyerek tamamlamış oluyoruz. Fakat henüz bir domain mevcut değil. Yeni bir domain oluşturmak için aşağıdaki komutu kullanabiliriz.

samba-tool domain provision --server-role=dc --use-rfc2307 --dns-backend=SAMBA_INTERNAL --realm=DUYGULAB.TEST.NET --domain=DUYGULAB --adminpass=Passw0rd

8- Samba servisi yeniden başlatılır ve başlangıçta çalışması için aktif edilir.

systemctl start samba4.service
systemctl enable samba4.service
systemctl status samba4.service

Top comments (0)