Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F136493793
D20721.id59972.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
7 KB
Referenced Files
None
Subscribers
None
D20721.id59972.diff
View Options
Index: head/libexec/rc/rc.d/motd
===================================================================
--- head/libexec/rc/rc.d/motd
+++ head/libexec/rc/rc.d/motd
@@ -4,48 +4,52 @@
#
# PROVIDE: motd
-# REQUIRE: mountcritremote
+# REQUIRE: mountcritremote FILESYSTEMS
# BEFORE: LOGIN
. /etc/rc.subr
name="motd"
-desc="Update /etc/motd"
+desc="Update /var/run/motd"
rcvar="update_motd"
start_cmd="motd_start"
stop_cmd=":"
+COMPAT_MOTD="/etc/motd"
+TARGET="/var/run/motd"
+TEMPLATE="/etc/motd.template"
PERMS="644"
motd_start()
{
- # Update kernel info in /etc/motd
+ # Update kernel info in /var/run/motd
# Must be done *before* interactive logins are possible
# to prevent possible race conditions.
#
check_startmsgs && echo -n 'Updating motd:'
- if [ ! -f /etc/motd ]; then
- install -c -o root -g wheel -m ${PERMS} /dev/null /etc/motd
+ if [ ! -f "${TEMPLATE}" ]; then
+ # Create missing template from existing regular motd file, if
+ # one exists.
+ if [ -f "${COMPAT_MOTD}" ]; then
+ sed '1{/^FreeBSD.*/{d;};};' "${COMPAT_MOTD}" > "${TEMPLATE}"
+ chmod $PERMS "${TEMPLATE}"
+ rm -f "${COMPAT_MOTD}"
+ else
+ # Otherwise, create an empty template file.
+ install -c -o root -g wheel -m ${PERMS} /dev/null "${TEMPLATE}"
+ fi
+ # Provide compatibility symlink:
+ if [ ! -h "${COMPAT_MOTD}" ]; then
+ ln -sF "${TARGET}" "${COMPAT_MOTD}"
+ fi
fi
- if [ ! -w /etc/motd ]; then
- echo ' /etc/motd is not writable, update failed.'
- return
- fi
-
T=`mktemp -t motd`
uname -v | sed -e 's,^\([^#]*\) #\(.* [1-2][0-9][0-9][0-9]\).*/\([^\]*\) $,\1 (\3) #\2,' > ${T}
- awk '{if (NR == 1) {if ($1 == "FreeBSD") {next} else {print "\n"$0}} else {print}}' < /etc/motd >> ${T}
+ cat "${TEMPLATE}" >> ${T}
- if ! cmp -s $T /etc/motd; then
- mv -f $T /etc/.motd.tmp
- fsync /etc/.motd.tmp
- mv -f /etc/.motd.tmp /etc/motd
- chmod ${PERMS} /etc/motd
- fsync /etc
- else
- rm -f $T
- fi
+ install -C -o root -g wheel -m "${PERMS}" "$T" "${TARGET}"
+ rm -f "$T"
check_startmsgs && echo '.'
}
Index: head/release/picobsd/tinyware/login/pathnames.h
===================================================================
--- head/release/picobsd/tinyware/login/pathnames.h
+++ head/release/picobsd/tinyware/login/pathnames.h
@@ -39,7 +39,7 @@
#include <paths.h>
#define _PATH_HUSHLOGIN ".hushlogin"
-#define _PATH_MOTDFILE "/etc/motd"
+#define _PATH_MOTDFILE "/var/run/motd"
#define _PATH_LOGACCESS "/etc/login.access"
#define _PATH_FBTAB "/etc/fbtab"
#define _PATH_LOGINDEVPERM "/etc/logindevperm"
Index: head/share/man/man5/motd.5
===================================================================
--- head/share/man/man5/motd.5
+++ head/share/man/man5/motd.5
@@ -3,7 +3,7 @@
.\" This file is in the public domain.
.\" $FreeBSD$
.\"
-.Dd February 13, 1997
+.Dd July 20, 2019
.Dt MOTD 5
.Os
.Sh NAME
@@ -11,13 +11,16 @@
.Nd file containing message(s) of the day
.Sh DESCRIPTION
The file
-.Pa /etc/motd
+.Pa /var/run/motd
is normally displayed by
.Xr login 1
after a user has logged in but before the shell is run.
It is generally used for important system-wide announcements.
During system startup, a line containing the kernel version string is
-prepended to this file.
+prepended to
+.Pa /etc/motd.template
+and the contents are written to
+.Pa /var/run/motd .
.Pp
Individual users may suppress the display of this file by
creating a file named
@@ -26,11 +29,13 @@
.Xr login.conf 5 .
.Sh FILES
.Bl -tag -width $HOME/.hushlogin -compact
-.It Pa /etc/motd
+.It Pa /etc/motd.template
+The template file that system administrators can edit.
+.It Pa /var/run/motd
The message of the day.
.It Pa $HOME/.hushlogin
Suppresses output of
-.Pa /etc/motd .
+.Pa /var/run/motd .
.El
.Sh EXAMPLES
.Bd -literal
@@ -41,3 +46,9 @@
.Sh SEE ALSO
.Xr login 1 ,
.Xr login.conf 5
+.Sh HISTORY
+Prior to
+.Fx 13.0 ,
+.Nm
+lived in
+.Pa /etc .
Index: head/usr.bin/login/Makefile
===================================================================
--- head/usr.bin/login/Makefile
+++ head/usr.bin/login/Makefile
@@ -3,7 +3,7 @@
.include <src.opts.mk>
-CONFS= fbtab login.conf motd login.access
+CONFS= fbtab login.conf motd.template login.access
PROG= login
SRCS= login.c login_fbtab.c
CFLAGS+=-DLOGALL
Index: head/usr.bin/login/login.1
===================================================================
--- head/usr.bin/login/login.1
+++ head/usr.bin/login/login.1
@@ -28,7 +28,7 @@
.\" @(#)login.1 8.2 (Berkeley) 5/5/94
.\" $FreeBSD$
.\"
-.Dd September 13, 2006
+.Dd July 20, 2019
.Dt LOGIN 1
.Os
.Sh NAME
@@ -131,7 +131,7 @@
changes device protections
.It Pa /etc/login.conf
login class capabilities database
-.It Pa /etc/motd
+.It Pa /var/run/motd
message-of-the-day
.It Pa /var/mail/user
system mailboxes
Index: head/usr.bin/login/login.conf
===================================================================
--- head/usr.bin/login/login.conf
+++ head/usr.bin/login/login.conf
@@ -25,7 +25,7 @@
default:\
:passwd_format=sha512:\
:copyright=/etc/COPYRIGHT:\
- :welcome=/etc/motd:\
+ :welcome=/var/run/motd:\
:setenv=MAIL=/var/mail/$,BLOCKSIZE=K:\
:path=/sbin /bin /usr/sbin /usr/bin /usr/local/sbin /usr/local/bin ~/bin:\
:nologin=/var/run/nologin:\
@@ -120,7 +120,7 @@
##
#standard:\
# :copyright=/etc/COPYRIGHT:\
-# :welcome=/etc/motd:\
+# :welcome=/var/run/motd:\
# :setenv=MAIL=/var/mail/$,BLOCKSIZE=K:\
# :path=~/bin /bin /usr/bin /usr/local/bin:\
# :manpath=/usr/share/man /usr/local/man:\
Index: head/usr.bin/login/motd
===================================================================
--- head/usr.bin/login/motd
+++ head/usr.bin/login/motd
@@ -1,21 +0,0 @@
-FreeBSD ?.?.? (UNKNOWN)
-
-Welcome to FreeBSD!
-
-Release Notes, Errata: https://www.FreeBSD.org/releases/
-Security Advisories: https://www.FreeBSD.org/security/
-FreeBSD Handbook: https://www.FreeBSD.org/handbook/
-FreeBSD FAQ: https://www.FreeBSD.org/faq/
-Questions List: https://lists.FreeBSD.org/mailman/listinfo/freebsd-questions/
-FreeBSD Forums: https://forums.FreeBSD.org/
-
-Documents installed with the system are in the /usr/local/share/doc/freebsd/
-directory, or can be installed later with: pkg install en-freebsd-doc
-For other languages, replace "en" with a language code like de or fr.
-
-Show the version of FreeBSD installed: freebsd-version ; uname -a
-Please include that output and any error messages when posting questions.
-Introduction to manual pages: man man
-FreeBSD directory layout: man hier
-
-Edit /etc/motd to change this login announcement.
Index: head/usr.bin/login/motd.template
===================================================================
--- head/usr.bin/login/motd.template
+++ head/usr.bin/login/motd.template
@@ -0,0 +1,20 @@
+
+Welcome to FreeBSD!
+
+Release Notes, Errata: https://www.FreeBSD.org/releases/
+Security Advisories: https://www.FreeBSD.org/security/
+FreeBSD Handbook: https://www.FreeBSD.org/handbook/
+FreeBSD FAQ: https://www.FreeBSD.org/faq/
+Questions List: https://lists.FreeBSD.org/mailman/listinfo/freebsd-questions/
+FreeBSD Forums: https://forums.FreeBSD.org/
+
+Documents installed with the system are in the /usr/local/share/doc/freebsd/
+directory, or can be installed later with: pkg install en-freebsd-doc
+For other languages, replace "en" with a language code like de or fr.
+
+Show the version of FreeBSD installed: freebsd-version ; uname -a
+Please include that output and any error messages when posting questions.
+Introduction to manual pages: man man
+FreeBSD directory layout: man hier
+
+Edit /etc/motd.template to change this login announcement.
Index: head/usr.bin/login/pathnames.h
===================================================================
--- head/usr.bin/login/pathnames.h
+++ head/usr.bin/login/pathnames.h
@@ -35,6 +35,6 @@
#include <paths.h>
#define _PATH_HUSHLOGIN ".hushlogin"
-#define _PATH_MOTDFILE "/etc/motd"
+#define _PATH_MOTDFILE "/var/run/motd"
#define _PATH_FBTAB "/etc/fbtab"
#define _PATH_LOGINDEVPERM "/etc/logindevperm"
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Wed, Nov 19, 1:15 AM (5 h, 19 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
25573926
Default Alt Text
D20721.id59972.diff (7 KB)
Attached To
Mode
D20721: motd: Generate from template to /var/run
Attached
Detach File
Event Timeline
Log In to Comment