一、查看文件或文件夹权限
[root@hadoop09-linux etc]# ll -h /etc #ll 是ls -l 的缩写方式 -h文件大小单位k
截取其中三行说明
drwxr-xr-x. 2 root root 4.0K Sep 2 08:19 init lrwxrwxrwx. 1 root root 11 Sep 2 08:11 init.d -> rc.d/init.d -rw-r--r--. 1 root root 884 Sep 2 00:26 inittab
分为 6 块(已其中第一行解释)
# drwxr-xr-x. 2 root root 4.0K Sep 2 08:19 init
1. drwxr-xr-x. 注:最后那个点是ls把多acl和selinux属性加进去了,下面只考虑前十位 第一位表是文件类型 d:目录 -:普通文件 l:链接文件 此时需要了解权限的分组: 前三位是文件所有者(user,简写u);中间三位是所在组(group,简写g);后三位其他人(other,简写o);第二位到第10位,即rwxr-xr-x权限 r:可读,以二进制表示2^2;w:可写,以二进制表示2^1;x:可执行,以二进制表示2^0;-:无所在权限,以二进制表示0) 例:r-x 权限(可读可执行但不可写,数字表示为4+0+1=5) 那么rwxr-xr-x中,文件所有者的权限是可读可写可执行(4+2+1=7); 所在组的权限是可读不可写可执行(4+0+1=5);其他人的权限是可读不可写可执行(4+0+1=5) 则rwxr-xr-x以数字表示为755 2. 2 代表文件连接数 3. root root 分别代表用户名和用户组 4. 4.0k 代表文件大小 5. Sep 2 08:19 日期 6. init 文件名
一、权限操作
1. chmod 分配权限
属性:u(user) g(group) o(other) a(all)
a. 权限设置符号:+(添加权限) -(去掉权限) =(设置完整权限)
[root@hadoop09-linux tmp]# touch test.txt [root@hadoop09-linux tmp]# ll total 0 -rw-r--r--. 1 root root 0 Sep 6 19:58 test.txt [root@hadoop09-linux tmp]# chmod u+w,g-r,o=rwx test.txt #注意各组权限以,分隔 [root@hadoop09-linux tmp]# ll total 0 -rw----rwx. 1 root root 0 Sep 6 19:58 test.txt
b. 以数字形式设置权限
[root@hadoop09-linux tmp]# chmod 777 test.txt #上面已解释7=r+w+x [root@hadoop09-linux tmp]# ll total 0 -rwxrwxrwx. 1 root root 0 Sep 6 19:58 test.txt
c. 递归修改权限,即设置文件夹权限时加上-R,里面的子目录和文件都一并设置
[root@hadoop09-linux test]# ll total 4 drwxr-xr-x. 3 root root 4096 Sep 6 20:06 test1 -rw-r--r--. 1 root root 0 Sep 6 20:07 test1.txt -rw-r--r--. 1 root root 0 Sep 6 20:07 test.txt [root@hadoop09-linux test]# chmod 777 -R ../test [root@hadoop09-linux test]# ll total 4 drwxrwxrwx. 3 root root 4096 Sep 6 20:06 test1 -rwxrwxrwx. 1 root root 0 Sep 6 20:07 test1.txt -rwxrwxrwx. 1 root root 0 Sep 6 20:07 test.txt
2. chown 修改拥有者
a. 修改单个文件或文件夹的拥有者
[root@hadoop09-linux test]# ll total 4 drwxrwxrwx. 3 root root 4096 Sep 6 20:06 test1 -rwxrwxrwx. 1 root root 0 Sep 6 20:07 test1.txt -rwx------. 1 root root 0 Sep 6 20:07 test.txt [root@hadoop09-linux test]# chown eRrsr test.txt [root@hadoop09-linux test]# ll total 4 drwxrwxrwx. 3 root root 4096 Sep 6 20:06 test1 -rwxrwxrwx. 1 root root 0 Sep 6 20:07 test1.txt -rwx------. 1 eRrsr root 0 Sep 6 20:07 test.txt
b. 递归修改文件夹下的所有子目录和文件的拥有者
[root@hadoop09-linux test]# ll total 4 drwxrwxrwx. 3 root root 4096 Sep 6 20:06 test1 -rwxrwxrwx. 1 root root 0 Sep 6 20:07 test1.txt -rwx------. 1 eRrsr root 0 Sep 6 20:07 test.txt [root@hadoop09-linux test]# chown -R eRrsr ../test [root@hadoop09-linux test]# ll total 4 drwxrwxrwx. 3 eRrsr root 4096 Sep 6 20:06 test1 -rwxrwxrwx. 1 eRrsr root 0 Sep 6 20:07 test1.txt -rwx------. 1 eRrsr root 0 Sep 6 20:07 test.txt
3. chgrp 修改所在组
a. 修改单个文件或文件夹的所在组
[root@hadoop09-linux test]# ll total 4 drwxrwxrwx. 3 eRrsr root 4096 Sep 6 20:06 test1 -rwxrwxrwx. 1 eRrsr root 0 Sep 6 20:07 test1.txt -rwx------. 1 eRrsr root 0 Sep 6 20:07 test.txt [root@hadoop09-linux test]# chgrp eRrsr test.txt [root@hadoop09-linux test]# ll total 4 drwxrwxrwx. 3 eRrsr root 4096 Sep 6 20:06 test1 -rwxrwxrwx. 1 eRrsr root 0 Sep 6 20:07 test1.txt -rwx------. 1 eRrsr eRrsr 0 Sep 6 20:07 test.txt
b. 递归修改文件夹下的所有子目录和文件的
[root@hadoop09-linux test]# ll total 4 drwxrwxrwx. 3 eRrsr root 4096 Sep 6 20:06 test1 -rwxrwxrwx. 1 eRrsr root 0 Sep 6 20:07 test1.txt -rwx------. 1 eRrsr eRrsr 0 Sep 6 20:07 test.txt [root@hadoop09-linux test]# chgrp -R eRrsr ../test [root@hadoop09-linux test]# ll total 4 drwxrwxrwx. 3 eRrsr eRrsr 4096 Sep 6 20:06 test1 -rwxrwxrwx. 1 eRrsr eRrsr 0 Sep 6 20:07 test1.txt -rwx------. 1 eRrsr eRrsr 0 Sep 6 20:07 test.txt
需要注意的是:
如果在/usr/tmp下创建了一个文件夹该文件夹root分给eRrsr所有权限,针对于eRrsr其中的文件或子目录并没有权限,那登录eRrsr后是否能删文件夹内的文件呢?
可以
PS:对与用户或用户组的修改请查看上一小节