Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F148166252
D24395.id.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
5 KB
Referenced Files
None
Subscribers
None
D24395.id.diff
View Options
Index: usr.sbin/pw/pw.h
===================================================================
--- usr.sbin/pw/pw.h
+++ usr.sbin/pw/pw.h
@@ -64,6 +64,7 @@
};
#define _DEF_DIRMODE (S_IRWXU | S_IRWXG | S_IRWXO)
+#define _DEF_LOGMODE (S_IRUSR | S_IWUSR)
#define _PW_CONF "pw.conf"
#define _UC_MAXLINE 1024
#define _UC_MAXSHELLS 32
Index: usr.sbin/pw/pw.conf.5
===================================================================
--- usr.sbin/pw/pw.conf.5
+++ usr.sbin/pw/pw.conf.5
@@ -76,6 +76,8 @@
mail to send to new users
.It logfile
log user/group modifications to this file
+.It logmode
+permissions for the log file
.It home
root directory for home directories
.It homemode
@@ -193,6 +195,7 @@
.Pp
The
.Ar logfile
+keyword is optional.
option allows logging of password file modifications into the
nominated log file.
To avoid creating or adding to such a logfile, then leave this
@@ -200,6 +203,12 @@
.Ql \&no .
.Pp
The
+.Ar logmode
+keyword is optional
+specifies the permissions of the log file created and is modified by
+.Xr umask 2 . Default: 0600
+.Pp
+The
.Ar home
keyword is mandatory.
This specifies the location of the directory in which all new user
Index: usr.sbin/pw/pw_conf.c
===================================================================
--- usr.sbin/pw/pw_conf.c
+++ usr.sbin/pw/pw_conf.c
@@ -52,6 +52,7 @@
_UC_DOTDIR,
_UC_NEWMAIL,
_UC_LOGFILE,
+ _UC_LOGMODE,
_UC_HOMEROOT,
_UC_HOMEMODE,
_UC_SHELLPATH,
@@ -96,6 +97,7 @@
"/usr/share/skel", /* Where to obtain skeleton files */
NULL, /* Mail to send to new accounts */
"/var/log/userlog", /* Where to log changes */
+ _DEF_LOGMODE, /* Log file perms */
"/home", /* Where to create home directory */
_DEF_DIRMODE, /* Home directory perms, modified by umask */
"/bin", /* Where shells are located */
@@ -120,6 +122,7 @@
"\n# Obtain default dotfiles from this directory\n",
"\n# Mail this file to new user (/etc/newuser.msg or no)\n",
"\n# Log add/change/remove information in this file\n",
+ "\n# Mode for the log file, will be modified by umask\n",
"\n# Root directory in which $HOME directory is created\n",
"\n# Mode for the new $HOME directory, will be modified by umask\n",
"\n# Colon separated list of directories containing valid shells\n",
@@ -146,6 +149,7 @@
"skeleton",
"newmail",
"logfile",
+ "logmode",
"home",
"homemode",
"shellpath",
@@ -301,6 +305,12 @@
config.logfile = (q == NULL || !boolean_val(q, 1))
? NULL : newstr(q);
break;
+ case _UC_LOGMODE:
+ modeset = setmode(q);
+ config.logmode = (q == NULL || !boolean_val(q, 1))
+ ? _DEF_LOGMODE : getmode(modeset, _DEF_LOGMODE);
+ free(modeset);
+ break;
case _UC_HOMEROOT:
config.home = (q == NULL || !boolean_val(q, 1))
? "/home" : newstr(q);
@@ -463,6 +473,10 @@
sbuf_cat(buf, cnf->logfile ? cnf->logfile :
boolean_str(0));
break;
+ case _UC_LOGMODE:
+ sbuf_printf(buf, "%04o", cnf->logmode);
+ quote = 0;
+ break;
case _UC_HOMEROOT:
sbuf_cat(buf, cnf->home);
break;
Index: usr.sbin/pw/pw_log.c
===================================================================
--- usr.sbin/pw/pw_log.c
+++ usr.sbin/pw/pw_log.c
@@ -57,7 +57,7 @@
if (logfile == NULL) {
/* With umask==0 we need to control file access modes on create */
- fd = open(cnf->logfile, O_WRONLY | O_CREAT | O_APPEND, 0600);
+ fd = open(cnf->logfile, O_WRONLY | O_CREAT | O_APPEND, cnf->logmode);
if (fd == -1) {
return;
}
Index: usr.sbin/pw/pw_user.c
===================================================================
--- usr.sbin/pw/pw_user.c
+++ usr.sbin/pw/pw_user.c
@@ -1149,6 +1149,8 @@
cmdcnf->newmail = cfg->newmail;
if (cmdcnf->logfile == NULL)
cmdcnf->logfile = cfg->logfile;
+ if (cmdcnf->logmode == 0)
+ cmdcnf->logmode = cfg->logmode;
if (cmdcnf->home == NULL)
cmdcnf->home = cfg->home;
if (cmdcnf->homemode == 0)
Index: usr.sbin/pw/pwupd.h
===================================================================
--- usr.sbin/pw/pwupd.h
+++ usr.sbin/pw/pwupd.h
@@ -62,6 +62,7 @@
char *dotdir; /* Where to obtain skeleton files */
char *newmail; /* Mail to send to new accounts */
char *logfile; /* Where to log changes */
+ mode_t logmode; /* Log file permissions */
char *home; /* Where to create home directory */
mode_t homemode; /* Home directory permissions */
char *shelldir; /* Where shells are located */
Index: usr.sbin/pw/tests/pw-modified.conf
===================================================================
--- usr.sbin/pw/tests/pw-modified.conf
+++ usr.sbin/pw/tests/pw-modified.conf
@@ -23,6 +23,9 @@
# Log add/change/remove information in this file
logfile = "/var/log/userlog"
+# Mode for the log file, will be modified by umask
+logmode = 0600
+
# Root directory in which $HOME directory is created
home = "/home"
Index: usr.sbin/pw/tests/pw.conf
===================================================================
--- usr.sbin/pw/tests/pw.conf
+++ usr.sbin/pw/tests/pw.conf
@@ -23,6 +23,9 @@
# Log add/change/remove information in this file
logfile = "/var/log/userlog"
+# Mode for the log file, will be modified by umask
+logmode = 0600
+
# Root directory in which $HOME directory is created
home = "/home"
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Tue, Mar 17, 5:33 AM (53 m, 48 s)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
29753261
Default Alt Text
D24395.id.diff (5 KB)
Attached To
Mode
D24395: pw: add new configuration keyword logmode in pw.conf
Attached
Detach File
Event Timeline
Log In to Comment