diff --git a/source/libublsettings.c b/source/libublsettings.c index 5ec7727..db1e438 100644 --- a/source/libublsettings.c +++ b/source/libublsettings.c @@ -2537,7 +2537,6 @@ int yon_file_save(char *file_path, char *text){ FILE *file = fopen(file_path,"w"); struct passwd *user = getpwnam(yon_ubl_root_user_get()); if (chown(file_path,user->pw_uid,user->pw_gid)){}; - chmod(file_path,0644); if (file){ fputs(text,file); fclose(file); @@ -2554,7 +2553,6 @@ int yon_file_create(char *path, char *name, int rules){ if (fl){ struct passwd *user = getpwnam(yon_ubl_root_user_get()); if (chown(path,user->pw_uid,user->pw_gid)){}; - chmod(full_path,rules); fclose(fl); return 1; } else { @@ -2568,7 +2566,7 @@ int yon_file_create(char *path, char *name, int rules){ } } -int yon_file_create_full_path(char *path, int rules){ +int yon_file_create_full_path(char *path, mode_t rules){ if (path){ if (access(path,F_OK)){ int size; @@ -2580,13 +2578,16 @@ int yon_file_create_full_path(char *path, int rules){ if (access(temp,F_OK)){ if (i!=size-1){ mkdir(temp,0755); + struct passwd *user = getpwnam(yon_ubl_root_user_get()); } else { FILE *fl = fopen(temp,"w"); fclose(fl); } - struct passwd *user = getpwnam(yon_ubl_root_user_get()); - int chown_success = chown(temp,user->pw_uid,user->pw_gid); - int chmod_success = chmod(temp,rules); + + } + if (i>2){ + struct passwd *user = getpwnam(yon_ubl_root_user_get()); + int chown_success = chown(temp,user->pw_uid,user->pw_gid); } } if (!yon_char_is_empty(current)) free(current); diff --git a/source/libublsettings.h b/source/libublsettings.h index 0fa5378..6c35671 100644 --- a/source/libublsettings.h +++ b/source/libublsettings.h @@ -697,7 +697,7 @@ int yon_file_create(char *path, char *name, int rules); * Создать файл по пути [path] * С правами доступа [rules] (от 0000 до 0777) */ -int yon_file_create_full_path(char *path, int rules); +int yon_file_create_full_path(char *path, mode_t rules); /**yon_file_ls (char *path, int *size) * [EN]