linux系统中如何在root用户中将某个文件夹目录的权限赋值给其它用户(主要说的是 方法 1)

✅ 方法 1:使用 root 用户创建目录(推荐)

最安全、最标准的做法是:用 root 用户创建目录,然后赋权给 elasticsearch 用户

复制代码
# 切换到 root 用户(或直接登录 root)
sudo su -

# 在 /opt 下创建 kibana 目录
mkdir /opt/kibana

# 将目录所有权交给 elasticsearch 用户和组
chown elasticsearch:elasticsearch /opt/kibana

# 设置权限(可选)
chmod 755 /opt/kibana

# 退出 root
exit

然后你就可以用 elasticsearch 用户操作了:

复制代码
su - elasticsearch
cd /opt/kibana
# 此时可以自由解压、配置 Kibana

✅ 方法 2:临时给 elasticsearch 用户添加 sudo 权限(不推荐用于生产)

如果你确实需要elasticsearch 用户使用 sudo(例如用于自动化脚本),可以将其加入 sudoers

步骤:
复制代码
# 用 root 编辑 sudoers 文件(必须用 visudo)
sudo visudo

# 添加以下行(推荐使用 wheel 组)
elasticsearch ALL=(ALL) NOPASSWD: ALL

# 或者将用户加入 wheel 组(更标准)
usermod -aG wheel elasticsearch

⚠️ 注意:生产环境不建议给服务账户(如 elasticsearchsudo 权限,有安全风险


✅ 方法 3:不要把 Kibana 装在 /opt(替代方案)

你可以选择在 elasticsearch 用户有权限的目录下安装 Kibana,例如:

复制代码
su - elasticsearch
cd ~
mkdir kibana
cd kibana
# 在这里解压 kibana-*.tar.gz

即:把 Kibana 安装在 /home/elasticsearch/kibana,避免权限问题。

但通常生产环境还是推荐统一放在 /opt


🛠️ 最佳实践建议

建议 说明
服务目录归 root 创建,属主给服务用户 如:/opt/kibana 由 root 创建,chown elasticsearch:elasticsearch
服务用户不要给 sudo 权限 避免权限过大,违反最小权限原则
使用 systemd 管理服务 启动时自动以正确用户运行,无需手动 su
保持 /opt 目录整洁 所有中间件统一管理

✅ 验证修复

修复后,你应该可以:

复制代码
# 切换到 elasticsearch 用户
su - elasticsearch

# 直接创建文件(无需 sudo)
cd /opt/kibana
echo "test" > test.txt

不会报权限错误。


📌 总结

问题 原因 解决方案
elasticsearch is not in the sudoers file elasticsearch 用户不能使用 sudo root 创建目录并赋权
无法在 /opt 创建文件 /opt 默认只有 root 可写 root 创建 + chownelasticsearch
服务用户是否该有 sudo? ❌ 不推荐 遵循最小权限原则

推荐操作流程:

复制代码
# 1. 用 root 操作
sudo su -
mkdir /opt/kibana
chown elasticsearch:elasticsearch /opt/kibana
exit

# 2. 切换回 elasticsearch 用户
su - elasticsearch
cd /opt/kibana
# 现在可以自由操作了

这样既安全又符合 Linux 权限管理规范。

相关推荐
zylyehuo6 小时前
Linux 彻底且安全地删除文件
linux
用户8055336980319 小时前
主线 U-Boot 上 RK3506:和闭源 rkbin 拔河的三个隐性契约
linux·嵌入式
用户0340952979120 小时前
linux fcitx 5 雾凇拼音 设置在中文输入法下仍然输入英文标点
linux
Web3探索者3 天前
可视化服务器管理和传统命令行区别是什么?新手教程:Linux 运维到底该用图形界面还是 SSH 命令行?
linux·ssh
zylyehuo3 天前
Linux系统中网线与USB网络共享冲突
linux
Sokach10154 天前
Linux Shell 脚本从零到能用:一个新手的一天学习总结
linux
AlfredZhao4 天前
Docker 容器时区不对,`timedatectl` 不存在怎么办?
linux·timezone
zzzzzz3106 天前
9K Star 炸裂开源!这个 C 语言写的代码知识图谱,把 Linux 内核索引压缩到了 3 分钟
linux·服务器·sql
XIAOHEZIcode6 天前
Linux系统鼠标偏移常见原因以及修复方案
linux·运维·游戏
A小辣椒8 天前
TShark:Wireshark CLI 功能
linux