Linux中chmod命令

我在执行elf文件时给我的回应是没有权限,经了解可以用chmod修改文件的权限,所以我们现在来学习一下!

chmod的功能

linux系统中,用chmod命令来修改文件或目录的访问权限。用它控制文件或目录的访问权限。

文件的权限

文件或目录的访问权限分为只读、只写和可执行文件。

只读--用户只可以读取文件,不可以对文件进行修改

可执行--允许将该文件作为一个程序执行

只写--只能被对应的用户组写入而不能被该用户组读取

文件被创建时,文件所有者自动拥有对该文件的读、写和可执行权限,以便于对文件的阅读和修改。用户也可根据需要把访问权限设置为需要的任何组合(这里就可以用chmod命令改变文件权限)。

查看文件的访问权限

有三种不同类型的用户可对文件或目录进行访问:文件所有者,文件所有者的同组用户、其他用户。所有者一般是文件的创建者。所有者可以允许同组用户有权访问文件,还可以将文件的访问权限赋予系统中的其他用户。在这种情况下,系统中每一位用户都能访问该用户拥有的文件或目录。

每一文件或目录的访问权限都有三组,每组用三位表示,分别为文件属主的读、写和执行权限;与属主同组的用户的读、写和执行权限;系统中其他用户的读、写和执行权限。当用ls -al命令显示文件或目录的详细信息时,最左边的一列为文件的访问权限。

ls:显示没有隐藏的文件和文件夹
ls -a:显示当前目录下的所有文件和文件夹,包括隐藏的文件
ls -l:显示没有隐藏的文件和文件夹的详细信息
ls -al:显示当前目录下的所有文件和文件夹的详细信息

ls -al

在终端输入这个命令就可以得到 回复

总计 1728
drwxr-xr-x  2 kali kali   4096  3月 4日 12:17 .
drwx------ 15 kali kali   4096  3月 4日 12:18 ..
-rw-------  1 kali kali   8872  2月24日 17:29 1
-rwxrwxrwx  1 kali kali   7568  3月 1日 14:10 123
-rw-------  1 kali kali    108  2月20日 23:46 19.py
-rw-------  1 kali kali    227  2月21日 22:15 21.py
-rw-------  1 kali kali   8760  2月21日 20:51 附件
-rw-------  1 kali kali  16656  2月22日 16:20 calc
-rw-------  1 kali kali   3525  3月 1日 11:53 double.png
-rw-------  1 kali kali   7200  2月20日 09:54 level0
-rwx--x--x  1 kali kali 746016 2024年 1月 1日 linux_server64
-rw-------  1 kali kali  16264  3月 1日 09:00 pwn
-rw-------  1 kali kali 882560  3月 1日 10:17 pwn1
-rw-------  1 kali kali  15130  2月21日 21:41 pwn1_sctf_2016
-rwxrwxrwx  1 kali kali  16392  3月 3日 22:45 Yunxi
                                                     

可以看到第一列是有十个位置。

第一个字符指定了文件类型。

如果第一个字符是横线,表示是一个非目录的文件。如果是d,表示是一个目录。其他不常见的有:l代表链接文件;b代表块设备;c代表字符设备文件。

从第二个字符开始到第十个共9个字符,3个字符一组,分别表示了3组用户对文件或者目录的权限。权限字符用横线代表空许可,r代表只读,w代表写,x代表可执行。

第1组:rwx: 文件所有者   可读、可写、可执行
第2组:r-x: 文件所有者所在组其它成员   可读、可执行,不可修改
第3组:r-x: 其它人  可读、可执行,不可修改

确定了一个文件的访问权限后,用户可以利用Linux系统提供的chmod命令来重新设定不同的访问权限。也可以利用chmod命令来更改某个文件或目录的所有者。

命令的写法:

  1. 包含字母和操作符表达式的文字设定法
  2. 包含数字的数字设定法

文字设定法:

chmod [who] [+ | - | =] [mode] 文件名

这里的who是指用户组

u 表示“用户(user)”,即文件或目录的所有者。  
g 表示“同组(group)用户”,即与文件属主有相同组ID的所有用户。  
o 表示“其他(others)用户”。  
a 表示“所有(all)用户”。它是系统默认值。 

+ | - | = 这是 操作符号

+添加某个权限。
-取消某个权限。  
=赋予给定权限并取消其他所有权限(如果有的话)。


设置mode所表示的权限可用下述字母的任意组合:

r 可读。  
w 可写。  
x 可执行。  
u 与文件属主拥有一样的权限。
g 与和文件属主同组的用户拥有一样的权限。
o 与其他用户拥有一样的权限。

原file文件的第一列时:
-rwx------  

输入命令chmod +x file
经过上面的修改权限后,我们再次查看文件的访问权限时就可以得到
-rwx--x--x

数字设定法

chmod [mode] 文件名

 我们必须首先了解用数字表示的属性的含义:0表示没有权限,1表示可执行权限,2表示可写权限,4表示可读权限,然后将其相加。所以数字属性的格式应为3个从0到7的八进制数,其顺序是(u)(g)(o)                

这里注意,数字设定法的mode就仅是三个从0到7的数字,从第一个到第三个分别对应的用户组是:文件所有者,文件所有者的其他同组成员,其他用户。  示例:假如你只想让文件所有者的同组成员拥有可执行权限,那就010;如果想让所有用户都有可读、可写、可执行权限,那么就是4+2+1=7,然后所有用户就得是三个7,所以就输入chmod 777 file

可执行属性

which: 表示查看命令的路径。
一般用于当我们想知道使用的命令来源于什么地方时,比如安装了多个R 或多个python,但又分不清用的是哪个时,which 一下,立即明了。我们用which 获取的是可执行的命令所在的路径,进而查看其属性。

示例

单组用户的权限修改

原:drwx------
chmod o-x file
drwx-----x

所有用户的权限修改

原:drwx------
chmod +x file

或者是chmod a+x flie
得:drwx--x--x

对一个目录及其子目录所有文件添加权限

chmod -R u+x test/
这样test目录下的所有文件和子目录里的所有文件,都可以被所有者可执行

 学习完之后我们就可以解决这次开学考,没有权限的问题了

 输入chmod 777 Yunxi

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值