[Çözüldü] Bash root kontrol

Başlatan Mcamsari, 03 Temmuz 2015 - 14:23:59

« önceki - sonraki »

0 Üyeler ve 1 Ziyaretçi konuyu incelemekte.

Mcamsari

Merhaba arkadaşlar. Bir betik yazıyorum lakin betiğin root ile çalışması gerekiyor. İf komutu ile bunu nasıl yapabilirim?

ekremsenturk

işlemin başında "sudo" kullan.

Mcamsari

Demek istediğim şu. betiği normal sudo bash *.sh olarak başlattığımızda root olarak başlamadığı için hata verip programı sonlandıracak.eğer root olarak başladıysa devam edecek.
Sudo koymayı bende biliyorum yoksa

Reverser

Normal dağıtımlar "root" sözcüğünü barındırdıkları için şu şekilde kontrol edilebilir.

if [ "$(whoami)" == "root" ]
then
    echo "rootsunuz."         
else
    echo "root degilsiniz."
fi


Android gibi linux tabanlı sistemler "root" sözcüğünü barındırmadıkları için şu şekilde kontrol edilebilir

if [ "$(id -u)" != "0" ]; then
    echo "root degilsiniz."
    exit 1
fi

ya da

if [ `id -u` != "0" ]; then
    echo "root degilsiniz."
    exit 1
fi

XFCE ROCKS !
Powered by Thunar & XFWM4



Mcamsari

@Reverser tam istediğim şey ama ilk komutta hata veriyor.

jaschar

#5
@Mcamsari $USER dan check et
projectdisco - state of art android distribution .

Reverser

@Mcamsari, diğer verdiğim scripleri denediniz mi ? Bu işin bir çok yolu mevcut şu şekilde de olabilir.

#!/bin/bash
if [[ $EUID -ne 0 ]]; then
   echo "bu islem icin root olmalısınız." 1>&2
   exit 100
fi

ya da

#!/bin/bash
if (( EUID != 0 )); then
   echo "Ybu islem icin root olmalısınız." 1>&2
   exit 100
fi

XFCE ROCKS !
Powered by Thunar & XFWM4



heartsmagic

EUID denetimi en nezih olanı muhtemelen. Android tarafında yok ama, orada da id kasmak lazım.
Hayattan çıkarı olmayanların, ölümden de çıkarı olmayacaktır.
Hayatlarıyla yanlış olanların ölümleriyle doğru olmalarına imkân var mıdır?


Böylece yalan, dünyanın düzenine dönüştürülüyor.

Mcamsari

#8
Teşekkürler Reverser :)


Mesaj tekrarı yüzünden mesajınız birleştirildi. Bu mesajın gönderim tarihi : 05 Temmuz 2015 - 23:51:25

Bir sorum daha olacaktı.
Bir klasör içindeki bütün dosyaları nasıl sileriz? Klasörler silinmeyecek sadece dosylar

heartsmagic

Bütün betiği bize yazdıracaksın bu gidişle :) Kolay sorular soruyorsun, öteki türlü lafı bile olmaz. Son sorduğun şey için find kullanabilirsin.
man find

type kısmına bak. sonrası ise find'la beraber exec ile rm. Çıkamazsan işin içinden yardımcı oluruz yine :)
Hayattan çıkarı olmayanların, ölümden de çıkarı olmayacaktır.
Hayatlarıyla yanlış olanların ölümleriyle doğru olmalarına imkân var mıdır?


Böylece yalan, dünyanın düzenine dönüştürülüyor.

Mcamsari

Daha yeni başladım :D. Bulamadığımı soruyorum. rm -rf gibi bir parametre ile olur diye düşünmüştüm de olmuyor anlaşılan. Bir bakalım ben ona 

heartsmagic

Bir sonraki forum ziyaretinde görürsün artık :)
find . -type f -exec rm -f {} \;

Dikkatli kullanmak lazım. Nokta (.) komutun uygulandığı dizini ifade eder, dosya namına ne var ne yoksa siler. Tam yol kullanmak da mümkün.
find /falanca/dizin -type f -exec rm -f {} \;
Hayattan çıkarı olmayanların, ölümden de çıkarı olmayacaktır.
Hayatlarıyla yanlış olanların ölümleriyle doğru olmalarına imkân var mıdır?


Böylece yalan, dünyanın düzenine dönüştürülüyor.

Mcamsari

@heartsmagic tam istediğim komut adamsın sen :)

heartsmagic

Linux'un güzelliği bu benim değil :)

Başlık tamamsa eğer etiketlesek mi?
cozuldukonusu
Hayattan çıkarı olmayanların, ölümden de çıkarı olmayacaktır.
Hayatlarıyla yanlış olanların ölümleriyle doğru olmalarına imkân var mıdır?


Böylece yalan, dünyanın düzenine dönüştürülüyor.