前言
今天下载了elasticsearch的7.x版本,使用bin/elasticsearch -d 启动后,报出如下错误:
java.lang.RuntimeException: can not run elasticsearch as root
at org.elasticsearch.bootstrap.Bootstrap.initializeNatives(Bootstrap.java:105)
at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:172)
at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:349)
at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:170)
at org.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.java:161)
at org.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:86)
at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:125)
at org.elasticsearch.cli.Command.main(Command.java:90)
at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:126)
at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:92)
原来,启动的时候不能使用root用户启动,无奈,只能创建一个新用户
用户创建
- 创建用户:
useradd -m elastisearch
-m : 在home目录下创建用户目录
- 设置密码:
passwd elastisearch
自此,就可以通过ssh elastisearch@ip登录机器了
更改文件拥有者(chown命令)
将/opt目录下面的es安装包目录elasticsearch-7.6.1,所有者设为elastisearch
chown elasticsearch:elasticsearch elasticsearch-7.6.1
设置完成后,观察/opt目录
drwxr-xr-x 10 elasticsearch elasticsearch 156 Mar 26 20:15 elasticsearch-7.6.1
发现elasticsearch-7.6.1目录的所有者修改成功,
到此,elasticsearch就可以使用elasticsearch用户启动成功
chmod 777 是个啥
之前碰到一些文件不能修改,就索性用chmod 777 去执行下,也没有管他到底在做什么,今天来捋一捋,记录一下。
首先,ls -l查看一个目录,会出现:
drwxrwxr-x 11 elasticsearch elasticsearch 4096 Mar 26 21:00 apache-skywalking-apm-bin-es7
drwxr-xr-x 10 elasticsearch elasticsearch 156 Mar 26 20:15 elasticsearch-7.6.1
drwxr-xr-x 2 root root 6 Mar 27 14:45 test
-rwxrwxrwx 1 root root 0 Mar 27 15:21 test.sh
-rw-r--r-- 1 root root 0 Mar 27 15:21 test.txt
Linux下,分为这么几种文件类型:
- d:目录directory
- l:符号链接link
- s:套接字socket
- c:字符设备char
- p:命名管道pipe
- -:其他,不属于以上几类
文件创建后,有三种访问方式:
- 读(read):显示内容
- 写(write):编辑内容,删除文件
- 执行(execute):执行文件
针对用户,文件有三类权限:
- 创建人(user)权限:创建文件的人
- 组(group)用户权限:和拥有者处于相同用户组的其他人
- 其他(other)用户权限
所以针对-rwxr-xr-x可分析为:
- 第1个字符表示文件的类型:[-]表示普通文件
- 第234字符表示创建人的权限:[rwx]表示可读,可写,可执行
- 第567字符表示组用户权限:[r-x]表示可读可执行
- 第890字符表示其他用户权限:[r-x]表示可读可执行
修改test.sh文件权限两种办法
chmod u+x test.sh 赋予可执行权限
chmod go-w xxx.sh 不让其它用户修改
第一个参数:
- u:创建人
- g:组用户
- o:其他用户
- a:所有用户(all)
第二个参数:
- +:增加权限
- -:取消权限
- =:设定权限
第三个参数:
- r:读
- w:写
- x:执行
chmod 777 test.sh 赋予可读可写可执行权限
若要同时设置 rwx (可读写运行) 权限则将该权限位 设置 为 4 + 2 + 1 = 7
若要同时设置 rw- (可读写不可运行)权限则将该权限位 设置 为 4 + 2 = 6
若要同时设置 r-x (可读可运行不可写)权限则将该权限位 设置 为 4 +1 = 5
我们可以用用三个8进制数字分别表示 拥有者 、群组 、其它组( u、 g 、o)的权限详情,并用chmod直接加三个8进制数字的方式直接改变文件权限。语法可简化为:
chmod <abc> file
a,b,c各为一个数字,分别代表User、Group、及Other的权限。
相当于简化版的
chmod u=权限,g=权限,o=权限 file
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。