Linux使用者權限說明

  • 最後修改時間:2024-11-11
  • 概述

    在部署維運平台時,需要使用伺服器使用者登入終端,上傳、解壓、運作finekey工具,以部署啟動維運平台。

    在部署維運專案時,需要提供伺服器帳號稱與密碼,用於專案的部署和運作。

    執行相關操作,需要確定所使用的伺服器使用者的權限滿足需求。

    優先推薦使用超級管理者帳號部署

    優先推薦使用使用者id為0且名叫root的伺服器使用者部署維運平台和維運專案目。

    注意:使用者id為0但不叫root的使用者,不支援部署,請更名為root

    非超管帳號部署需要配置權限

    權限要求說明

    如需使用非超管root使用者進行專案的部署和運作,至少需要擁有以下權限:

    權限名
    使用場景

    sh

    用於一次性執行多個需要sudo權限的命令

    echo

    sed

    cp

    sysctl

    用於修改一些配置檔案和核心參數,主要用於修改/etc/sysctl.conf

    如果這些參數已經配置成了目標值,只會令這些參數生效,不會再去修改檔案

    例如:vm.max_map_count、net.bridge.bridge-nf-call-iptables、net.ipv4.conf.all.forwarding、net.ipv4.ip_forward、vm.overcommit_memory

    swapoff用於關閉交換空間,提高效能
    rm部署失敗或其他場景下,用於清理殘留檔案
    kill讓docker進程熱載入配置檔案

    mkdir

    chown

    安裝docker和組件

    docker臨時安裝在使用者的home目錄,最終安裝在/usr/bin目錄

    docker資料和組件安裝在前台填寫的專案掛載目錄

    groupadd

    gpasswd

    新增docker使用者組,並將當前使用者新增到docker使用者組中
    modprobe

    docker網路通訊需要載入br_netfilter模組

    modprobe命令只在br_netfilter模組未載入時需要

    systemctl配置docker service啟動
    sudo使用sudo -l 檢查某個命令是否有sudo權限時,sudo本身也要用sudo執行

    權限配置步驟

    請自行編輯 /etc/sudoers 檔案,確定滿足以下兩項

    步驟說明
    修改使用者的sudo權限

    自行修改dev為你的帳號

    1)允許使用者"dev"在任何主機上以root身分使用sudo權限執行後續配置的命令

    dev     ALL=(root) /bin/sh,/bin/mkdir,/bin/rm,/bin/cp,/bin/systemctl,/bin/kill,/usr/sbin/sysctl,/usr/bin/gpasswd,/usr/sbin/groupadd,/usr/bin/chown,/usr/sbin/modprobe,/usr/bin/echo,/usr/bin/sed,/usr/sbin/swapoff,/bin/sudo

    2)如果仍然權限不足(報錯:[sudo] password for ubuntu:),可以配置NOPASSWD的sudo權限(自選)

    dev     ALL=(root) NOPASSWD:/bin/sh,/bin/mkdir,/bin/rm,/bin/cp,/bin/systemctl,/bin/kill,/usr/sbin/sysctl,/usr/bin/gpasswd,/usr/sbin/groupadd,/usr/bin/chown,/usr/sbin/modprobe,/usr/bin/echo,/usr/bin/sed,/usr/sbin/swapoff,/bin/sudo

    對使用者禁用requiretty選項

    註釋掉原本的requiretty相關內容

    確定 dev 使用者在執行 sudo 命令時不需要 TTY 對話,否則無法透過腳本/遠端命令使用sudo

    #Defaults: requiretty

    sudoers 檔案範例:(本檔案僅作為範例,請勿直接copy改寫,請逐一參考上文修改)

    # User privilege specification

    root    ALL=(ALL:ALL)       ALL


    Defaults requiretty


    # Allow dev user to run specific commands as root

    dev     ALL=(root) /bin/sh,/bin/mkdir,/bin/rm,/bin/cp,/bin/systemctl,/bin/kill,/usr/sbin/sysctl,/usr/bin/gpasswd,/usr/sbin/groupadd,/usr/bin/chown,/usr/sbin/modprobe,/usr/bin/echo,/usr/bin/sed,/usr/sbin/swapoff,/bin/sudo


    附件列表


    主題: 擴展閱讀
    已經是第一篇
    已經是最後一篇
    • 有幫助
    • 沒幫助
    • 只是瀏覽