温馨提示×

centos golang权限怎么设

小樊
43
2026-10-02 21:25:12
栏目: 编程语言

在 CentOS 上设置 Golang 相关权限,通常分几种常见场景。下面按你最可能遇到的情况说明。


一、Golang 安装目录权限(推荐方式)

1. 官方二进制安装(常见)

一般解压到 /usr/local/go

sudo tar -C /usr/local -xzf go1.22.linux-amd64.tar.gz

设置权限(默认即可,不建议 777):

sudo chown -R root:root /usr/local/go
sudo chmod -R 755 /usr/local/go

✅ 普通用户通过 PATH 使用即可,不需要写权限。


二、GOPATH / 项目目录权限(重点)

1. 设置 GOPATH(建议用户级)

mkdir -p ~/go
chmod 755 ~/go
chown -R $USER:$USER ~/go

❌ 不要放在 /usr/local/go 下
❌ 不要给 777


三、运行 Go 程序权限

1. 编译后的二进制文件

go build -o myapp
chmod +x myapp
./myapp

如果需要绑定 80 / 443 端口:

sudo setcap cap_net_bind_service=+ep myapp

查看:

getcap myapp

四、systemd 服务权限(生产常用)

示例:/etc/systemd/system/myapp.service

[Unit]
Description=Go App
After=network.target

[Service]
User=appuser
Group=appuser
WorkingDirectory=/opt/myapp
ExecStart=/opt/myapp/myapp
Restart=always

[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl enable myapp
sudo systemctl start myapp

✅ 用普通用户运行,比 root 安全


五、SELinux 权限(CentOS 特有)

如果程序访问端口 / 文件失败:

查看

getenforce

允许端口(如 8080)

sudo semanage port -a -t http_port_t -p tcp 8080

或临时关闭(不推荐)

sudo setenforce 0

六、常见错误权限 ❌

chmod 777 /usr/local/go   # 危险
chmod 777 ~/go            # 危险
用 root 跑所有 Go 程序    # 不安全

七、推荐标准配置 ✅

/usr/local/go     root:root   755
~/go              user:user  755
Go 程序           user:user  755
生产运行          普通用户 + systemd

如果你能具体说:

  • 是 安装 Go
  • 还是 运行 Go 程序
  • 还是 CI / 服务器部署

我可以直接给你一套精准命令。

0 踩