Lazarusta root şifresi isteyen komutları nasıl çalıştırabilirim?

Lazarusta root şifresi isteyen komutları nasıl çalıştırabilirim?

Merhaba;
Burada böyle bir suâl var.
https://forum.lazarus.freepascal.org/index.php?topic=14479.0

Belki buradaki işinizi görebilir. Görmezse, siz de tekrar suâlden devam edebilir veya yeni başlık açabilrisiniz.

Bir de telegram grubu var.

Eğer forumdan bir netîce alamazsanız buraya da sorabilirsiniz.

Selamlar.

unit Unit1;

{$mode objfpc}{$H+}

interface

uses
Classes, SysUtils, Forms, Controls, Graphics, Dialogs, StdCtrls,process;

type

{ TForm1 }

TForm1 = class(TForm)
Button1: TButton;
Edit1: TEdit;
Memo1: TMemo;
Process1: TProcess;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private

public

end;

var
Form1: TForm1;
a:string; //şifre

implementation

{$R *.lfm}

{ TForm1 }

procedure TForm1.FormCreate(Sender: TObject);
begin
form1.Height:=600;
form1.Width:=800;
form1.Position:=poDesktopCenter;
form1.Edit1.Left:=100;
form1.Edit1.Top:=0;
form1.Edit1.Height:=30;
form1.Edit1.Width:=690;
form1.Edit1.Clear;
form1.Memo1.Left:=10;
form1.Memo1.Top:=40;
form1.Memo1.Height:=550;
form1.Memo1.Width:=780;
form1.Memo1.Clear;
Process1.Options:=[poUsePipes];
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
a:=‘123456’;//şifre
Process1.Create(nil);
Process1.CommandLine:=edit1.text;
Process1.Execute;

a:= a + LineEnding;
Process1.Input.Write(a[1],Length(a));
a:= ‘%*’;
a:= ‘’;
Process1.Execute;

Memo1.Lines.LoadFromStream(Process1.Output) ;

end;

end.

Deneme amaçlı bunu yazdım.
Bazı komutlar çalışmıyor.
edit kutucuğuna yazılan bazı komutlar hata veriyor.
ls
pwd
date
sudo -S iwconfig
sudo -S iwconfig --version
sudo -S fdisk -l
komutları çalışıyor.
ama
help
sudo -S iwconfig --help
time
Komutları çalışmıyor nedense. :slight_smile:

Sudo yu böyle yazmamak gerekiyor olabilir. Pipe ile kullanılıyordu zannedersem.

Önceden yazdığım basit bir fonksiyon işinize yarayabilir;

function TfrmAna.RootKontrol(pas: string): Boolean;
var
  kon:TProcess;
  mem:TMemo;
begin
  kon:=TProcess.Create(nil);
  mem:=TMemo.Create(nil);
  kon.Options:=[poUsePipes];
  kon.CommandLine:='sh -c "echo '+QuotedStr(pas)+' | sudo -S ifconfig"';
  kon.Execute;
  mem.Lines.LoadFromStream(kon.Output);
  result:=length(trim(mem.Text))>0;
  kon.Free;
  mem.free;
end;
2 Beğeni

Evet, evvellden de Kaan hocam başka bir konuda benzer bir komut yazmıştı.
Oradan aklımda kalmış.
Teşekkürler.

Selamlar.

Bu konu son cevaptan 30 gün sonra otomatik olarak kapatıldı. Yeni cevap girilmesine izin verilmiyor.