一、问题描述:
在压测时,执行./jmeter -n -t 报错,提示: ./jmeter: Permission denied【拒绝访问】
二、问题分析:
由于jmeter没有执行权限
【查询权限的方法】
1)输入命令:ls -al
2)查看对应文件的权限,类似于:-rw-r--r--
3)含义(有时候,字符过于麻烦,也可以用数字代替):均为小写
r 表示文件可以被读(read) 4
w 表示文件可以被写(write)2
x 表示文件可以被执行(如果它是程序的话,execute)1
- 表示相应的权限还没有被授予 0
三、解决方案:
修改文件的权限:chmod +x jmeter
chmod +x jmeter
# 移除对应的执行权限
chmod -x jmeter
- 需要进入到bin目录下,增加权限:chmod +x jmeter
- 在bin目录下再执行./jmeter -n -t 命令就不会报错了
引申:
权限数字对应权限组说明:
1、总共分为4部分:【文件或文件夹】【owner权限】【group权限】【others权限】;
2、文件是-,文件夹是d开头:9位长度,【r/w/x相加】【r/w/x相加】【r/w/x相加】-rw-r-xr--:
1)一共有十位数
2)最前面那个 - 代表的是类型(d代表文件夹,-代表文件)
3)前3个 rw- 代表的是所有者(user)拥有的权限
中3个 r-x 代表的是组群(group)拥有的权限
后3个 r-- 代表的是其他人(others)拥有的权限Linux档案的基本权限就有九个,分别是owner/group/others三种身份各有自己的read/write/execute权限。
d rwx rwx rwx =777 表示目录的操作权限
- rwx rwx rwx = 777 表示文件的操作权限
u 代表所有者(user)
g 代表所有者所在的组群(group)
o 代表其他人,但不是u和g (other)
a 代表全部的人,也就是包括u,g和o在终端输入:
chmod o w filename
表示给其他人授予写filename这个文件的权限
chmod go-rw filename
表示删除filename中组群和其他人的读和写的权限
数字设定的关键是mode的取值,一开始许多初学者会被搞糊涂,其实很简单。
(一) 我们将rwx看成二进制数,如果有则有1表示,没有则有0表示,那么rwx r-x r- -则可以表示成为:111 101 100再将其每三位转换成为一个十进制数,就是754。
(二) 也可以将其简单的理解为一种运算: (4+2+1) (4+1) (4)=754-rw------- (600) 只有所有者才有读和写的权限
-rw-r--r-- (644) 只有所有者才有读和写的权限,组群和其他人只有读的权限
-rwx------ (700) 只有所有者才有读,写,执行的权限
-rwxr-xr-x (755) 只有所有者才有读,写,执行的权限,组群和其他人只有读和执行的权限
-rwx--x--x (711) 只有所有者才有读,写,执行的权限,组群和其他人只有执行的权限
-rw-rw-rw- (666) 每个人都有读写的权限
-rwxrwxrwx (777) 每个人都有读写和执行的权限如:chmod 777 filename