赞
踩
本文主要记录如何Ubuntu文件权限与连接文件;
Liunx文件有三种权限:
权限名 | 权限符号 | 八进制编码 | 二进制编码 |
读取 | r | 4 | 100 |
写入 | w | 2 | 010 |
可执行 | x | 1 | 001 |
我们创建一个文件,然后详细查看a.c文件属性(也可使用使用ll指令快速查看):
- touch a.c
- ls a.c -l
以---|---|---组成的九位文件权限 |
第一栏rw-为以这个文件所属的用户 |
第二栏rw-为用户所在用户组的内其他成员 |
第三栏r--为不属于用户组的其他用户 |
第一个y-serein为所属用户名 |
第二个y-serein为用户成员 |
对于读取权限和写入权限可以字面理解其含义,下面示例为Liunx建立可执行权限文件:
输入gedit指令,以文本格式创建并打开a.c,写入一段C语言代码,然后保存,使用gcc指令将其编译,再查看文件属性:
- gedit hello.c
- #以下为文档内的函数
- /*------------------------------------*/
- #include <stdio.h>
-
- int main(void)
- {
- printf("hello world\r\n");
- return 0;
- }
- /*------------------------------------*/
- ls
- gcc hello.c -o hello
- ls
- ./hello
- ls hello -l

我们看到相较于hello.c,我们编译后产生的文件hello是可读、可写、可执行文件,hello就相当于一个应用了。
修改文件权限命令:chmod命令
修改权限 | chmod 664 hello |
再次 查看发现无权限 | ./hello |
修改文件所属用户:chown命令
修改文件所属用户 | sudo chown root hello |
修改文件所属组 | sudo chown .root hello |
修改文件所属用户于所属组 | sudo chown zzk.zzk hello |
修改目录下所有文件 | sudo chown -R zzk.zzk xxx |
Liunx中有硬连接与符号连接两种连接文件
inode:记录文件属性,一个文件有且只有一个inode,inode相当于文件ID,系统在查找文件的时候需要先找到inode,然后才能读出文件的内容。
硬连接:产生一个inode不变,只改变文件名的一种连接方式,多个文件名共同使用一个inode。
1、具有相同inode的多个文件互为硬链接文件。ll -i 指令可显示inode信息,下图第一列即是,三个硬链接的inode完全一致
2、对于硬连接文件,只有删除了源文件以及对应的所有硬连接文件,文件实体才会被删除,删除源文件或者ln所创建的文件,均不会影响其他文件使用,。
3、可以通过给文件创建硬连接的方式来防止文件误删除。
4、不论修改源文件还是连接文件,另一个文件的数据都会被改变,3.4两点结合起来可以将硬连接看做是一个实时同步备份文件。
5、硬连接不能跨文件系统。
6、硬连接不能连接到目录。
连接文件通过ln命令创建文件,格式:ln (选项 )源文件 目标文件
选项:s:创建符号连接(软连接)
-f 强制创建连接,如果目标存在,那么先删除掉目标文件,然后再建立连接文件
前文有创建hello可执行文件的示例,为展示inode作用,再次使用:
- gedit hello.c
- #include <stdio.h>
-
- int main(void)
- {
- printf("hello world\r\n");
- return 0;
- }
- gcc hello.c -o hello
- ls
- ./hello
- ln hello hello1
- ln hello hello2
- ll -i hello*
1、可以连接到目录。
2、可以跨文件系统。
3、删除源文件以后,软连接文件也就打不开了。
4、符号连接文件通过->来指示具体的连接文件。
ln -s /home/y-serein/aaa/hello hello3
注:符号连接建议使用绝对路径,否则在拷贝时所拷贝的将是源文件,当拷贝于其他目录时可能会导致拷贝无效。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。