mirror of
https://github.com/systemd/systemd.git
synced 2024-12-25 01:34:28 +03:00
fileio: introduce warn_file_is_world_accessible()
This commit is contained in:
parent
15f8f026cf
commit
7a309a8c63
@ -843,3 +843,28 @@ int safe_fgetc(FILE *f, char *ret) {
|
|||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int warn_file_is_world_accessible(const char *filename, struct stat *st, const char *unit, unsigned line) {
|
||||||
|
struct stat _st;
|
||||||
|
|
||||||
|
if (!filename)
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
if (!st) {
|
||||||
|
if (stat(filename, &_st) < 0)
|
||||||
|
return -errno;
|
||||||
|
st = &_st;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ((st->st_mode & S_IRWXO) == 0)
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
if (unit)
|
||||||
|
log_syntax(unit, LOG_WARNING, filename, line, 0,
|
||||||
|
"%s has %04o mode that is too permissive, please adjust the access mode.",
|
||||||
|
filename, st->st_mode & 07777);
|
||||||
|
else
|
||||||
|
log_warning("%s has %04o mode that is too permissive, please adjust the access mode.",
|
||||||
|
filename, st->st_mode & 07777);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
@ -5,6 +5,7 @@
|
|||||||
#include <stdbool.h>
|
#include <stdbool.h>
|
||||||
#include <stddef.h>
|
#include <stddef.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
#include <sys/stat.h>
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
|
|
||||||
#include "macro.h"
|
#include "macro.h"
|
||||||
@ -86,3 +87,5 @@ static inline int read_nul_string(FILE *f, size_t limit, char **ret) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
int safe_fgetc(FILE *f, char *ret);
|
int safe_fgetc(FILE *f, char *ret);
|
||||||
|
|
||||||
|
int warn_file_is_world_accessible(const char *filename, struct stat *st, const char *unit, unsigned line);
|
||||||
|
Loading…
Reference in New Issue
Block a user