Linux文件信息中的rwx表示什么?Linux权限理解

目录

文件访问者的分类 

Q:为什么要有所属组这个概念?

文件的权限属性分类

文件的权限属性的设置

1.chmod(change mode)

 2.chgrp(change group)

3.chown(change owner)

文件权限用八进制表示


         我们在命令行输入ll查看文件详情信息的时候,在文件信息的最前面可以看到-rw-rw-r--,这些表示的是什么呢?

        实际上这是该文件对不同用户所开放的权限,下面我们就来聊一聊Linux中的文件权限相关的内容。 

[zebra@VM-8-12-centos test]$ ll
total 12
-rw-rw-r-- 1 zebra zebra 21 Oct 23 22:19 README.md
-rw-rw-r-- 1 zebra zebra 24 Oct 24 10:50 test1.txt
-rw-rw-r-- 1 zebra zebra 28 Oct 24 10:17 test2.txt

        首先我们要理解什么是权限,权限表示的是某件事情能不能被某个人所做。

        所以权限实际上是由两部分组成的,一个是人,一个是事物权限属性,Linux下的各种用户对应的就是不同的人,文件中的读,写,修改就是文件可以提供给不同用户的权限属性。         


文件访问者的分类 

  1. 文件和文件目录的所有者:u---User
  2. 文件和文件目录的所有者所在的组的用户:g---Group
  3. 其它用户:o---Others (不是我,那就是其他人)

Q:为什么要有所属组这个概念?

A:因为我们在开发的过程中可能会被分成一个个小组,有时候想要把自己的代码让同组的人看到,同时不想让其他组的人看到,就需要使用组来对权限进行控制。


文件的权限属性分类

第一位的对应的文件类型:

  1. d:目录文件
  2. -:普通文件(文本,各种静态库,可执行程序,源程序)
  3. l:软链接(类似Windows的快捷方式)
  4. b:块设备文件(例如硬盘、光驱等)
  5. p:管道文件(通信)
  6. c:字符设备文件(键盘与显示器)
  7. s:套接口文件

Linux下一切皆文件

第2-10位的对应的文件的权限属性:

三位一组,总共三组。

三组分别对应的是文件拥有者的权限,文件所属组的用户的权限,其他用户的权限。

每组中按照读,写,执行的顺序给出文件的权限属性,r代表可读,w代表可写,x代表可执行


文件的权限属性的设置

1.chmod(change mode)

        注意就算给用户加上x可执行权限,并不代表着用户就一定可以执行这个文件了,此文件必须是一个可以执行的文件才行。

功能:设置文件的访问权限

格式:chmod [参数] 权限 文件名

常用选项:

R -> 递归修改目录文件的权限

说明:只有文件的拥有者和root才可以改变文件的权限

  • 用户表示符+/-=权限字符

+:向权限范围增加权限代号所表示的权限

-:向权限范围取消权限代号所表示的权限

=:向权限范围赋予权限代号所表示的权限

用户符号:  

u:拥有者

g:拥有者同组用

o:其它用户

a:所有用户

注意:可以使用,分隔不同用户加权限。也可以使用all

  1. 超级用户的权限不受约束。
  2. echo命令自动换行。

root可以chmod任意用户的任意文件

[zebra@VM-8-12-centos test]$ ll
total 12
-rw-rw-r-- 1 zebra zebra 21 Oct 23 22:19 README.md
-rw-rw-r-- 1 zebra zebra 24 Oct 24 10:50 test1.txt
-rw-rw-r-- 1 zebra zebra 28 Oct 24 10:17 test2.txt
[zebra@VM-8-12-centos test]$ chmod u+x test1.txt 
[zebra@VM-8-12-centos test]$ ll
total 12
-rw-rw-r-- 1 zebra zebra 21 Oct 23 22:19 README.md
-rwxrw-r-- 1 zebra zebra 24 Oct 24 10:50 test1.txt
-rw-rw-r-- 1 zebra zebra 28 Oct 24 10:17 test2.txt
[zebra@VM-8-12-centos test]$ 

 2.chgrp(change group)

功能:修改文件或目录的所属组

格式:chgrp [参数] 用户组名 文件名

常用选项:-R 递归修改文件或目录的所属组

注意所属组必须是存在的组

[zebra@VM-8-12-centos test]$ sudo chgrp root test1.txt 
[sudo] password for zebra: 
[zebra@VM-8-12-centos test]$ ll
total 12
-rw-rw-r-- 1 zebra zebra 21 Oct 23 22:19 README.md
-rwxrw-r-- 1 zebra root  24 Oct 24 10:50 test1.txt
-rw-rw-r-- 1 zebra zebra 28 Oct 24 10:17 test2.txt
[zebra@VM-8-12-centos test]$ 

3.chown(change owner)

功能:修改文件的拥有者,把文件的用户者改为对应的用户(需要经过用户的同意,root不需要

格式:chown [参数] 用户名 文件名

root可以修改任意文件的所属者,且不需要经过用户同意

如果是普通用户,想把自己的文件给别人,不想经过其他人同意,可以使用sudo,或者干脆su -变成root

[zebra@VM-8-12-centos test]$ chown root test1.txt 
chown: changing ownership of ‘test1.txt’: Operation not permitted
[zebra@VM-8-12-centos test]$ sudo chown root test1.txt 
[sudo] password for zebra: 
Sorry, try again.
[sudo] password for zebra: 
[zebra@VM-8-12-centos test]$ ll
total 12
-rw-rw-r-- 1 zebra zebra 21 Oct 23 22:19 README.md
-rwxrw-r-- 1 root  root  24 Oct 24 10:50 test1.txt
-rw-rw-r-- 1 zebra zebra 28 Oct 24 10:17 test2.txt
[zebra@VM-8-12-centos test]$ 

1.如果想要一次性把文件的拥有者和所属组全部改了,可以使用如下chown指令,不被允许就使用sudo

[zebra@VM-8-12-centos test]$ chown zebra:zebra test1.txt 
chown: changing ownership of ‘test1.txt’: Operation not permitted
[zebra@VM-8-12-centos test]$ sudo chown zebra:zebra test1.txt 
[zebra@VM-8-12-centos test]$ ll
total 12
-rw-rw-r-- 1 zebra zebra 21 Oct 23 22:19 README.md
-rwxrw-r-- 1 zebra zebra 24 Oct 24 10:50 test1.txt
-rw-rw-r-- 1 zebra zebra 28 Oct 24 10:17 test2.txt
[zebra@VM-8-12-centos test]$ 

所以想要修改所属组并不一定要使用chgrp

2.other是不需要主动去改的,我们在改拥有者的时候,就相当于把 other也改掉了。


文件权限用八进制表示

因为权限位置是确定的,而且是两态的,所以我们可以使用二进制来表示

rwx rwx rwx对应的是111 111 111,对应的八进制就是777

除了ugo+-rwx以外,还可以使用八进制来修改权限。

[zebra@VM-8-12-centos test]$ ll
total 12
-rw-rw-r-- 1 zebra zebra 21 Oct 23 22:19 README.md
-rwxrw-r-- 1 zebra zebra 24 Oct 24 10:50 test1.txt
-rw-rw-r-- 1 zebra zebra 28 Oct 24 10:17 test2.txt
[zebra@VM-8-12-centos test]$ chmod 777 test1.txt 
[zebra@VM-8-12-centos test]$ ll
total 12
-rw-rw-r-- 1 zebra zebra 21 Oct 23 22:19 README.md
-rwxrwxrwx 1 zebra zebra 24 Oct 24 10:50 test1.txt
-rw-rw-r-- 1 zebra zebra 28 Oct 24 10:17 test2.txt
[zebra@VM-8-12-centos test]$ 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值