EXT4 ile formatlanmış bir disk üzerinde klasöre sağ tıkla “Local Network Share” tabı içinde bu klasörü paylaş de ve anonymous erişime izin ver sadece. Bu kadar windowsdan \192.168.2.100 diyerek ulaşabilirsin.
sudo apt-get update
sudo apt-get upgrade
sudo apt autoremove
Önce ll komutu ile dosya çalıştırılabilir mi ona bak. Ubuntu’da yeşil renk oluyor. Değil ise chmod +x dosya_adi
diyerek dosyayı çalıştırılabilir yaparız. Sonra da ./dosya_adi diyerek çalıştırırız.
sudo find / -iname 'aranacak_dosya' -print
(https://www.digitalocean.com/community/tutorials/how-to-install-apache-tomcat-8-on-ubuntu-16-04 )
sudo apt-get remove apache2
sudo apt-get update
sudo groupadd tomcat
sudo useradd -s /bin/false -g tomcat -d /opt/tomcat tomcat
cd /tmp
curl -O http://apache.mirrors.ionfish.org/tomcat/tomcat-8/v8.5.15/bin/apache-tomcat-8.5.15.tar.gz
sudo mkdir /opt/tomcat
sudo tar xzvf apache-tomcat-8*tar.gz -C /opt/tomcat --strip-components=1
cd /opt/tomcat
sudo chgrp -R tomcat /opt/tomcat
sudo chmod -R g+r conf
sudo chmod g+x conf
sudo chown -R tomcat webapps/ work/ temp/ logs/
sudo update-java-alternatives -l
sudo nano /etc/systemd/system/tomcat.service
sudo systemctl daemon-reload
sudo systemctl start tomcat
sudo systemctl status tomcat
sudo systemctl enable tomcat
sudo nano /opt/tomcat/conf/server.xml
sudo systemctl restart tomcat
tomcat dizini sahibini değiştirmek için;
sudo chown -R chi /opt/tomcat/
sudo iptables -t nat -A PREROUTING -i wlan0 -p tcp --dport 80 -j REDIRECT --to-port 8080
sudo /etc/init.d/netfilter-persistent save
service apache2 status
sudo service apache2 stop
sudo service apache2 start
sudo service apache2 restart
sudo fdisk -l
komutu ile USB diskin harfi tespit edilir. Önce komut çıktısına bakıp sonra USB yi takarsan daha emin olursun harfinden.
sudo dd if=kali-linux-2016.1-amd64.iso of=/dev/sdb bs=512k
komutu ile de dosya USB’ye kopyalanır. 512 kopyalama hızıdır. Tavsiye edilen.
Tar.gz uzantılı dosya oracle sitesinden indirilir.
tar -xvf jdk-8u91-linux-x64.tar.gz
sudo mkdir -p /usr/lib/jvm
sudo mv ./jdk1.8.0_91 /usr/lib/jvm/
sudo update-alternatives --install "/usr/bin/java" "java" "/usr/lib/jvm/jdk1.8.0_91/bin/java" 1
sudo update-alternatives --install "/usr/bin/javac" "javac" "/usr/lib/jvm/jdk1.8.0_91/bin/javac" 1
sudo update-alternatives --install "/usr/bin/javaws" "javaws" "/usr/lib/jvm/jdk1.8.0_91/bin/javaws" 1
sudo chmod a+x /usr/bin/java
sudo chmod a+x /usr/bin/javac
sudo chmod a+x /usr/bin/javaws
sudo chown -R root:root /usr/lib/jvm/jdk1.8.0_91/
sudo update-alternatives --config java
son konuttan sonra başka alternatif java yok ise hata verebilir. Var ise şu komutlar ile de diğerleri için de yapılır.
sudo update-alternatives --config javac
sudo update-alternatives --config javaws
java -version komutu ile kontrol edilebilir.
sudo mysql_secure_installation
Veritabanındaki bir şemayı ve içindeki bütün tabloları yedeklemek için; mysqldump -u root -p0503 fav
komutu kullanılabilir. Burada şifre -p parametresi ile şifre arasında boşluk bulunmamalıdır.”fav” ise şemanın adıdır.
Bu komut ekrana basar, günün tarihi ile zipli bir şekilde kaydetmek için;
mysqldump -u root -p05031 fav | gzip > /home/chi/database_date '+\%d-\%m-\%Y'
.sql.gz
komutu kullanılır. Buradaki date '+%d-%m-%Y'
komutu günün tarihi ile dosyayı kaydetmek içindir. Cron ile bunu hergün yapabiliriz, cron yazısına bakınız. (% işareti hataya sebeiyet veriyor. Bu sebepten backslash ile escape ettik.)
/etc/crontab dosyasını aç. İçine şu satırı ekle; 15 2 * * * root mysqldump -u root vs vs… Burada ilk 5 parametre minute, hour, day of month, month, day of week dir. * ise any anlamına geliyor. Yukarıdaki örnek her gün gece 2:15 o komutu çalıştır demek. Sonraki root ise hangi kullanıcı ile bu komutun çalıştırılacağını belirler. Sonraki ise komutun kendisidir. /etc/init.d/cron restart komutu ile cron tekrar başlatılır ve değişiklikler çalışır.
Crontab -e komutu ile kullanıcıya ait görevleri görebiliriz.
Escaping backslash () ile yapılır.
Mesela her gece mysql veritabanında fav şeması yedeğini almak için aşağıdakini kullandım.
mysqldump -u root -pXXX fav | gzip > /home/chi/etc/dbBackUp/database_date '+\%d-\%m-\%Y'
.sql.gz
df -h
diskleri görmek için; lsblk
sudo systemctl restart tomcat
sudo usermod -a -G tomcat chi sudo usermod -a -G groupName usrName
sudo apt-get install unity-tweak-tool
unity-tweak-tool
programını kullanarak “Theme” başlığı altında temayı değiştirebilirsin. Numix olan güzel olmuş. GNOME arayüzü kullanıyorsan ise gnome-twek-tool kullanabilirsin.
Değişiklikten sonra terminali renklendirmek istersen ise;
gedit ~/.bashrc
içine en son satıra şunu ekle.
PS1='\[\033[1;36m\]\u\[\033[1;31m\]@\[\033[1;32m\]\h:\[\033[1;35m\]\w\[\033[1;31m\]\$\[\033[0m\] '
source ~/.bashrc
sudo add-apt-repository ppa:numix/ppa
sudo apt-get update
sudo apt-get install numix-gtk-theme numix-icon-theme-circle
ve yukardaki tweak tool ile “Icon” yazan kısımdan Numix çıkacak ve onu seçebiliriz artık.
Bir klasörü ve içindeki bütün dosyaların sahipliğini başka bir kullanıcıya devretmek için;
sudo chown -R tomcat:tomcat .
Komutu kullanılır. -R parametresi recursive için, ilk tomcat kullanıcı ikinci tomcat ise grup parametresidir.
sudo chmod -R 777 14subat
Kullanıcı login olduğunda otomatik bir program çalıştırmak için; Dash’i açıp “Startup Applications” yaz. Buradan istediğin programı ekleyebilirsin. Bu ekran arka planda ~/config/autostart klasörü içine programAdi.desktop isimli bir dosya yaratmaktadır.
İki yolu vardır. Birincisi ubuntu software center da “installed” kısmında bir kısmını bulabiliriz. İkinci yöntem ise şu komutlardır;
var/log içinde kaç adet zip varsa o kadar bu komutu koştururuz.
wget -m -np -c --no-check-certificate -R "index.html*" "https://theswissbay.ch/pdf/Gentoomen%20Library/Programming"
sudo iwlist wlan0 scan
curl komutu desteklediği bazı protokoller ile data transferi yapmaya yarar. Bunu yaparken libcurl kütüphanesini kullanır. Wget e benzer fakat ikisinin de olumlu ve olumsuz tarafları vardır. HTTP POST isteği yapılabilir, TLS desteği vardır, HTTP cookie leri gönderilebilir ve HTTP auth yapılabilir.
Önce Docker reposunu repolara ekliyoruz ve ap-get install ile kuruyoruz.
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - |
Her seferinde sudo kelimesini kullanmamak için; kullanıcıyı kurulumla gelen docker grubuna eklemeliyiz.
Kullanıcıyı yeni bir gruba eklemek; Bir kullanıcının grupları id komutuyla görüntülenir;
id -nG Kullanıcını yeni bir gruba eklemek için ise;
sudo usermod -aG docker chi docker grup adı, chi user adıdır. Parametre ise kullanıcının hali hazırdaki gruplarına append et demektir.
Önce yukarıdaki gibi docker’ı yüklüyoruz. Docker kurulumu bittikten sonra;
Önce docker compose son sürümü şu adresten kontrol edilir. https://github.com/docker/compose/releases
indirilen dosya çalıştırılabilir yapılır.
Burada kaldım, diğer komutlar devam ediyor. https://www.tutorialspoint.com/docker/docker_working_with_containers.htm
Dockerfile’ımızı yazalım;
FROM wildfly
ADD jsf.war /opt/jboss/wildfly/standalone/deployments/
USER jboss
RUN /opt/jboss/wildfly/bin/add-user.sh admin admin --silent
CMD ["/opt/jboss/wildfly/bin/standalone.sh", "-b", "0.0.0.0", "-bmanagement", "0.0.0.0", "--debug"]
Önce Dockerfile dosyamızdan imajı derleriz.
İmajımızdan yeni bir container oluşturup çalıştırırız.
docker run -d -p 8080:8080 -p 9990:9990 -p 8787:8787 –name container-name image-name
docker stop xx sunucuyu durdur
Önce docker imajını docker hub dan bulup çekeriz, birçok versiyon var, benimki 11 olduğu için 11 versiyonunu çekeceğim. Bu aşamada was imajını internetten indirecektir.
Buradaki –name parametresi container’a kısa bir isim vermek için, -h ise hostname’i set etmek için, -d ise konsolu arka planda deattach mode da kullanılıyor. Artık sunucumuz hazırdır. Burada profile tag’ı önceden ibm tarafından hazırlanmış default bir profil olduğunu belirtmek için kullanılıyor. Ardından bu profile ait “wsadmin” kullanıcısı şifresini bulmamız gerekiyor.
komutu ile wsadmin şifresini öğreniyoruz ve test etmek için https://localhost:9043/ibm/console/login.do?action=secure adresine gidip login oluyoruz. Sunucu loglarını görmek için;
Docker container içine girmek için;
diyerek sunucumuz içinde gezebilir, onun lokalindeki farklı sunucuda ayar yapabiliriz. Burada was programlarına
klasöründen ulaşabiliriz. Sunucu içinde iken wsadmin şifresini değiştirmek için, şu komut ile admin consola girilir,
Ardından şu iki komut ile şifre değiştirilir.
$AdminTask changeFileRegistryAccountPassword {-userId wsadmin -password wsadmin}
$AdminConfig save
Sunucuyu başlatma ve durdurma için ise çeşitli yollar mevcuttur.
docker stop --time=60 was
docker start was
/opt/IBM/WebSphere/AppServer/profiles/AppSrv01/bin/startNode.sh
Normalde ./startServer.sh server1 ve ./stopServer.sh server1 ile yapılıyor?
Şu Dockerfile ile kolayca yapabiliriz;
FROM ibmcom/websphere-traditional:profile
COPY Sample1.war /tmp/
RUN wsadmin.sh -lang jython -conntype NONE -c "AdminApp.install('/tmp/Sample1.war', '[ -appname Sample1 -contextroot /Sample1 -MapWebModToVH [[ Sample1.war Sample1.war,WEB-INF/web.xml default_host]]]')"
docker run -itd – name db2 -e DBNAME=testdb -v ~/:/database -e DB2INST1_PASSWORD=password -e LICENSE=accept -p 50000:50000 --privileged=true ibmcom/db2
database : testdb
username : db2inst1
password : password
Bilgisayarı yeniden başlatınca durur DB. O yüzden önce duran container’ı bul, sonra başlat, dosya sistemine yazdığı için kaldığı yerden 2 dakikada açılıyor.
docker ps -a
docker start 066a3430a997
docker logs db2
compose ile birden fazla image ile çalışabilir ve bunları tek seferde yönetip, aralarında network kurabliriz. Compose çalışmak için “docker-compose.yml” veya “docker-compose.yaml” dosyasını arar. Aşağıda örneği vardır;
my-test: image: hello-world
İlk satır container’ımızın ismidir, ikinci satır ise container içindeki imajlarımız. Bu dosyayı kaydettiğimiz klasörde şu komutu vererek container’ı başlatabiliriz. docker-compose up
Çalıştırdıktan sonra çalışan servisleri görüntülemek için yaml dosyamızın bulunduğu dizinde; docker-compose ps
Yaml içindeki bütün servisleri silmek için; docker-compose down docker-compose down –volumes (Volume lerle birlikte sil)
Örnek bir docker-compose dosyası;
version: '3.3'
services:
db:
image: mysql:5.7
restart: always
volumes:
- db_data:/var/lib/mysql
environment:
MYSQL_ROOT_PASSWORD: password
MYSQL_DATABASE: wordpress
wordpress:
image: wordpress
restart: always
volumes:
- ./wp_data:/var/www/html
ports:
- "8080:80"
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_NAME: wordpress
WORDPRESS_DB_USER: root
WORDPRESS_DB_PASSWORD: password
depends_on:
- db
volumes:
db_data:
wp_data:
Açıklamaları ise; In the first line, we are specifying the Compose file version. There are several different versions of the Compose file format with support for specific Docker releases.
Next, we are defining two services, db and wordpress. Each service runs one image and it will create a separate container when docker-compose is run.
The db service:
The wordpress service:
sudo du -hs /var/lib/docker
sudo mkdir /usr/share/ca-certificates/extra
sudo cp Proxy.crt /usr/share/ca-certificates/extra/Proxy.crt
sudo dpkg-reconfigure ca-certificates
veya
sudo cp ROOTCA /usr/local/share/ca-certificates/rootca.crt
sudo update-ca-certificates
Test etmek için;
openssl s_client -showcerts -connect localhost:7000
Burada s_client proxy kullanıcı adı ve şifresi set etmeyi desteklemiyor, test edebilmek için proxytunnel kullandım.
sudo apt-get install proxytunnel
proxytunnel -p proxy.company.intra:80 -P user:pass -d www.google.com:443 -a 7000
Proxy tunnel google’a ulaşmak için localhost da 7000. porttan bana burayı sundu. Bende sadece localhost daki 7000. porta bağlandım.
Bu sırada kullandığım crt dosyasının binary olduğunu anladım. .crt .pem dosyaları birbiri ile uyumludur. İçinde Base64 olarak kodlanmış —BEGIN CERTIFICATE— ile başlayan sertifikalar bulunur. (cat Proxy.crt ile içeriğini görebilirsin.) Bunu base64 ile kodlanmış tipik bir sertifikaya çevirmek için;
openssl x509 -inform DER -in Proxy.crt -out proxy.pem -outform PEM
En sonunda chrome için browser içindeki CA ekleme kısmında sertifikayı ekledim ve çözdüm!
Enviroment variables’a konabilir. Önce şu komutla kontrol edebilirsin,
env | grep proxy
export ile değişken set edebiliriz. Fakat bu komutu çalıştırdığımız shell için geçerli olur, Sonra her pc açılışında otomatik olarak bu değişkenlerin set edilmesi için aşağıdaki dosyaya şu 3 satır eklenebilir.
gedit ~/.bashrc
export http_proxy=proxy.company.intra:80
export https_proxy=proxy.company.intra:80
export no_proxy=localhost,127.0.0.1,*.company.intra
Burada kullanıcı adı şifre notasyonu desteklenmiyor. Buna dikkat et. Bu dosyayı aslında proxy ayarlarını girince OS kendi değiştiriyor!
Birde şöyle bir proje varmış; http://ntlmaps.sourceforge.net/
sudo gedit /etc/environment
export http_proxy=http://user:xxx@proxy.company.intra:80
export https_proxy=http://user:xxx@proxy.company.intra:80
export no_proxy=localhost,127.0.0.1,*.company.intra
sudo gedit /etc/apt/apt.conf.d/proxy.conf dosyası içine aşağıdaki satırları ekle;
Acquire::http::Proxy "http://user:xxxx@proxy.company.intra:80";
Acquire::https::Proxy "http://user:xxxx@proxy.company.intra:80";
Acquire::no_proxy::Proxy "localhost,127.0.0.1,*.company.intra";
Chrome proxy için sistem proxy’sini kullanıyor. dikkat etmen gereken https proxy de set etmeyi unutma. Settings - Network - Proxy Bu şekilde aşağıda anlatılan ayarlara gerek kalmıyor!
Chrome çalıştırılabilir dosyası açılırken parametre olarak proxy’yi geçtim. Şu şekilde otomatize edebilirsin. (google-chrome-stable –proxy-server=”proxy.company.intra:80”)
sudo gedit /usr/share/applications/google-chrome.desktop
içinde aşağıdaki satır sonuna proxy’yi ekle.
Exec=/usr/bin/google-chrome-stable %U –proxy-server=”proxy.company.intra:80”
Chrome içinden de bunu yapabilirdim sanırım!
wget dl.google.com/linux/chrome/deb/pool/main/g/google-chrome-stable/google-chrome-stable_83.0.4103.97-1_amd64.deb
sudo apt install smbclient
smbclient -W DOMAIN -U userA -L //dosyalar
En kolayı Nautilus dosya gezgini içinden, “Other Locations” tıklayıp, server adresi kısmına
smb://dosyalar
smb://10.131.1.5
yazarak ulaşmaktır. Burada kullanıcı, domain bilgilerini yukardaki gibi gir.
eth1 in 80. porta yapılan TCP isteklerini capture et.
sudo tcpdump -ni eth1 tcp port 80
gsettings set org.gnome.system.proxy.http authentication-password 'xxx'
gsettings set org.gnome.system.proxy.http authentication-user 'userA'
gsettings set org.gnome.system.proxy.http use-authentication true
Program executable ve iconunu bul ve path lerini not al. Sonra kısayol dosyasınu aşağıdaki gibi oluştur.
gedit ~/Desktop/Eclipse.desktop
#!/usr/bin/env xdg-open
[Desktop Entry]
Version=1.0
Type=Application
Terminal=false
Exec=/snap/bin/skype
Name=Skype
Comment=Skype
Icon=/home/dev/Software/eclipse-jee-2020-03-R-incubation-linux-gtk-x86_64/eclipse/.icon.xpm
Masaüstündeki simgeye sağ tıkla ve “Allow Launching” de. Bu kadar
Linux da SVN yüklemek için jar yetmiyor, işletim sistemine şunları yükle;
sudo apt-get install subversion
sudo apt-get install libsvn-java
Eclipse plug in yukledikten sonra ise eclipse.ini dosyasına şunu göster;
-vmargs dan sonra
-Djava.library.path=/usr/lib/jni
Buradaki path i şu komutla bul.
sudo find / -name “libsvnjavahl-1.so”
bu yöntem ubuntuda problem çıkardı, onun yerine subversive yükledim sorun çözüldü!