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--"));
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章