yoda6886 Napisano Styczeń 3, 2006 Zgłoszenie Share Napisano Styczeń 3, 2006 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 More sharing options...
Sanczo Napisano Styczeń 3, 2006 Zgłoszenie Share Napisano Styczeń 3, 2006 Stworzyć właśnego bash'a... Zainteresuj się C i bibioliotekami systemowymi Linux/Unixa. Oto taki mały bash: #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 More sharing options...
Rekomendowane odpowiedzi
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ę