Linux服务器各软件的用户配置

1. 创建用来ssh的用户,先看useradd和userdel的帮助文档

~$ useradd -h
用法:useradd [选项] 登录
      useradd -D
      useradd -D [选项]

选项:
  -b, --base-dir BASE_DIR	新账户的主目录的基目录
  -c, --comment COMMENT         新账户的 GECOS 字段
  -d, --home-dir HOME_DIR       新账户的主目录
  -D, --defaults		显示或更改默认的 useradd 配置
  -e, --expiredate EXPIRE_DATE  新账户的过期日期
  -f, --inactive INACTIVE       新账户的密码不活动期
  -g, --gid GROUP		新账户主组的名称或 ID
  -G, --groups GROUPS	新账户的附加组列表
  -h, --help                    显示此帮助信息并推出
  -k, --skel SKEL_DIR	使用此目录作为骨架目录
  -K, --key KEY=VALUE           不使用 /etc/login.defs 中的默认值
  -l, --no-log-init	不要将此用户添加到最近登录和登录失败数据库
  -m, --create-home	创建用户的主目录
  -M, --no-create-home		不创建用户的主目录
  -N, --no-user-group	不创建同名的组
  -o, --non-unique		允许使用重复的 UID 创建用户
  -p, --password PASSWORD		加密后的新账户密码
  -r, --system                  创建一个系统账户
  -R, --root CHROOT_DIR         chroot 到的目录
  -s, --shell SHELL		新账户的登录 shell
  -u, --uid UID			新账户的用户 ID
  -U, --user-group		创建与用户同名的组
  -Z, --selinux-user SEUSER		为 SELinux 用户映射使用指定 SEUSER

~$ userdel -h
用法:userdel [选项] 登录

选项:
  -f, --force                   即使不属于此用户,也强制删除文件
  -h, --help                    显示此帮助信息并推出
  -r, --remove                  删除主目录和邮件池
  -R, --root CHROOT_DIR         chroot 到的目录
  -Z, --selinux-user            为用户删除所有的 SELinux 用户映射

执行命令创建manager用户,并设置密码:

# useradd -d /home/manager -m -U -s /bin/bash manager
# passwd manager
输入新的 UNIX 密码: 
重新输入新的 UNIX 密码: 
passwd:已成功更新密码

 使用manager用户登录后可以使用su命令,输入root的密码切换成root用户.

manager@server:/$ su
密码: 
root@server:/#

 修改/etc/ssh/sshd_config的PermitRootLogin为no来禁止root通过ssh登录

2. 创建nginx用户来运行nginx

#useradd -lMU -s /usr/sbin/nologin nginx

 修改nginx.conf

user  nginx;

 如果nginx只访问静态文件,则nginx用户需对静态文件目录需有x权限,静态文件有r权限

3. 创建tomcat用户来运行tomcat

# useradd -lMU -s /bin/bash tomcat #这里需配置/bin/bash,否则无法运行tomcat

 修改$TOMCAT_HOME/bin/startup.sh,设置使用tomcat用户来运行tomcat

#在头部增加
user=tomcat # tomcat  run  user

#在底部删除
exec "$PRGDIR"/"$EXECUTABLE" start "$@"

#在底部增加
if [ "$USER" != "$user" ];then
         exec su  "$user"  "$PRGDIR"/"$EXECUTABLE" start "$@"
else
         exec "$PRGDIR"/"$EXECUTABLE" start "$@"
fi

 运行bin/startup.sh(使用root用户运行、或者输入root用户的密码)

4. 创建jetty用户来运行jetty (针对jetty8.1.16)

# useradd -lMU -s /usr/sbin/nologin jetty

 修改$JETTY_HOME/bin/jetty.sh,设置使用jetty用户来运行jetty

#在头部增加
JETTY_USER=jetty

#如果用root用户来运行,会把JETTY_RUN目录设为/var/run,这样启动多个jetty时,jetty.pid文件会重复,所以最好将JETTY_PID,JETTY_STATE按如下方式修改
#这行修改为下面这行
  JETTY_PID="$JETTY_RUN/jetty.pid"
  JETTY_PID="$JETTY_HOME/logs/jetty.pid"
#这行修改为下面这行
  JETTY_STATE=$JETTY_HOME/jetty.state
  JETTY_STATE=$JETTY_HOME/logs/jetty.state

#设置内存
RUN_ARGS=(${JAVA_OPTIONS[@]} -Xmx2g -Xms2g -Xmn1g -XX:PermSize=256m -XX:MaxPermSize=512m -Xss256k -jar "$JETTY_START" $JETTY_ARGS "${CONFIGS[@]}")

#设置tmp
修改TMPDIR=${TMPDIR:-jettytmp}为TMPDIR=${TMPDIR:-/tmp}
或者在JETTY_HOME目录下建jettytmp目录,并设置jetty用户有rwx权限

  可以运行bin/jetty.sh check来输出参数查看是否正确

  运行bin/jetty.sh start来启动jetty,注意web工程目录和logs日志目录对jetty用户的权限,还得确保jdk目录对jetty用户的权限.

相关推荐