Bu bölümde kullanılacak kullanıcı adı ve parolası başta verilmiş:
username: shiba2
password: pinguftw
Tekrar deploy diyerek soruları yanıtlayabilmek için makinayı çalıştırıyoruz ve ssh bağlantısını bu defa shiba2 kullanıcısı için aşağıdaki komut ile gerçekleştiriyoruz:
ssh shiba2@10.10.29.105
Task 3'te please do not use putty if you are already on Linux dendiği ve ben de Linux kullanıyor olduğum için bu kısmı hızlıca atladım.
Task 4 Section 4 bilmediğim bir şey öğretti:
| (pipe) ve ; ile peşpeşe komut çalıştırabileceğimi biliyordum, bir de && kullanıldığını öğrendim.
Ancak her iki komutunda geçerli (anlamlı olması gerekiyor)
Tek & ise ortam değişkenlerini belirtmek için kullanılıyormuş. Bunlar hep faydalı bilgiler :)
Mesela touch $USER komutu ile hangi kullanıcı adına sahipsem o isimde bir dosya açabiliyorum.
Ortam değişkeni (environment variable) belirlemek için export komutu aşağıdaki şekilde kullanılıyor:
export <varname>=<value>
(değişken adı = değer)
Task 4 Section 4 soruları ve yanıtları şöyle:
How would you set nootnoot equal to 1111
Yukarıdaki formüle uygun olarak yanıt şöyle:
export nootnoot=1111
echo $nootnoot komutu ile de kontrol edebiliyoruz ve 1111 sonucunu görüyoruz.
What is the value of the home environment variable
shiba2@nootnoot:~$ printenv HOME
/home/shiba2
Task 9 Section 4 "How would you output twenty to a file called test" diye soruyor.
Test adında bir dosya oluşturup içerisine twenty yazacağız.
Bunun için aşağıdaki komutu kullanıyoruz:
echo twenty > test
> kullanmanın bir tehlikesi var, eğer bu dosya içerisinde daha önce yazılı bir şeyler varsa hepsini siliyor ve son yazdığınızı kaydediyor. Eğer dosya içerisinde yazılı olanlara ekleme yapmak istiyorsanız >> kullanmak gerekiyor.
Task 11 ile shiba3'e ait parolanın bulunması istenmiş.
The binary is checking to see if the environment variable "test1234" exists, and if it's set equal to the current $USER environment variable.
İlk olarak ortam değişkeni test1234 var mı bulmak, eğer varsa bunu mevcut kullanıcıya ($USER) atamak gerekiyor.
Bunun için:
İlk olarak pwd komutu ile hangi dizinde olduğumu kontrol ettim:
shiba2@nootnoot:~$ pwd
/home/shiba2
Sonra bulunduğum dizinde yer alan tüm dosya ve gizli dosyaları göstermesini istedim:
shiba2@nootnoot:~$ ls -la
total 48
drwxr-xr-x 5 shiba2 shiba2 4096 Jan 3 11:05 .
drwxr-xr-x 8 root root 4096 Feb 22 2020 ..
-rw------- 1 shiba2 shiba2 2120 Jan 3 11:20 .bash_history
-rw-r--r-- 1 shiba2 shiba2 220 Feb 13 2020 .bash_logout
-rw-r--r-- 1 shiba2 shiba2 3771 Feb 13 2020 .bashrc
drwx------ 2 shiba2 shiba2 4096 Jan 3 11:05 .cache
drwx------ 3 shiba2 shiba2 4096 Jan 3 11:05 .gnupg
drwxrwxr-x 3 shiba2 shiba2 4096 Feb 19 2020 .local
-rw-r--r-- 1 shiba2 shiba2 807 Feb 13 2020 .profile
-rwsrwxrwx 1 root root 8472 Feb 20 2020 shiba2
shiba2 binary'i gördüm ve çalıştırmayı denedim:
shiba2@nootnoot:~$ ./shiba2
Segmentation fault (core dumped)
Olmadı :)
Soruda talep edildiği ve daha önce öğretildiği üzere export komutu ile önce değişken adını sonra o değişkeni atamak istediğim değeri yazdım:
shiba2@nootnoot:~$ export test1234=$USER
shiba2 binary'i tekrar çalıştırdım:
shiba2@nootnoot:~$ ./shiba2
happynootnoi***
Parola geldi.
Task14 Section5 chown komutunu anlatıyor ve sorular da bununla ilgili.
Bir dosyanın hangi kullanıcı / gruba ait olduğunu belirtmek için kullanılan bir komut bu.
Formül ise şöyle: chown user:group file
How would you change the owner of file to paradox sorusu ile sadece kullanıcı (grup aynı kalacak) değiştirilmesi istendiği için yanıt:
chown paradox file
İkinci soruda hem kullanıcı hem grup değiştirilmesi istendiği için:
chown paradox:paradox file
Bu bölümdeki son soru ise "What flag allows you to operate on every file in the directory at once?"
Bir dizinde yer alan tüm dosyalara aynı işlemin yapılmasını istiyorsanız hangi komutu kullanacaksınız?
chown --help komutu ile yardım alıyoruz ve yanıt çıkıyor:
-R, --recursive operate on files and directories recursively
Task 15'te bir dosyaya farklı izinler atamayı sağlayan ve kimlerin ne haklar ile bu dosyaya erişim sağlayabileceğini belirlemeye yarayan chmod komutu anlatılmış.
| Rakam | Meali | ||||
| 1 | Dosya çalıştırılabilir | ||||
| 2 | Yazılabilir | ||||
| 3 | Çalıştırılabilir & Yazılabilir | ||||
| 4 | Okunabilir | ||||
| 5 | Okunabilir & Çalıştırılabilir | ||||
| 6 | Yazılabilir & Okunabilir | ||||
| 7 | Çalıştırılabilir & Yazılabilir & Okunabilir |
Örneğin: chmod 341 file komutu girildiğinde 1. rakam kullanıcı, 2. rakam grup, 3. rakam diğer herkesin yetkisini gösteriyor. Bu durumda file isimli dosya için;
Kullanıcı yetkisi: Çalıştırabilir & Yazabilir
Grup yetkisi: Okuyabilir
Diğerleri: Çalıştırabilir
Aynı zamanda ls -la komutu ile de kimin ne yetkisi olduğu kolayca görülebiliyor.
shiba2@nootnoot:~$ ls -la
drwxr-xr-x 5 shiba2 shiba2 4096 Jan 3 11:05 .
drwxr-xr-x 8 root root 4096 Feb 22 2020 ..
-rw------- 1 shiba2 shiba2 2120 Jan 3 11:20 .bash_history
-rwsrwxrwx 1 root root 8472 Feb 20 2020 shiba2
Örneğin en sonda shiba2 dosyası için rws rwx rwx olarak gördüğümüz yetkilerin ilki kullanıcı, ikincisi grup, üçüncüsü geri kalan herkesin yetkilerini gösteriyor.
r: read (okuyabilir), w: write (yazabilir), x: execute (çalıştırabilir) diyor. s ise sistem yetkileri ile çalıştırılabildiği anlamına geliyor.
sistem yetkileri ile çalıştırabilen kim? ilk üçlü grupta olduğundan kullanıcı.
Task 15 sorusu: What permissions mean the user can read the file, the group can read and write to the file, and no one else can read, write or execute the file?
user can read the file: 4
the group can read and write to the file: 6
no one else can read, write or execute the file: 0
Cevap: 460
İkinci soru: What permissions mean the user can read, write, and execute the file, the group can read, write, and execute the file, and everyone else can read, write, and execute the file.
Herkesin her istediğini yapabildiği bir dünya için doğru cevap: 777
Task 16'da dosya silme komutu olan rm işlenmiş.
Soru ise "What flag deletes every file in a directory" yani bir dizinde yer alan tüm dosyaları tek seferde nasıl silersiniz? Yanıt -R. Bunu nereden öğrendik?
shiba2@nootnoot:~$ rm --help
Usage: rm [OPTION]... [FILE]...
Remove (unlink) the FILE(s).
-r, -R, --recursive remove directories and their contents recursively
İkinci soru tüm uyarıların nasıl görmezden gelinebileceği (kapatılabileceği): How do you suppress all warning prompts.
--help komutu bu sorunun yanıtını da veriyor:
-f, --force ignore nonexistent files and arguments, never prompt
Task 17 Section 5 dosyaları taşımayı öğretiyor, komut mv. İşlem basit: mv <file> <destination>
Sadece destination belirtirken tam yolu yazmayı unutmamak gerekiyor, bir de / koymayı.
How would you move file to /tmp sorusunun yanıtı:
mv file /tmp

Hiç yorum yok:
Yorum Gönder