Linux设置Java服务启动用户一系列的配置

添加用户

这里创建一个用户,用于启动jar包的用户,不需要创建家目录。

useradd -M <用户名>

有两种方式可以以特定用户进行启动。

第一种是使用su命令,使用su -c 命令 用户名的方式进行启动。

第二种就是使用sudo命令,这个需要配置下/etc/sudoers文件,推荐使用visudo命令进行配置,因为这个命令具备语法校验。

在大约visudo命令打开的文件,第100行,下方添加 用户名 来源=(身份) NOPASSWD: 命令
多个命令使用逗号进行分割。
NOPASSWD:不需要可以进行删除。

如果是nginx代理访问静态文件,可让nginx的扩展组加入到静态文件的所属组中。

usermod -a -G 组名 用户

这样这个用户的扩展组就新增了这个组名。

还需要确保就是文件所在的目录,nginx服务进程具备访问(查看组或其他人)的权限位,
还需要确保文件的组权限具备读的权限,不然nginx也无法读取资源流。

设置权限字符串的命令:

chmod 755 目录
chmod 644 文件

最后一步就是重启下nginx,不然nginx用户的最新权限并未应用上,导致访问会是403.

systemctl restart nginx

如果Java的SpringBoot jar服务创建出来的文件是600,也就是'rw-------'的话,需要在上传文件成功后添加下给权限的语句。

        File targetFile = new File(absolutePath);
        ((MultipartFile)file).transferTo(targetFile);
        // "rw-r--r--"这里的是权限的字符串,可根据需要自行调整。
        // r=4  w=2  x=1   属主:rwx 属组:rwx 其他用户:rwx
        Files.setPosixFilePermissions(targetFile.toPath(), PosixFilePermissions.fromString("rw-r--r--"));
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章