diff --git a/server/cmd/mattermost/commands/root.go b/server/cmd/mattermost/commands/root.go index 3dd3dea3e9..692ac30f53 100644 --- a/server/cmd/mattermost/commands/root.go +++ b/server/cmd/mattermost/commands/root.go @@ -4,6 +4,9 @@ package commands import ( + "os" + + "github.com/mattermost/mattermost/server/public/shared/mlog" "github.com/spf13/cobra" ) @@ -18,8 +21,18 @@ var RootCmd = &cobra.Command{ Use: "mattermost", Short: "Open source, self-hosted Slack-alternative", Long: `Mattermost offers workplace messaging across web, PC and phones with archiving, search and integration with your existing systems. Documentation available at https://docs.mattermost.com`, + PersistentPreRun: func(cmd *cobra.Command, args []string) { + checkForRootUser() + }, } func init() { RootCmd.PersistentFlags().StringP("config", "c", "", "Configuration file to use.") } + +// checkForRootUser logs a warning if the process is running as root +func checkForRootUser() { + if os.Geteuid() == 0 { + mlog.Warn("Running Mattermost as root is not recommended. Please use a non-root user.") + } +}