mirror of
https://github.com/systemd/systemd.git
synced 2025-03-30 10:50:15 +03:00
sysusers: do not reject non-simplified paths for shell/home
/home/zbyszek/src/systemd-work/testcase.conf:3: '//sbin//nologin' is not a valid login shell field. This isn't very useful. The usual argument holds: people use templates to construct config, so paths may have doubled slashes and similar. Let's simplify paths so that the value that is pushed to /etc/passwd is nice and clean.
This commit is contained in:
parent
87c696f247
commit
eef74f9125
@ -1573,6 +1573,8 @@ static int parse_line(const char *fname, unsigned line, const char *buffer) {
|
||||
return log_syntax(NULL, LOG_ERR, fname, line, r,
|
||||
"Failed to replace specifiers in '%s': %m", home);
|
||||
|
||||
path_simplify(resolved_home);
|
||||
|
||||
if (!valid_home(resolved_home))
|
||||
return log_syntax(NULL, LOG_ERR, fname, line, SYNTHETIC_ERRNO(EINVAL),
|
||||
"'%s' is not a valid home directory field.", resolved_home);
|
||||
@ -1588,6 +1590,8 @@ static int parse_line(const char *fname, unsigned line, const char *buffer) {
|
||||
return log_syntax(NULL, LOG_ERR, fname, line, r,
|
||||
"Failed to replace specifiers in '%s': %m", shell);
|
||||
|
||||
path_simplify(resolved_shell);
|
||||
|
||||
if (!valid_shell(resolved_shell))
|
||||
return log_syntax(NULL, LOG_ERR, fname, line, SYNTHETIC_ERRNO(EINVAL),
|
||||
"'%s' is not a valid login shell field.", resolved_shell);
|
||||
|
Loading…
x
Reference in New Issue
Block a user