文件权限命令
Linux系统是一种典型的多用户系统,不同的用户处于不同的地位,拥有不同的权限。为了保护系统的安全性,Linux系统对不同的用户访问同一文件(包括目录文件)的权限做了不同的规定。在Linux中我们可以使用ll或者ls-l命令来显示一个文件的属性以及文件所属的用户和组。
1. 文件权限
下图从左到右的10个字符表示权限信息 如果没有权限,就会出现减号[-]而已。从左至右用0-9这些数字来表示:
- 0首位表示类型
- 在Linux中第一个字符代表这个文件是目录、文件或链接文件等
- -代表文件
- d代表目录
- l链接文档(linkfile)
- 第1-3位确定属主(该文件的所有者)拥有该文件的权限。---User
- 第4-6位确定属组(所有者的同组用户)拥有该文件的权限,---Group
- 第7-9位确定其他用户拥有该文件的权限---Other
2. rwx在文件和目录作用
- 作用到文件:
[r]
代表可读(read):可以读取,查看[w]
代表可写(write):可以修改,但是不代表可以删除该文件,删除一个文件的前提条件是对该文件所在的目录有写权限,才能删除该文件.[x]
代表可执行(execute):可以被系统执行 - 作用到目录:
[r]
代表可读(read):可以读取,ls查看目录内容[w]
代表可写(write):可以修改,目录内创建+删除+重命名目录[x]
代表可执行(execute):可以进入该目录
提示
其中图片中的链接数:
(1)如果查看到是文件:链接数指的是硬链接个数。 (2)如果查看的是文件夹:链接数指的是子文件夹个数。
3. chmod改变权限
第一种方式: chmod[
{+-=
}{rwx}]
文件或目录
提示 u:所有者g:所有组o:其他人a:所有人(u、g、o的总和)
第二种方式: chmod[
mode=421][
文件或目录]
提示:r=4w=2x=1 rwx=4+2+1=7
sh
## 修改文件使其所属主用户具有执行权限
[root@hadoop100 jack]# cp /root/anaconda-ks.cfg /home/jack/
[root@hadoop100 jack]# ll
总用量 4
-rw-------. 1 root root 1350 1月 13 06:47 anaconda-ks.cfg
[root@hadoop100 jack]# chmod g+r anaconda-ks.cfg
[root@hadoop100 jack]# ll
总用量 4
-rw-r-----. 1 root root 1350 1月 13 06:47 anaconda-ks.cfg
[root@hadoop100 jack]# chmod u+x,o+r anaconda-ks.cfg
[root@hadoop100 jack]# ll
总用量 4
-rwxr--r--. 1 root root 1350 1月 13 06:47 anaconda-ks.cfg
[root@hadoop100 jack]# chmod 777 anaconda-ks.cfg
[root@hadoop100 jack]# ll
总用量 4
-rwxrwxrwx. 1 root root 1350 1月 13 06:47 anaconda-ks.cfg
# 修改整个文件夹里面的所有文件的所有者、所属组、其他用户都具有可读可写可执行权限。
[root@hadoop100 ~]# chmod-R 777 xiyou/
4. chown改变所有者
语法:chown [选项] [最终用户] [文件或目录]
( 功能描述:改变文件或者目录的所有者)
选项说明: -R
: 递归操作
sh
## 递归改变文件所有者和所有组
[root@hadoop100 ~]# chown -R jack:jack xiyou/
5. chgrp 改变所属组
基本语法
chgrp [最终用户组] [文件或目录] (功能描述:改变文件或者目录的所属组)
sh
## 修改文件的所属组
[root@hadoop100 ~]# chgrp root houge.txt