反馈已提交

网络繁忙

Linux用户权限说明

  • 文档创建者:Carly
  • 历史版本:12
  • 最近更新:Carly 于 2024-11-28
  • 概述

    在部署运维平台时,需要使用服务器用户登录终端,上传、解压、运行finekey工具,以部署启动运维平台。

    在部署运维项目时,需要提供服务器用户名称与密码,用于项目的部署和运行。

    执行相关操作,需要确保所使用的服务器用户的权限满足需求。

    优先推荐使用超级管理员账号部署

    优先推荐使用用户id为0且名叫root的服务器用户部署运维平台和运维项目。

    注意:用户id为0但不叫root的用户,不支持部署,请更名为root

    非超管账号部署需要配置权限

    权限要求说明

    如需使用非超管root用户进行项目的部署和运行,至少需要拥有以下权限:

    命令
    说明
    mkdir命令说明:创建目录

    应用场景:

    1)在用户的home目录下创建docker临时安装目录,用于存放Docker和相关组件的安装文件

    2)在系统目录/usr/bin下创建docker最终安装目录,用于存放Docker和相关组件的可执行文件

    3)在指定的项目挂载目录下创建运维平台和项目的数据和组件目录,用于存放Docker容器的数据和配置文件

    示例命令:

    示例:mkdir -p -m 750 /home/fanruan/data

    说明:创建项目挂载目录/home/fanruan/data,并设置权限为750

    chown

    命令说明:

    更改文件或目录的所有者

    应用场景:

    1)更改docker临时安装目录的所有者,以确保安装过程中的权限问题

    2)更改docker最终安装目录的所有者,以确保系统和用户对可执行文件的访问权限

    3)更改运维平台和项目的数据和组件目录的所有者,以确保Docker容器对数据和配置文件的访问权限

    示例命令:

    示例:chown -R fanruan:fanruan /home/fanruan/data

    说明:递归更改目录 /home/fanruan/data 及其子目录和文件的所有者为 fanruan 用户和组

    groupadd

    命令说明:创建用户组

    应用场景:用于系统用户组管理,为docker服务创建专用用户组

    示例命令:

    示例:groupadd docker

    说明:创建一个名叫docker的新用户组

    gpasswd

    命令说明:管理用户组成员

    应用场景:将用户添加到指定用户组,赋予用户对docker服务的访问权限

    示例命令:

    示例:gpasswd -a $USER docker

    说明:将当前用户添加到docker用户组中

    swapoff令说明禁用系统中所有的交换分区和交换文件

    应用场景:关闭交换空间,提高性能

    示例命令:

    示例:swapoff -a

    说明:禁用系统中所有的交换分区和交换文件

    modprobe命令说明:加载内核模块

    应用场景:动态加载 br_netfilter 模块,确保 Docker 网络通信的正常运行和管理

    示例命令:

    示例:modprobe br_netfilter

    说明:加载 br_netfilter 模块,使其在内核中生效,以支持 Docker 的网络功能

    systemd

    命令说明:控制 systemd 系统和服务管理器

    应用场景:确保 Docker 服务在系统启动时自动启动

    示例命令:

    示例:systemctl enable docker.service

    说明:启用 docker.service 服务,使其在系统启动时自动启动

    kill命令说明:向进程发送信号

    应用场景:向 Docker 守护进程发送 SIGHUP 信号,实现热加载配置文件,无需停止和重新启动 Docker 服务

    示例命令:

    示例:kill -HUP 1234

    说明:向 Docker 守护进程 1234 发送 SIGHUP 信号,在不中断docker服务的情况下应用新的配置更改

    sudo

    命令说明:允许授权用户以超级用户的身份运行特定的命令,而无需直接登录到超级用户账户

    应用场景:用于自动化脚本或需要以超级用户权限执行的场景

    示例命令:

    命令:echo sudo_xxxx_passwd | sudo -S sh -c "systemctl start docker"

    示例:以超级用户权限启动 Docker 服务

    sh

    命令说明:解释并执行由 -c 选项指定的命令字符串

    应用场景:在一个命令中完成复杂的操作,并确保命令在具有适当权限的环境中执行

    示例命令:

    命令:echo sudo_xxxx_passwd | sudo -S sh -c "systemctl start docker"

    示例:以超级用户权限在一个新的 shell 中执行命令

    echo

    命令说明:将字符串输出到标准输出

    应用场景:方便地将字符串输出并传递给其他命令,从而实现自动化和批处理操作

    示例命令:

    命令:echo sudo_xxxx_passwd | sudo -S sh -c "systemctl start docker"

    示例:将 echo 命令的输出(即 sudo 密码)传递给 sudo -S 命令,使其能够以超级用户权限执行命令

    cp命令说明:复制文件和目录

    应用场景:部署或更新服务文件,从而使系统能够管理和启动相应的服务

    示例命令:

    示例:cp -f /home/finekey/docker.service /etc/systemd/system/

    说明:将文件 /home/finekey/docker.service 复制到目录 /etc/systemd/system/ 中,以便 systemd 可以管理该服务

    sysctl

    命令说明:查看和修改内核参数

    应用场景:查看和修改一些特定的内核参数,例如net.bridge.bridge-nf-call-iptables、net.ipv4.conf.all.forwarding、net.ipv4.ip_forward等

    示例命令:

    示例:sysctl -n net.ipv4.ip_forward

    说明:检查当前系统中 IPv4 转发(IP forwarding)的状态

    sed

    命令说明:用于在文本文件中进行查找、替换、插入、删除等操作

    应用场景:用于修改一些配置文件和内核参数,主要用于修改/etc/sysctl.conf,如果这些参数已经配置成了目标值,只会令这些参数生效,不会再去修改文件

    示例命令:

    示例:sudo sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config

    说明:修改 /etc/selinux/config 文件,将 SELINUX 设置从 enforcing 改为 permissive,以防影响通过 systemctl 命令以服务方式启动 Docker

    rm命令说明:删除文件和目录

    应用场景:部署失败时回滚,清理残留文件

    示例命令:

    示例:rm -rf /home/fanruan/data

    说明:递归地删除 /home/fanruan/data 目录及其所有内容

    权限配置步骤

    请自行编辑 /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 文件示例:(本文件仅作为示例,请勿直接拷贝覆盖,请逐一参考上文修改)

    # 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


    附件列表


    主题: 项目管理
    • 有帮助
    • 没帮助
    • 只是浏览
    • 评价文档,奖励 1 ~ 100 随机 F 豆!

    鼠标选中内容,快速反馈问题

    鼠标选中存在疑惑的内容,即可快速反馈问题,我们将会跟进处理。

    不再提示

    10s后关闭

    联系我们
    在线支持
    获取专业技术支持,快速帮助您解决问题
    工作日9:00-12:00,13:30-17:30在线
    页面反馈
    针对当前网页的建议、问题反馈
    售前咨询
    采购需求/获取报价/预约演示
    或拨打: 400-811-8890 转1
    qr
    热线电话
    咨询/故障救援热线:400-811-8890转2
    总裁办24H投诉:17312781526
    提交页面反馈
    仅适用于当前网页的意见收集,帆软产品问题请在 问答板块提问前往服务平台 获取技术支持