添加用戶
這裏創建一個用戶,用於啓動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--"));