最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Nginx二進(jìn)制程序文件sbin路徑及其運(yùn)行權(quán)限

 更新時(shí)間:2026年04月20日 09:35:17   作者:冷炫風(fēng)刃  
本文主要介紹了Nginx二進(jìn)制程序文件sbin路徑及其運(yùn)行權(quán)限,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

Nginx 二進(jìn)制程序默認(rèn)位于 sbin 目錄下,運(yùn)行權(quán)限通常需要 root 啟動(dòng)后降權(quán)到普通用戶。以下是詳細(xì)說明和最佳實(shí)踐配置。

默認(rèn)路徑與權(quán)限

標(biāo)準(zhǔn)安裝路徑

類型默認(rèn)路徑說明
二進(jìn)制程序/usr/sbin/nginx 或 /usr/local/nginx/sbin/nginx主程序文件
配置文件/etc/nginx/nginx.conf 或 /usr/local/nginx/conf/nginx.conf主配置
日志目錄/var/log/nginx/訪問/錯(cuò)誤日志
臨時(shí)文件/var/cache/nginx/ 或 /var/tmp/nginx/緩存、臨時(shí)數(shù)據(jù)
PID 文件/var/run/nginx.pid 或 /run/nginx.pid進(jìn)程標(biāo)識(shí)

文件權(quán)限檢查

# 查看二進(jìn)制權(quán)限
ls -l /usr/sbin/nginx
# -rwxr-xr-x 1 root root  1.4M Jan 15 09:23 /usr/sbin/nginx
# 查看運(yùn)行用戶(編譯時(shí)指定,默認(rèn) nobody)
nginx -V 2>&1 | grep "user"
# --user=nginx --group=nginx
# 查看當(dāng)前運(yùn)行進(jìn)程的用戶
ps aux | grep nginx
# root      1234  0.0  0.1  ...  nginx: master process /usr/sbin/nginx
# nginx     1235  0.0  0.2  ...  nginx: worker process

權(quán)限配置詳解

1. 主進(jìn)程(Master)權(quán)限

# 必須由 root 啟動(dòng)(綁定 80/443 端口需要特權(quán))
sudo /usr/sbin/nginx
# 或 systemd 管理
sudo systemctl start nginx

為什么需要 root:

  • 綁定特權(quán)端口(< 1024,如 80、443)
  • 寫入 /var/run/nginx.pid
  • 打開日志文件(通常屬主為 root)

2. 工作進(jìn)程(Worker)降權(quán)

nginx.conf 頂部配置:

# 指定 worker 進(jìn)程運(yùn)行的用戶和組
user nginx nginx;    # 格式:user 用戶名 組名;
# 或僅指定用戶(組同名)
user www-data;

降權(quán)流程:

root 啟動(dòng) master → 讀取配置 → fork worker → worker 切換到 nginx 用戶

3. 目錄權(quán)限設(shè)置

# 創(chuàng)建專用用戶(如果不存在)
sudo useradd -r -s /sbin/nologin nginx
# 網(wǎng)站目錄(worker 需要讀?。?
sudo chown -R nginx:nginx /var/www/html
sudo chmod -R 755 /var/www/html
# 日志目錄(worker 需要寫入)
sudo mkdir -p /var/log/nginx
sudo chown -R nginx:nginx /var/log/nginx
sudo chmod 755 /var/log/nginx
# 緩存/臨時(shí)目錄(如啟用 fastcgi_cache)
sudo mkdir -p /var/cache/nginx
sudo chown -R nginx:nginx /var/cache/nginx
sudo chmod 750 /var/cache/nginx
# PID 目錄(master 寫入,worker 只讀)
sudo chown root:root /var/run
sudo chmod 755 /var/run

生產(chǎn)環(huán)境安全配置

最小權(quán)限原則配置

# /etc/nginx/nginx.conf
# 1. 降權(quán)運(yùn)行(必須配置在全局塊頂部)
user nginx nginx;
# 2. 限制 worker 數(shù)量(通常等于 CPU 核心數(shù))
worker_processes auto;
# 3. 限制單個(gè) worker 連接數(shù)
worker_connections 1024;
# 4. 禁用版本信息泄露
server_tokens off;
# 5. 限制文件上傳大?。ǚ?DoS)
client_max_body_size 10m;

文件系統(tǒng)權(quán)限加固腳本

#!/bin/bash
# nginx-permission-hardening.sh
NGINX_USER="nginx"
NGINX_GROUP="nginx"
NGINX_SBIN="/usr/sbin/nginx"
NGINX_CONF="/etc/nginx"
NGINX_LOG="/var/log/nginx"
NGINX_CACHE="/var/cache/nginx"
# 1. 設(shè)置二進(jìn)制權(quán)限(root 執(zhí)行,其他只讀)
sudo chown root:root $NGINX_SBIN
sudo chmod 755 $NGINX_SBIN
sudo chmod u+s $NGINX_SBIN  # 可選:SUID,允許普通用戶綁定特權(quán)端口(不推薦)
# 2. 配置文件(root 可寫,worker 只讀)
sudo chown -R root:root $NGINX_CONF
sudo chmod -R 755 $NGINX_CONF
sudo chmod -R 644 $NGINX_CONF/conf.d/*  # 站點(diǎn)配置
# 3. 敏感文件保護(hù)(如包含密碼的上游配置)
sudo chown root:root $NGINX_CONF/conf.d/upstream.conf
sudo chmod 600 $NGINX_CONF/conf.d/upstream.conf
# 4. 日志目錄(worker 可寫)
sudo mkdir -p $NGINX_LOG
sudo chown -R $NGINX_USER:$NGINX_GROUP $NGINX_LOG
sudo chmod 755 $NGINX_LOG
# 5. 緩存目錄(worker 可寫)
sudo mkdir -p $NGINX_CACHE
sudo chown -R $NGINX_USER:$NGINX_GROUP $NGINX_CACHE
sudo chmod 750 $NGINX_CACHE
# 6. 設(shè)置 ACL(如需多用戶訪問)
sudo setfacl -R -m u:$NGINX_USER:rx $NGINX_CONF
sudo setfacl -R -m d:u:$NGINX_USER:rx $NGINX_CONF
echo "Nginx permissions hardened."

特殊場(chǎng)景處理

場(chǎng)景 1:非 root 用戶管理 Nginx(開發(fā)環(huán)境)

# 編譯時(shí)指定非特權(quán)端口和自定義路徑
./configure \
    --prefix=/home/dev/nginx \
    --sbin-path=bin/nginx \
    --conf-path=conf/nginx.conf \
    --pid-path=logs/nginx.pid \
    --http-log-path=logs/access.log \
    --error-log-path=logs/error.log \
    --http-client-body-temp-path=temp/client_body \
    --http-proxy-temp-path=temp/proxy \
    --http-fastcgi-temp-path=temp/fastcgi \
    --user=dev \
    --group=dev
# 監(jiān)聽 8080 端口(無需 root)
server {
    listen 8080;
    ...
}

場(chǎng)景 2:Capabilities 特權(quán)降權(quán)(Linux 特有)

# 給 nginx 二進(jìn)制添加綁定特權(quán)端口的能力,無需 root 啟動(dòng)
sudo setcap cap_net_bind_service=+ep /usr/sbin/nginx
# 驗(yàn)證
getcap /usr/sbin/nginx
# /usr/sbin/nginx = cap_net_bind_service+ep
# 此時(shí)可用普通用戶啟動(dòng),但仍能綁定 80/443
sudo -u nginx /usr/sbin/nginx

場(chǎng)景 3:Systemd 服務(wù)配置

# /lib/systemd/system/nginx.service
[Unit]
Description=A high performance web server and a reverse proxy server
After=network.target
[Service]
Type=forking
PIDFile=/run/nginx.pid
ExecStartPre=/usr/sbin/nginx -t -q -g 'daemon on; master_process on;'
ExecStart=/usr/sbin/nginx -g 'daemon on; master_process on;'
ExecReload=/usr/sbin/nginx -g 'daemon on; master_process on;' -s reload
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true
# 安全加固
User=root           # 啟動(dòng)用戶(master)
Group=root
UMask=0027
NoNewPrivileges=true
ProtectSystem=full
ProtectHome=true
[Install]
WantedBy=multi-user.target

故障排查

# 檢查權(quán)限錯(cuò)誤
sudo -u nginx /usr/sbin/nginx -t
# 如果報(bào)錯(cuò) "permission denied",說明 worker 用戶無法讀取配置
# 檢查端口綁定權(quán)限
sudo -u nginx /usr/sbin/nginx
# bind() to 0.0.0.0:80 failed (13: Permission denied)
# 檢查日志寫入權(quán)限
sudo -u nginx touch /var/log/nginx/test
# 測(cè)試 worker 是否能寫入日志
# 查看詳細(xì)啟動(dòng)日志
sudo strace -e trace=file /usr/sbin/nginx 2>&1 | grep -E "(open|access|stat)"

總結(jié)

組件推薦屬主推薦權(quán)限說明
/usr/sbin/nginxroot:root755二進(jìn)制程序
/etc/nginx/root:root755/644配置文件
/var/log/nginx/nginx:nginx755日志目錄
/var/cache/nginx/nginx:nginx750緩存目錄
網(wǎng)站根目錄nginx:nginx755/644靜態(tài)文件
上傳目錄nginx:nginx755/644如有上傳功能

核心原則:Master 進(jìn)程保持 root 啟動(dòng)以獲取必要特權(quán),Worker 進(jìn)程嚴(yán)格降權(quán)到普通用戶運(yùn)行,文件系統(tǒng)權(quán)限遵循最小必要原則。

到此這篇關(guān)于Nginx二進(jìn)制程序文件sbin路徑及其運(yùn)行權(quán)限的文章就介紹到這了,更多相關(guān)Nginx sbin路徑及權(quán)限內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • nginx七層負(fù)載均衡配置詳解

    nginx七層負(fù)載均衡配置詳解

    本文主要介紹了nginx七層負(fù)載均衡配置詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-07-07
  • nginx緩存及錯(cuò)誤頁面配置

    nginx緩存及錯(cuò)誤頁面配置

    這篇文章主要介紹了nginx緩存及錯(cuò)誤頁面配置的相關(guān)資料,需要的朋友可以參考下
    2017-01-01
  • Nginx性能調(diào)優(yōu)與深度監(jiān)控的全攻略

    Nginx性能調(diào)優(yōu)與深度監(jiān)控的全攻略

    本文介紹了Nginx的高性能編譯安裝、核心參數(shù)調(diào)優(yōu)、靜態(tài)資源緩存、日志切割、Gzip壓縮等調(diào)優(yōu)方案,并介紹了GoAccess實(shí)時(shí)日志分析和NginxVTS流量監(jiān)控兩大可視化監(jiān)控工具,幫助大家在高并發(fā)場(chǎng)景下穩(wěn)定、高效地運(yùn)行Nginx服務(wù),需要的朋友可以參考下
    2026-04-04
  • nginx全局變量整理小結(jié)

    nginx全局變量整理小結(jié)

    nginx全局變量整理小結(jié),方便需要的朋友
    2012-11-11
  • Nginx禁止指定UA訪問的方法

    Nginx禁止指定UA訪問的方法

    這篇文章主要介紹了Nginx禁止指定UA訪問的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-03-03
  • Nginx中定義404頁面并且返回404狀態(tài)碼的正確方法

    Nginx中定義404頁面并且返回404狀態(tài)碼的正確方法

    這篇文章主要介紹了Nginx中定義404頁面并且返回404狀態(tài)碼的正確方法,本文在一次AJAX調(diào)用時(shí)發(fā)現(xiàn)了這個(gè)問題,服務(wù)器返回了一個(gè)404頁頁但沒有返回404狀態(tài)碼,需要的朋友可以參考下
    2014-08-08
  • Node、Yarn安裝、切換源實(shí)現(xiàn)方式

    Node、Yarn安裝、切換源實(shí)現(xiàn)方式

    本文介紹了如何下載和使用Node.js,包括Node版本下載、Npm和yarn的管理命令,以及如何切換鏡像源以提高下載速度
    2026-03-03
  • nginx?流控使用的項(xiàng)目實(shí)踐

    nginx?流控使用的項(xiàng)目實(shí)踐

    本文主要介紹了nginx?流控使用的項(xiàng)目實(shí)踐
    2024-03-03
  • keepalived+nginx實(shí)現(xiàn)雙服務(wù)器主備方案

    keepalived+nginx實(shí)現(xiàn)雙服務(wù)器主備方案

    本文主要介紹了使用keepalived和nginx實(shí)現(xiàn)雙服務(wù)器主備方案,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-12-12
  • keepalived+lvs 對(duì)nginx做負(fù)載均衡和高可用的操作方法

    keepalived+lvs 對(duì)nginx做負(fù)載均衡和高可用的操作方法

    這篇文章主要介紹了keepalived+lvs 對(duì)nginx做負(fù)載均衡和高可用的操作方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2023-12-12

最新評(píng)論

江安县| 会同县| 逊克县| 收藏| 周宁县| 固原市| 墨江| 邓州市| 扎兰屯市| 安吉县| 城固县| 南昌市| 丹寨县| 亚东县| 四平市| 平顶山市| 永寿县| 木里| 虎林市| 探索| 和田县| 本溪| 元谋县| 南汇区| 上高县| 鸡泽县| 皋兰县| 峨眉山市| 万山特区| 罗甸县| 社旗县| 义乌市| 康马县| 建瓯市| 扶绥县| 新余市| 常熟市| 巨野县| 牡丹江市| 安福县| 永泰县|