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 权限管理规范。

相关推荐
^乘风破浪^27 分钟前
Ubuntu部署Xingrin(星环)企业级漏洞扫描与资产管理平台
linux·运维·ubuntu
Lueeee.28 分钟前
内核模块符号的导出
linux·运维·服务器
C语言魔术师41 分钟前
【linux】linux进程概念(四)(环境变量)
linux·运维·服务器
松涛和鸣42 分钟前
DAY32 Linux Thread Programming
linux·运维·数据库·算法·list
eggrall1 小时前
《gdb 与 cgdb 深度解析:命令行调试的效率革命》
linux
晨曦夜月1 小时前
头文件与目标文件的关系
linux·开发语言·c++
白仑色1 小时前
java中的anyMatch和allMatch方法
java·linux·windows·anymatch·allmatch
yimengsama1 小时前
VMWare虚拟机如何连接U盘
linux·运维·服务器·网络·windows·经验分享·远程工作
松涛和鸣1 小时前
32、Linux线程编程
linux·运维·服务器·c语言·开发语言·windows
꧁坚持很酷꧂1 小时前
把虚拟机Ubuntu中的USB设备名称改为固定名称
linux·数据库·ubuntu