Advertisement
Guest User

Untitled

a guest
Nov 18th, 2019
100
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.16 KB | None | 0 0
  1. #include <security/pam_appl.h>
  2. #include <security/pam_misc.h>
  3. #include <stdio.h>
  4.  
  5. static struct pam_conv login_conv = {
  6.   misc_conv,               /* przykładowa funkcja konwersacji z libpam_misc */
  7.   NULL                        /* ewentualne dane aplikacji (,,domknięcie'') */
  8. };
  9.  
  10. #define MAX_NAME_LEN 32
  11. #define MAX_CONTENT_LEN 128
  12. #define PRIVILEGES_TYPES 3
  13. #define START_OPTIONS_NO 3
  14. #define MAX_OPTION_LENGTH 128
  15.  
  16. char start_options[START_OPTIONS_NO][MAX_OPTION_LENGTH] = {"Pokaż hierarchię drzewa",
  17.                                                            "Dodaj książkę",
  18.                                                            "Dodaj uprawnienia sudo",
  19.                                                            };
  20. int privileges_needed[START_OPTIONS_NO] = {0,1,2};
  21.  
  22. char name[MAX_NAME_LEN + 2], content[MAX_CONTENT_LEN];
  23.  
  24. int manager() {
  25.   return 0;
  26. }
  27.  
  28. int sudoer() {
  29.   return 0;
  30. }
  31.  
  32. int handle(unsigned privileges) {
  33.   if (privileges >= PRIVILEGES_TYPES) return -1;
  34.   return 0;
  35. }
  36.  
  37. int add_book() {
  38.  
  39. }
  40.  
  41. void main () {
  42.   pam_handle_t* pamh = NULL;
  43.   int retval;
  44.   char *username = NULL;
  45.  
  46.   retval = pam_start("login", username, &login_conv, &pamh);
  47.   if (pamh == NULL || retval != PAM_SUCCESS) {
  48.     fprintf(stderr, "Error when starting: %d\n", retval);
  49.     exit(1);
  50.   }
  51.  
  52.   retval = pam_authenticate(pamh, 0);  /* próba autoryzacji */
  53.   if (retval != PAM_SUCCESS) {
  54.     fprintf(stderr, "Chyba się nie udało!\n");
  55.     exit(2);
  56.   }
  57.   else
  58.     fprintf(stderr, "Świetnie Ci poszło.\n");
  59.  
  60.   printf("OKEJ ZALOGOWANY TERAZ ROZRÓŻNIAM USERÓW I POZWALAM NA COŚ TAM\n");
  61.   unsigned privileges = 0;
  62.   if (manager()) {
  63.     printf("ZALOGOWANY JAKO MANAGER");
  64.     privileges = 2;
  65.  
  66.   }
  67.   else if(sudoer()) {
  68.     printf("ZALOGOWANY JAKO PRACOWNIK ZE ZWIĘKSZONYM DOSTĘPEM");
  69.     privileges = 1;
  70.   }
  71.   else {
  72.     printf("ZALOGOWANY JAKO PRACOWNIK ZE ZWYKŁYM DOSTĘPEM");
  73.     privileges = 0;
  74.   }
  75.  
  76.   while (1) {
  77.     // pętla działania programu
  78.     retval = handle(privileges);
  79.     if (retval != 0) {
  80.       printf("BŁĄD PROGRAMU");
  81.       exit(1);
  82.     }
  83.   }
  84.  
  85.  
  86.  
  87.  
  88.   pam_end(pamh, PAM_SUCCESS);
  89.   exit(0);
  90. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement