chmod修改文件的权限/chown修改文件和目录的所有者(转)
ll指令的显示的信息为(当前目录下只有nameservice1一个目录):
drwxr-xr-x 3 hdfs hdfs 4096 4月 14 16:19 nameservice1
上述信息分别表示:权限(drwxr-xr-x 3)、所属用户(hdfs)和组(hdfs)、大小(4096)、时间(4月 14 16:19)、名称(nameservice1)。
权限中的字母一共有10位数:
其中,第1位有两种选择:-表示是文件,d表示是目录。此处是d,表示nameservice1是目录;
第2位到第4位rwx表示的是所有者(所属用户hdfs)的权限;
第5位到第7位r-x表示的是组(hdfs)的权限;
第8位到第10位r-x表示的是其他人(other)的权限;
另外,
r 表示文件可以被读(read)
w 表示文件可以被写(write)
x 表示文件可以被执行(如果它是程序的话)
- 表示相应的权限还没有被授予
1.修改文件的权限
查看当前文件文件temp的权限信息:
ll | grep temp
-rw-rw-r-- 1 root root 4405 3月 17 11:50 temp
修改文件权限的指令:
chmod o+w temp
表示给文件temp授予其他人写权限,现在查看temp的权限信息:
-rw-rw-rw- 1 root root 4405 3月 17 11:50 temp
我们发现第9位多出了一个w。
其中参数表示的意义为:
u 代表所有者(user)
g 代表所有者所在的组群(group)
o 代表其他人,但不是u和g (other)
a 代表全部的人,也就是包括u,g和o
r 表示文件可以被读(read)
w 表示文件可以被写(write)
x 表示文件可以被执行(如果它是程序的话)
其中:rwx也可以用数字来代替
r ------------4
w ------------2
x ------------1
- ------------0 行动:
+ 表示添加权限
- 表示删除权限
= 表示使之成为唯一的权限 当大家都明白了上面的东西之后,那么我们常见的以下的一些权限就很容易都明白了:
-rw------- (600) 只有所有者才有读和写的权限
-rw-r--r-- (644) 只有所有者才有读和写的权限,组群和其他人只有读的权限
-rwx------ (700) 只有所有者才有读,写,执行的权限
-rwxr-xr-x (755) 只有所有者才有读,写,执行的权限,组群和其他人只有读和执行的权限
-rwx--x--x (711) 只有所有者才有读,写,执行的权限,组群和其他人只有执行的权限
-rw-rw-rw- (666) 每个人都有读写的权限
-rwxrwxrwx (777) 每个人都有读写和执行的权限
2.修改目录的所有者和群组
将目录的所有者修改为root:root(第一个root表示组,第二个root表示用户)。 该指令需要在root权限下使用。
chown -R root:root nameservice1
此时再执行ll,显示结果为:
drwxr-xr-x 3 root root 4096 4月 14 16:19 nameservice1
将目录换成文件的名字就可以修改文件的所有者了,例如:
chown -R root:root test.txt
只改变文件或目录的所有者
chown -R owner: test.txt
只改变文件或目录的群组