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用户的权限.