ubuntu环境下文件权限管理
一、准备
- 在 ubuntu 环境下创建一个文件,如 hello.c
- 为 hello.c 文件编写程序,保存并退出
$ gedit hello.c
- 对 hello.c 文件进行编译
$ gcc hello.c -o hello
- 执行文件,结果可以正常输出
$ ./hello
二、预备知识
- 一个文件拥有三种权限,分别是读、写、执行****,分别用字母r、w、x**表示
三、操作
- 查看文件的权限
$ ls hello -l
前面的 -rwxrwxr-x
就是 hello.c 文件目前的权限
- 字母的含义:
- 第 1 位: 表示的文件的类型,常见的有 c、b
,c 表示的字符类型,b 表示的是块类型
- 第 2-4 位: 表示该文件拥有者的权限
- 第 5-7 位: 表示该文件拥有者所在组的权限
- 第 8-10 位: 表示其他用户的权限
示例:
查看 hello.c 文件的权限为 -rwxrwxr-x
:
表示该文件的拥有者有读、写和执行的权限;
该文件的拥有者所在组有读、写和执行的权限;
该文件的其他用户只有读和执行的权限,没有写的权限。
- 文件权限对应二进制值
我们是可以通过命令行进行修改文件权限的,除了用 r、w、x 表示以外,还可以用二进制数表示,这三种权限分别对应二进制中的一位,三种权限就可以用 3 位二进制来表示,如果该位为 1 则表示具备此权限,如果该位为 0 表示不具备此权限。
字母 | 二进制 | 十进制 |
---|---|---|
r | 100 | 4 |
w | 010 | 2 |
x | 001 | 1 |
将三种权限的值进行不同的组合时会有如下表:
权限 | 二进制 | 十进制 | 含义 |
---|---|---|---|
— | 000 | 0 | 没有任何权限 |
–x | 001 | 1 | 只有执行权限 |
-w- | 010 | 2 | 只有写权限 |
-wx | 011 | 3 | 有写、执行权限 |
r– | 100 | 4 | 只有读权限 |
r-x | 101 | 5 | 有读、执行权限 |
rw- | 110 | 6 | 有读、写权限 |
rwx | 111 | 7 | 三种权限都有 |
- 修改文件权限
格式:chmod 权限值 需要修改权限的文件
$ chmod 664 hello
$ ls hello -l
以上的命令表示该文件的拥有者、拥有者所在组均没有执行的权限,其它用户只有读的权限,此时再次执行编译后的文件,结果如下,会显示权限不足,表明该文件的权限修改成功
均没有执行的权限,其它用户只有读的权限,此时再次执行编译后的文件,结果如下,会显示权限不足,表明该文件的权限修改成功