From 7e1decdcd17f0c1c070202a4d08c3be4f64de669 Mon Sep 17 00:00:00 2001 From: Ivan Yarcev Date: Mon, 10 Feb 2025 12:05:59 +0600 Subject: [PATCH] Fixed file creation --- source/libublsettings.c | 13 +++++++------ source/libublsettings.h | 2 +- 2 files changed, 8 insertions(+), 7 deletions(-) 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]