Skocz do zawartości

Rbash


yoda6886

Rekomendowane odpowiedzi

chcialem stworzyc usera z ograniczonymi prawami. wiem ze moge zrobic to zmieniajac linike w /etc/passwd. zazwyczja jest tam /bin/bash/. mozna jednak podobno stworzyc wlasnego "basha" tzn z wlasna gama polecen. szukalem w internecie ale nie znalazlem nic o tym. wszystkie materialy byly bardzo pobierzne. czy ktos moze wie jak to zrobic?

 

moja proba:

1. stworzyc katalog /bin/nowy_bash

2. przegrac do niego interesujace mnie polecenia wraz z plikiem /bin/bash

3. zmienic odpowiednia linijke w /etc/passwd.

 

Troche boje sie to zrobic zeby zbyt nie namieszac.

Odnośnik do komentarza
Udostępnij na innych stronach

Stworzyć właśnego bash'a...

Zainteresuj się C i bibioliotekami systemowymi Linux/Unixa.

 

Oto taki mały bash: smile.gif

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <unistd.h>
#include <wait.h>
const int MAX =256;
const int CMD_MAX=10;
char *valid_cmds = " ls ps df ";  //lista obsługiwanych poleceń
int
main( ){
char line_input[MAX], the_cmd[CMD_MAX];
char *new_args[CMD_MAX], *cp;
int i,n;
while (1) {
printf("cmd> ");
if (fgets(line_input, MAX, stdin) != NULL) {
n=strlen(line_input);
if (line_input[n-1]=='\n') line_input[n-1]='\0';
cp = line_input;
i = 0;
if ((new_args[i] = strtok(cp, " ")) != NULL) {
strcpy(the_cmd, new_args[i]);
strcat(the_cmd, " ");
if ((strstr(valid_cmds, the_cmd) - valid_cmds) % 4 == 1) {
do {
cp = NULL;
new_args[++i] = strtok(cp, " ");
} while (i < CMD_MAX && new_args[i] != NULL);
new_args[i] = NULL;
switch (fork( )) {
case 0:
execvp(new_args[0], new_args);
perror("exec failure");
exit(1);
case -1:
perror("fork failure");
exit(2);
15
5. Procesy
(2005/2006)
default:
wait(NULL);
;
}
} else
printf("?\n");
}
}
}
}

 

 

pozdro

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
×
×
  • Dodaj nową pozycję...