Ubuntu LAMP server kurulumu

LAMP, bir web sunucusunun temel bileşenleri olan Linux, Apache, Mysql ve PHP bileşenlerinin ilk harflerinden oluşan bir kısaltmadır. Linux web sunucusunun üzerinde çalıştırılacağı işletim sistemi, Apache linux işletim sisteminde çalışacak web sunucusu, Mysql web sitelerinin kullanacağı ilişkisel veri tabanı ve PHP de web sitelerinin kodlanmasında kullanılan sunucu tabanlı programlama dili olarak tanımlanabilir.

Günümüzde en çok tercih edilen Linux dağıtımı olan Ubuntu’ da lamp server ı tek bir komutla kurabilirsiniz. Bunun için konsole programını  açarak aşağıdaki komutu yazın ve çalıştırın.

[bash]sudo apt-get install lamp-server^[/bash]

Bu komutu çalıştırdıktan sonra gerekli paketler indirilecek ve kurulacaktır. Kurulum sırasında MYSQL sunucusu yetkili kullanıcısına(root) bir şifre tanımlamanızı isteyecektir.

mysqlroot

istediğiniz şifreyi yazarak enter a basın ve karşınıza gelen şifre doğrulama ekranına şifreyi  tekrar yazarak enter a basın. Şifrei tanımladıktan sonra geri kalan paketlerde kurulacak ve LAMP SERVER kurulmuş olacaktır.

Web tarayıcınızda adres çubuğuna “localhost” yazdığınızda karşınıza aşağıdaki sayfa geliyorsa apache kurulumunu z tamamlanmış demektir.

apacheiswork

Artık /var/www/html/ dizinine sitenizin dosyalarını kopyalayarak sitenizi localhost adresinde çalıştırabilirsiniz.

Devam

Postfix, Dovecot ve MySQL ile Mail Server Kurulumu

Giriş

Bu yazı sonunda  sanal  domainler ,kullanıcılar ve takma adlar oluşturabileceğiniz bir mail sunucusu kurmuş olacaksınız.Ayrıca SpamAssassin ile  spam  mesajlara karşı korunmuş olacaksınız.

[box type="info"]

Başlamadan önce sunucunuzda olması  gerekenler:

* Sunucunuza yönlendirilmiş bir domain (setup domain)
* Kurulu ve çalışan  MySQL  (setup mysql)
* Root yetkili bir kullanıcı (setup new users– omit step 5)
* FQDN tanımlanası (setup FQDN)

İsteğe bağlı: SSL sertifikası (setup free signed ssl certificate)

[/box]

Adım 1: Paket Kurulumu

[bash]apt-get install postfix postfix-mysql dovecot-core dovecot-imapd dovecot-lmtpd dovecot-mysql dovecot-pop3d[/bash]

Bu komuttan sonra dovecot  SSL sertifikası oluşturup oluşturmayacağınızı  soruyor ,eğer SSL sertifikanız varsa hayır deyip devam edebilirsiniz.Bu yazıda Dovecot un oluşturduğu SSL sertifikasını kullanacağımız için evet seçeneğini seçiyoruz.

Sonrasında SSL sertifikası oluşturulurken kullanılacak domain adresini isteyecek ,buraya sunucunuzun ana domain adresini  yazıp  devam edin.  Postfix yapılandırma sayfası karşınıza gelecek ,”Internet Site” seçeneğini seçip tamam diyoruz.

postfix-configiration

Sonrasında  sitem mail adresini girmemiz gerekiyor.Bu değer FQDN adresiniz yada ana domain adresiniz olabilir.

postfix-configiration1

Adım 2 : Veri tabanı oluşturma,Sanal domain ,Kullanıcılar ve Takma adlar

Kurulumu  bitirdikten sonra Domainler,kullanıcılar ve takma adlar için üç tane  tablo oluşturacağız.Tablolar için servermail isimli bir veri tabanı oluşturacağız, isterseniz başka bir isim kullanabilirsiniz.

Servermail veri tabanını oluşturmak için:

[bash]mysqladmin -p create mailserver[/bash]

MYSQL de root yetkisi  almak için:

[bash]mysql -u root -p[/bash]

komutunu yazıp  root  şifresini girdiğinizde eğer bir sorun yoksa şu şekilde bir satır gelecek:

[bash]mysql >[/bash]

İlk  olarak bir kullanıcı oluşturacağız ve o kullanıcıya mailserver veri tabanındaki  tüm tablolar için SELECT yetkisi vereceğiz.

[bash]> GRANT SELECT ON mailserver.* TO ‘mailroot’@’127.0.0.1’ IDENTIFIED BY ‘mailpassword’;[/bash]

mailroot isimli mailpassword şifreli bir kullanıcı oluşturup mailserver veri tabaında SELECT yetkisini vermiş olduk. İşlemimizin geçerli olması için MYSQL ayarlarını yeniden yüklemeliyiz bunun için :

[bash]mysql >FLUSH PRIVILEGES;[/bash]

komutunu çalıştırıyoruz.

Tabloları oluşturmak için veritabanımızı seçiyoruz:

[bash]mysql > USE mailserver;[/bash]

Sanal domain bilgilerini  saklayacağımız tablo için :

[bash]CREATE TABLE `virtual_domains`
( `id` INT NOT NULL AUTO_INCREMENT,
`name` VARCHAR(50) NOT NULL,
PRIMARY KEY (`id`) )
ENGINE=InnoDB DEFAULT CHARSET=utf8;[/bash]

Kullanıcı bilgilerini saklamak için virtual_user tablosunu oluşturacağız. Bu tabloya mail adresi ve şifre bilgilerini yazacağız mail adresinin domain ile eşleşmesi gereklidir.

[bash]CREATE TABLE `virtual_users`
( `id` INT NOT NULL AUTO_INCREMENT,
`domain_id` INT NOT NULL,
`password` VARCHAR(106) NOT NULL,
`email` VARCHAR(120) NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `email` (`email`),
FOREIGN KEY (domain_id) REFERENCES virtual_domains(id) ON DELETE CASCADE )
ENGINE=InnoDB DEFAULT CHARSET=utf8;[/bash]

Son olarak takma adlar için tablomuzu oluşturacağız.Takma adlar bir hesap için birden fazla adres tanımlayabilmemizi sağlayacak.

[bash]CREATE TABLE `virtual_aliases`
( `id` INT NOT NULL AUTO_INCREMENT,
`domain_id` INT NOT NULL,
`source` varchar(100) NOT NULL,
`destination` varchar(100) NOT NULL,
PRIMARY KEY (`id`),
FOREIGN KEY (domain_id) REFERENCES virtual_domains(id) ON DELETE CASCADE )
ENGINE=InnoDB DEFAULT CHARSET=utf8;[/bash]

Tablolarımız oluşturduk artık veri ekleme işlemine geçebiliriz.

Sanal Adresler

Virtual_domains tablosuna kullanmak istediğiniz her adresi  ekleyebilirsiniz.Örnek olarak example.com ve hostname.example.com adreslerini ekleyeceğim.

[bash]INSERT INTO `mailserver`.`virtual_domains`
(`id` ,`name`)
VALUES
(‘1’, ‘example.com’),
(‘2’, ‘hostname.example.com’);[/bash]

Sanal Mail adresleri

Virtual_users tablosuna kullanacağımız  mail  adreslerini tanımlıyoruz.Bu adreslerin domain isimleri virtual_domains tablosunda kayıtlı olmalı.

INSERT INTO `mailserver`.`virtual_users`
(`id`, `domain_id`, `password` , `email`)
VALUES
('1', '1', ENCRYPT('firstpassword', CONCAT('$6$', SUBSTRING(SHA(RAND()), -16))), '[email protected]'),
('2', '1', ENCRYPT('secondpassword', CONCAT('$6$', SUBSTRING(SHA(RAND()), -16))), '[email protected]');

Yukarıdaki istekte password alanında  rand() ile 0-1 arasında bir rastgele sayi ürettik. Ardından sha() ile bunu hashledik ve substring(hash, -16) ile bu hash değerinin son 16 hanesini aldık. concat(‘$6$’, hash’in son 16 hanesi) ile elimizdeki değerin başına $6$ ekledik ki bu da crypt icin SHA512 anlamına gelir. Ardından ENCRYPT ile şifremizi ve az önce oluşturduğumuz şifremizi birleştirip  bu değeri verdik.

Sanal Takma Adlar

Virtual_aliases tablomuza takma adlarımızı ekleyeceğiz.

INSERT INTO `mailserver`.`virtual_aliases`
(`id`, `domain_id`, `source`, `destination`)
VALUES
('1', '1', '[email protected]', '[email protected]');

Mysql ile işimizi bitirdik artık çıkış yapabliriz.
[bash]mysql > exit[/bash]

 Adım 3: Postfix Yapılandırması

Posfix SMPT ayarlarını ve Mysql bağlantısı ile sanal adresleri kullanabilecek şekilde yapılandırmamız gerekiyor. İlk olarak aşağıdaki komutla postfix yapılandırma dosyasının bir yedeğini alalım.

[bash]cp /etc/postfix/main.cf /etc/postfix/main.cf.orig[/bash]

Artık rahat bir şekilde posfix yapılandırma dosyasını düzenleyebiliriz.

[bash]nano /etc/postfix/main.cf[/bash]

Komutuyla dosyayı düzenleyelim.İlk olarak TLS parametrelerini yorum satırı yaparak etkisiz hale getiriyoruz ve hemen altına yeni parametrelerimizi ekliyoruz:

[bash]# TLS parameters
#smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
#smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
#smtpd_use_tls=yes
#smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
#smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
# pem ve key dosyaları dovecot un oluşturduğu dosyalar
# —
smtpd_tls_cert_file=/etc/dovecot/dovecot.pem
smtpd_tls_key_file= /etc/dovecot/private/dovecot.pem
smtpd_use_tls=yes
smtpd_tls_auth_only = yes
smtpd_tls_security_level=may
smtpd_tls_protocols = !SSLv2, !SSLv3
# —
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_auth_enable = yes
smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination

[/bash]

mydestination parametresini yorum satırı yaparak hemen altına

[bash]#mydestination = example.com, hostname.example.com, localhost.example.com, localhost
mydestination = localhost[/bash]

myhostname parametresi sunucunuzun FQDN adresi olmalıdır. Eğer FQDN adresiniz sunucunuzda doğru bir şekilde tanımlıysa bu mydestination ve myhostname parametreleri sunucunuzun adres bilgilerine göre ayarlanmış olacaktır,yani example.com yerine sizin domaininiz yazacaktır.

Sanal domainler  için post teslim alma işlemini dovecot un üsleneceğini belirtmek için dosyanın sonuna şu satırı ekliyoruz.

[bash]virtual_transport = lmtp:unix:private/dovecot-lmtp[/bash]

Son olarak Postfix in adres,kullanıcı,ve takma ad bilgilerini mysql den almasını sağlamak için şu satırları ekliyoruz:

[bash]virtual_mailbox_domains = mysql:/etc/postfix/mysql-virtual-mailbox-domains.cf
virtual_mailbox_maps = mysql:/etc/postfix/mysql-virtual-mailbox-maps.cf
virtual_alias_maps = mysql:/etc/postfix/mysql-virtual-alias-maps.cf
[/bash]

Şimdi postfix in mysql ile bağlantı kurmasını sağlayacak olan dosyaları oluşturalım.Sanal adresler için:

[bash]nano /etc/postfix/mysql-virtual-mailbox-domains.cf[/bash]

komutu ile dosyayı oluşturalım ve içerisine

[bash]user = mailroot
password = mailpassword
hosts = 127.0.0.1
dbname = mailserver
query = SELECT 1 FROM virtual_domains WHERE name=’%s’[/bash]

yazıp kaydediyoruz.Buradaki bilgiler MYSQL veritabanımızı oluşturduktan sonra oluşturduğumuz ve SELECT yetkisi verdiğimiz kullanıcının bilgileri.Dosyamızın aktif olması için postfix i  yeniden başlatmalıyız.

[bash]service postfix restart[/bash]

Postfix in adresimizi bulabildiğini kontrol etmek için aşağıdaki komutu çalıştırın eğer 1 değerini dönerse çalışıyor demektir.

[bash]postmap -q example.com mysql:/etc/postfix/mysql-virtual-mailbox-domains.cf[/bash]

Sıradaki dosyamızı oluşturmak için :

[bash]nano /etc/postfix/mysql-virtual-mailbox-maps.cf[/bash]

Dosya içeriği :

[bash]user = mailroot
password = mailpassword
hosts = 127.0.0.1
dbname = mailserver
query = SELECT 1 FROM virtual_users WHERE email=’%s’[/bash]

Posfix i  yeniden başlatıyoruz:

[bash]service postfix restart[/bash]

Doğrulamak için :

[bash]postmap -q [email protected] mysql:/etc/postfix/mysql-virtual-mailbox-maps.cf[/bash]

Son olarak takma adlar için kullandığımız dosyayı oluşturalım :

[bash]nano /etc/postfix/mysql-virtual-alias-maps.cf[/bash]

Dosya içeriği:

[bash]user = mailroot
password = mailpassword
hosts = 127.0.0.1
dbname = mailserver
query = SELECT destination FROM virtual_aliases WHERE source=’%s’[/bash] [bash]service postfix restart[/bash]

Doğrulamak için :

[bash]postmap -q [email protected] mysql:/etc/postfix/mysql-virtual-alias-maps.cf[/bash]

SMTP üzerinden  bağlanmak için 587. portu açmalıyız.Bunun için /etc/postfix/master.cf dosyasını düzenleyelim.

[bash]nano /etc/postfix/master.cf[/bash]

Bu dosyada aşağıdaki satırları bulup başlarındaki # işaretini kaldırmalısınız:

[bash]submission inet n – – – – smtpd
-o syslog_name=postfix/submission
-o smtpd_tls_security_level=encrypt
-o smtpd_sasl_auth_enable=yes
-o smtpd_client_restrictions=permit_sasl_authenticated,reject[/bash] [bash]service postfix restart[/bash]

Adım 4 : Dovecot Yapılandırması

İlk olarak dovecot yapılandırması yaparken değiştireceğimiz dosyaların yedeklerini alalım.

[bash]cp /etc/dovecot/dovecot.conf /etc/dovecot/dovecot.conf.orig
cp /etc/dovecot/conf.d/10-mail.conf /etc/dovecot/conf.d/10-mail.conf.orig
cp /etc/dovecot/conf.d/10-auth.conf /etc/dovecot/conf.d/10-auth.conf.orig
cp /etc/dovecot/dovecot-sql.conf.ext /etc/dovecot/dovecot-sql.conf.ext.orig
cp /etc/dovecot/conf.d/10-master.conf /etc/dovecot/conf.d/10-master.conf.orig
cp /etc/dovecot/conf.d/10-ssl.conf /etc/dovecot/conf.d/10-ssl.conf.orig
[/bash]

dovecot yapılandırma dosyasını  açalım:

[bash]nano /etc/dovecot/dovecot.conf[/bash] [bash]!include conf.d/*.conf[/bash]

satırını  bulup bu satırın aktif yani yorumlanmamış olduğunu kontrol edelim. Sonrasında protokolleri  aktif  etmek için

[bash]!include_try /usr/share/dovecot/protocols.d/*.protocol[/bash]

satırını bulup hemen altına

[bash]protocols = imap lmtp pop3[/bash]

satırını  ekliyoruz.

Sırada 10-mail.conf dosyası var :

[bash]nano /etc/dovecot/conf.d/10-mail.conf[/bash]

mail_location değerini bulup şu şekilde değiştiriyoruz.Eğer yorum satırı ise baştaki # işaretini kaldırarak aktif hale getiriyoruz.

[bash]mail_location = maildir:/var/mail/vhosts/%d/%n[/bash]

mail_privileged_group değerini bulup aşağıdaki  şekilde değiştiriyoruz.Eğer yorum satırı ise baştaki # işaretini kaldırarak aktif hale getiriyoruz.

[bash]mail_privileged_group = mail[/bash]

Mail dizinimizin  dosya izinlerini  ayarlayalım:

ilk önce mail  işlemlerimizde yetkili olacak kullanıcıyı ve grubu oluşturalım:

[bash]groupadd -g 5000 vmail
useradd -g vmail -u 5000 vmail -d /var/mail[/bash]

sonrasında kullanacağımız  her domain için aşağıdaki gibi  klasör oluşturalım.

[bash]mkdir -p /var/mail/vhosts/example.com[/bash]

Şimdi mail dizinimizin sahibini ve grubunu  belirleyelim:

[bash]chown -R vmail:vmail /var/mail[/bash]

işlemler tamamlandıktan sonra sorun olmadıysa

[bash]ls -ld /var/mail[/bash]

komutun çıktısı aşağıdaki şekilde olmalı(Dosya izinleri):

[bash]drwxrwsr-x 3 root vmail 4096 Jan 24 21:23 /var/mail[/bash]

Dovecot u yapılandırmaya 10-auth.conf dosyasıyla devam ediyoruz.

[bash]nano /etc/dovecot/conf.d/10-auth.conf[/bash] [bash]disable_plaintext_auth = yes[/bash]

satırını  buluyoruz ve satırı aktif hale getiriyoruz.

auth_mechanisms değerini buluyoruz ve aşağıdaki gibi  düzenliyoruz.

[bash]auth_mechanisms = plain login[/bash] [bash]!include auth-system.conf.ext[/bash]

satırını  buluyoruz ve yorum satırı yaparak etkisiz bırakıyoruz.

[bash]#!include auth-sql.conf.ext[/bash]

satırını bulup satırı aktif hale getiriyoruz.

Şimdi  dovecot  mysql ile iletişim kurabilsin diye auth-sql-conf.ext dosyasını düzenlemeliyiz.

[bash]nano /etc/dovecot/conf.d/auth-sql.conf.ext[/bash]

komutu ile dosyayı açıp içerisindeki bütün satırları yorum satırı yapıyoruz yada siliyoruz ve dosya içeriğine aşağıdaki kodları ekliyoruz.

[bash]passdb {
driver = sql
args = /etc/dovecot/dovecot-sql.conf.ext
}
userdb {
driver = static
args = uid=vmail gid=vmail home=/var/mail/vhosts/%d/%n
}[/bash]

Şimdi /etc/dovecot/dovecot-sql.conf.ext dosyasını düzenleyelim

[bash]nano /etc/dovecot/dovecot-sql.conf.ext[/bash]

dirver parametresini aktif hale getireli m ve değerini mysql olarak ayarlıyalım

[bash]driver = mysql [/bash]

connect satırını aktif hale getirin ve kendi  bilgilerinizi kullanarak aşağıdaki gibi düzenleyin

[bash]connect = host=127.0.0.1 dbname=mailserver user=mailroot password=mailpassword[/bash]

default_pass_scheme paremetresini aktif hale getirin ve aşağıdaki şekilde değiştirin

[bash]default_pass_scheme = SHA512-CRYPT[/bash]

password_query parametresini aktif hale getirin ve aşağıdaki gibi  değiştirin

[bash]password_query = SELECT email as user, password FROM virtual_users WHERE email=’%u’;[/bash]

Sonrasında /etc/dovecot/conf.d/10-master.conf dosyasını düzenlememiz gerekiyor biraz karışık bir dosya olduğu için hazır halini paylaşacağım içeriği kopyalayıp kendi sunucunuzdaki dosya ile değiştirin.

/etc/dovecot/conf.d/10-master.conf :
https://www.dropbox.com/s/g0vnt233obh6v2h/etc.dovecot.conf.d.10-master.conf.txt

Hepsi bu kadar son olarak dovecot u  baştan başlatıyoruz:

[bash]service dovecot restart[/bash]

kullanıcıadı:[email protected]
şifre: firstpassword
IMAP:example.com
SMTP:example.com

şeklinde kendi adreslerinizi kullarak mail adresinize ulaşabilirsiniz.

kaynak :https://www.digitalocean.com/community/tutorials/how-to-configure-a-mail-server-using-postfix-dovecot-mysql-and-spamassasin

Devam

Dosya İzinleri – Linux

İşletim sistemlerinde dosyalar belli kişiler tarafından erişilebilir yada erişilemez  dosyaların kendilerine ait izinleri yani yetkileri vardır.Dosya izinleri güvenlik açısından çok önemlidir , mesela önemli bilgilerin tutulduğu bir ayar dosyasının izinleri herkes tarafından okunabilir ve yazılabilir olursa herkes bilgilerimize erişebilir yada değiştirebilir.

Ben bu yazıda linux sistemlerde dosya izinlerinin nasıl belirlendiğinden bahsedeceğim. Eğer PHP ile uğraşıyorsanız dosya izinleri ile ilgili sorunlarla karşılaşmışsınızdır. Bilindiği gibi PHP,  en iyi linux sistemlerde çalışır bunun için linux’taki dosya izinleri nedir, nasıl belirlenir bilmemiz gerekir.

[caption id="attachment_1385" align="aligncenter" width="500"]Dosya izinleri Dosya izinleri[/caption]

Bu resimde bir dosyanın izin bilgilerini gösteriliş şekli gösterilmiştir. İlk baştaki “d” işareti bir dosya olduğunu gösterir , sonraki 3 karakter dosyanın sahibinin , sonraki 3 karakter dosyanın grubunun ve son 3 karakter de geriye kalan kullanıcıların izinlerini gösterir.Şimdi buradaki üçlü karakterleri inceleyelim,bu karakterler “rwx” harflerinden oluşuyor.

[box type="tick"]

r => okuma yetkisini

w => yazma yetkisini

x => çalıştırma yektisni beliritr.

[/box]

Linuxda bir dizindeki  dosya ve klasöleri listelemek için “ls” komutu kullanılır. ls komutuna “-l” parametresi eklenirse dizindeki tüm dosya ve klasörleri izin bilgileri ile birlikte listeler.

[code][email protected]:~$ ls -l
toplam 91060
-rw-rw-r--  1 sametatabasch sametatabasch     1182 Tem  7 17:09 alfabe.ktouch.xml
-rw-rw-r--  1 sametatabasch sametatabasch     2422 Haz 23 15:35 alıntılar.ktouch.xml
drwxr-xr-x  2 sametatabasch sametatabasch     4096 May 31 15:34 Belgeler
drwxr-xr-x  2 sametatabasch sametatabasch     4096 Tem 16 04:36 Downloads
-rw-rw-r--  1 sametatabasch sametatabasch      916 Haz  8 15:24 Downloads.pem
drwxr-xr-x  2 sametatabasch sametatabasch     4096 Tem  5 21:10 dwhelper
-rwxr-xr-x  1 sametatabasch sametatabasch      316 Tem 11 13:38 Evernote.desktop
-rw-rw-r--  1 sametatabasch sametatabasch      854 Tem 11 13:38 Evernote.lnk
drwxr-xr-x  2 sametatabasch sametatabasch     4096 May 31 15:34 Genel
-rw-rw-r--  1 sametatabasch sametatabasch 19233136 Nis 25 23:38 libflashplayer.so
drwxr-xr-x  2 sametatabasch sametatabasch     4096 May 31 15:34 Masaüstü[/code]

Yukarıda ki örnek konsol çıktısında Belgeler dizinini inceleyelim;

[code]drwxr-xr-x  2 sametatabasch sametatabasch     4096 May 31 15:34 Belgeler[/code]

en baştaki  “d” harfi  bir dizin olduğunu  belirtiyor. Ondan sonraki üç  karakter dizin sahibinin yetkilerini  belirtiyor(Burada sametatabasch), rwx yani  okuma yazma  ve  çalıştırma  yetkisine sahip. Sonraki  3 harf dizinin  ait olduğu grubun yetkilerini öğreniyoruz “r-x”  yani  okuma ve çalıştırma izni.Son  3  harf  ise geri kalan herkesin sahip olduğu yetkileri belirtiyor.

Dosya İzinlerini Değiştirmek

Linux da konsol üzerinden doyya izinlerini  değiştirmek için “chmod” komutu kullanılır.

[box type="info" style="rounded"]Kullanım: chmod [SEÇENEK]… KİP[,KİP]… DOSYA…
veya:  chmod [SEÇENEK]… SEKİZLİK-KİP DOSYA
veya:  chmod [SEÇENEK]… –reference=REFDOSYA DOSYA…[/box]

Belgeler dizininin izinlerini  değiştirmek için şu şekilde bir kod yazmamız gerekiyor :

[code]chmod 700 Belgeler[/code]

Bu komuttan sonra ls -l komutunu  vererek sonucu görebiliriz

[code][email protected]:~$ ls -l
-rw-rw-r--  1 sametatabasch sametatabasch     1182 Tem  7 17:09 alfabe.ktouch.xml
-rw-rw-r--  1 sametatabasch sametatabasch     2422 Haz 23 15:35 alıntılar.ktouch.xml
drwx------  2 sametatabasch sametatabasch     4096 May 31 15:34 Belgeler
-rwxr-xr-x  1 sametatabasch sametatabasch      362 Ağu 14 23:28 Dll-Files Fixer.desktop
drwxr-xr-x  2 sametatabasch sametatabasch     4096 Tem 16 04:36 Downloads
-rw-rw-r--  1 sametatabasch sametatabasch      916 Haz  8 15:24 Downloads.pem
drwxr-xr-x  2 sametatabasch sametatabasch     4096 Tem  5 21:10 dwhelper
-rwxr-xr-x  1 sametatabasch sametatabasch      316 Tem 11 13:38 Evernote.desktop
-rw-rw-r--  1 sametatabasch sametatabasch      854 Tem 11 13:38 Evernote.lnk
drwxr-xr-x  2 sametatabasch sametatabasch     4096 May 31 15:34 Genel[/code]

Peki  bu  700 ne anlama  geliyor . 700 sayısındaki her basamak izinlerdeki üçlü  gruplardan birine denk geliyor. Birinci  basamak dosya sahibinin ,ikinci basamak  dosya  grubunun ,üçüncü basamak ise herkesin yetkileri belirtiyor.

Peki  tek  bir sayı  ile 3 karakterlik bir izni nasıl  belirliyoruz ? Şöyle ki r harfi 4 değerine w harfi 2 değerine x harfide 1 değerine sahip yani  sadece okuma izni vereceksek(r–) 4, hem okuma hem çalıştırma izni vereceksek (r-x) 4+1 den 5 ,okuma ve yazma izni vereceksek (rw-) 4+2 den 6 değerini vermeliyiz. Bu durumda 700 dosya sahibine tüm yetkileri vermiş grup ve diğerlerine de hiç yetki  vermemiş oluyoruz.

Filezilla İle Dosya İzinlerini  Düzenleme

Ben konsol  kullanamıyorum bana zor geliyor diyorsanız sitenizdeki  dosyaların izinlerini filezilla programı ile düzenleyebilirsiniz. Bunun için filezilla programı ile hostunuza bağlandıktan sonra(Nasıl bağlanılır ?), sağ  tarafta gözüken dosyalarınıza sağ tıklayıp Dosya izinleri seçeneğine basarak dosya izinlerini görebilir ve değiştirebilirsiniz.

[caption id="attachment_1413" align="aligncenter" width="287"]Filezilla dosya izinleri  penceresi Filezilla dosya izinleri penceresi[/caption] [box type="info"]Buraya kadar olan kısımda sadece  dosya izinlerini  gördük  buna ek olarak dosyanın sahibinin  ve  dosya  grubunun ne olduğundan bir sonraki yazımda bahsedeceğim.[/box]

 

Devam

Mysql sunucusuna uzaktan erişim

Mysql  normal  kurulumla sadece localhost tan gelen bağlantıları kabul ediyor.Uzak bir sunucudan bağlantı kurmak istediğimizde başarısız oluyoruz.Bu durumun nedeni  mysql sunucunuzun dışarıdan gelen bağlantıları kabul etmiyor olması. Mysql servisini dışarıdan bağlantı  kabul  edecek  şekilde çalıştırmak için mysql ayar dosyasında bir kaç değişiklik yapmamız gerekiyor. Bu değişikliği aşağıdaki  adımları izleyerek yapabiliriz.
SSH bağlantısı  ile sunucumuza eriştikten sonra (localde çalışıyorsanız direk konsolu  kullanarak)
[bash]sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf[/bash]

komutunu verdiğimizde konsol üzerinden mysql yapılandırma dosyasını düzenlemek için açmış oluyoruz. Bu dosya içerisinde  “bind-address = 127.0.0.1” satırını kaldırmamız gerekiyor. Bunun için Ctrl + w tuşlarına basarak arama yapabilirsiniz. Bu satırı bulduktan sonra başına “#” işareti ekleyerek bu ayarı etkisiz hale getirmiş olursunuz.

sonrasında
[bash]mysql -u root -p[/bash]
komutunu vererek mysql bağlantısı kuruyoruz ve aşağıdaki  sorguları çalıştırıyoruz
[bash]
GRANT ALL PRIVILEGES ON *.* TO ‘kullaniciadi’@’%’ IDENTIFIED BY ‘sifre’ WITH GRANT OPTION;
FLUSH PRIVILEGES;
[/bash]
Burada kullanıcı  adı  ve şifre bilgilerini  kendimize göre düzenliyoruz.Sonra ctrl+c ile konsola dönebiliriz. Son olarak mysql servisini yeniden başlatmak için
[bash]sudo service mysql restart[/bash]
komutunu veriyoruz artık belirttiğimiz kullanıcı  mysql sunucumuza dışarıdan erişebilir. Bu işlemlerden sonra yeni bir kullanıcı  eklerken makine olarak “%” değerini  belirtirseniz yeni oluşturduğunuz kullanıcıda uzaktan erişime açık olacaktır.

Devam