在linux系统中经常遇到需要对文件修改读写执行的权限,下面对chomod命令进行梳理总结。
1、文件权限
在linux系统中,每个文件都有归属的所有者和所有组,并且规定了文件的所有者、以及其他人对文件所拥有的可读(r)、可写(w)、可执行(x)等权限。
对于一般文件来说,权限比较容易理解:"可读"表示能够读取文件的实际内容;"可写"表示能够编辑、新增、修改、删除文件的实际内容;"可执行"则表示能够运行一个脚本程序。
对于目录文件来说,"可读"表示能够读取目录内的文件列表;"可写"表示能够在目录内新增、删除、重命名文件;而"可执行"则表示能够进入该目录。
文件的普通权限
通过 ll 命令查看文件的详细信息
第一个字符信息就是文件的类型,这个文件类型有(d)目录文件、(-)普通文件、(p)管道文件、(c)字符设备文件、(b)块设备文件、(l)链接文件等等。
文件的普通权限有r(read 读 )、w(write 写)、x(execute 执行)权限。
除了第一个文件类型,一共有9个空位是用来显示文件的权限,分成三个,文件所有者(user)、所有组(group)、其他人(other)、还有一个是所有人(all),包括前面三个的意思。
在linux中,系统只认识二进制(0/1)的内容,那么读写执行是怎么转化成我们认识的权限,实际上,我们能看到的读写执行是八进制(0-7)显示的。
2、chmod命令
chmod命令来自于英文词组"change mode"的缩写,其功能适用于改变文件或者目录权限的命令。默认只有文件的所有者和管理员可以设置文件权限,普通用户只能管理自己的文件的权限属性。
设置权限时可以使用数字法,亦可使用字母表达式,对于目录文件建议加入-R参数进行递归操作,意味着不仅对于目录本身,也对目录内的子文件/目录进行新权限的设定。
chmod命令的常用参数如下:
- -c 若该文件权限确实已经更改,才显示其更改动作
- -f 若该文件权限无法被更改也不显示错误讯息
- -v 显示权限变更的详细资料
- -R 对目前目录下的所有文件与子目录进行相同的权限变更(即以递回的方式逐个变更)
3、修改权限实例
1)文件所有者拥有读写执行权限,所有者、其他用户无权限
chmod 700 test.txt
2)目录拥有满权限
chmod -R 777 test/
3)给一个文件添加可执行权限
chmod +x test.txt
4、注意事项
- 添加可执行权限是一项有风险的操作,因为可执行文件可能包含恶意代码。确保只将可执行权限添加到受信任的文件上。
- 要执行chmod命令,您通常需要具有文件的所有者或超级用户权限。
- 使用chmod命令时要小心,以免不小心修改了文件的权限。