案头见蠹鱼,犹胜凡俦侣。这篇文章主要讲述#导入Word文档图片# Linux下文件目录权限操作相关的知识,希望能为你提供帮助。
1.1 查看目录和文件的权限?
- 查看文件的权限:ls -l 指令。
[root@xiaolong 2016-5-24]# ls -l 总用量 7 -rwxrwxrwx. 1 root root 26 5月 24 09:40 123.c -rwxrwxrwx. 1 root root 5549 5月 24 09:40 a.out -rwxrwxrwx. 1 root root 722 5月 24 09:40 file_1.c |
ls -l查看的文件或者目录信息前10个字符表示了文件的属性和权限信息。
- 第1个字符表示文件的属性:
- | 普通文件 |
d | 目录 |
b | 块设备文件 |
c | 字符设备文件 |
p | 管道文件 |
- 第2~10个字符当中的每3个为一组,左边三个字符表示所有者权限,中间3个字符表示与所有者同一组的用户的权限,右边3个字符是其他用户的权限。这三个一组共9个字符,代表的意义如下:
r | 可读权限 对文件而言,具有读取文件内容的权限;对目录来说,具有浏览目录的权 |
w | 可写权限 对文件而言,具有新增、修改文件内容的权限;对目录来说,具有删除、移动目录内文件的权限。 |
x | 可执行权限 对文件而言,具有执行文件的权限;对目录了来说该用户具有进入目录的权限。 |
1.2 chmod命令改变权限?使用chmod命令可以改变文件或目录的访问权限
文件和目录的权限表示,是用rwx这三个字符来代表所有者、用户组和其他用户的权限。
改变权限可以使用两种方法:
第一种使用字符方式。
第二种使用数字方式。
1.2.1 数字方式?
r | 对应数值4 |
w | 对应数值2 |
x | 对应数值1 |
再将其每三位转换成为一个十进制数,就是754。
- 例如,我们想让123.txt这个文件的权限为:
所有者 | 同组用户 | 其他用户 |
可读 r | 可读 r | 可读 r |
可写 w | 可写 w | 否 |
可执行 x | 否 - | 否 - |
[root@xiaolong test_code]# chmod 764 123.txt |
[root@xiaolong test_code]# ls 123.txt -l -rw-r--r--. 1 root root 0 5月 24 20:36 123.txt//修改前 [root@xiaolong test_code]# chmod 764 123.txt//修改权限 [root@xiaolong test_code]# ls -l 总用量 0 -rwxrw-r--. 1 root root 0 5月 24 20:36 123.txt //修改后 |
- 按照上面的规则,rwx合起来就是4+2+1=7,一个rwxrwxrwx权限全开放的文件,数值表示为777;而完全不开放权限的文件“---------”其数字表示为000。下面举几个例子:
-rwxr―r--:等于数字表示744。
-rw-rw-r-x:等于数字表示665。
drwx―x―x:等于数字表示711。
drwx------:等于数字表示700。
1.2.2 递归方式改变子目录权限?
如果想一次修改某个目录下所有文件的权限,包括子目录中的文件权限也要修改,要使用参数-R表示启动递归处理。
示例:
[root@xiaolong /]# chmod 777 test_code/ -R |
-v 选项可以输出chmod执行的过程。
1.2.3 字符方式?
文字设定法格式:
chmod [who][+|-|=] [mode] 文件名 //修改指定文件名中who的权限增加/去除/赋值为mode |
- 操作对象who可是下述字母中的任一个或者它们的组合:
g 表示“同组(group)用户”,即与文件所有者有相同组ID的所有用户。
o 表示“其他(others)用户”。
a 表示“所有(all)用户”。它是系统默认值。即chmod +x 1.c表示所有人都有可执行的权限。
- 操作符号可以是:
- 取消某个权限。
= 赋予给定权限并取消其他所有权限(如果有的话)。
- 设置mode所表示的权限可用下述字母的任意组合:
w 可写
x 可执行
当是组合的时候,前面的who要指明。
修改123.txt的权限为 -rwxrwr:
自己 | 同组用户 | 其他用户 |
可读 r | 可读 r | 可读 r |
可写 w | 可写 w | 否 |
可执行 x | 否 - | 否 - |
[root@xiaolong test_code]# ls 123.txt -l ----------. 1 root root 0 5月 24 20:36 123.txt //修改前 [root@xiaolong test_code]# chmod u+rwx 123.txt [root@xiaolong test_code]# chmod g+rw 123.txt [root@xiaolong test_code]# chmod o+r 123.txt [root@xiaolong test_code]# ls 123.txt -l -rwxrw-r--. 1 root root 0 5月 24 20:36 123.txt //修改后 |
[root@xiaolong test_code]# ls 123.txt -l -rwxrw-r--. 1 root root 0 5月 24 20:36 123.txt //修改前 [root@xiaolong test_code]# chmod a+rwx 123.txt [root@xiaolong test_code]# ls 123.txt -l -rwxrwxrwx. 1 root root 0 5月 24 20:36 123.txt //修改后 |
1.3 chown命令更改某个文件/目录的所有者和属组?1.3.1 功能简介?
功能:更改某个文件或目录的所有者和属组。这个命令也很常用。
例如root用户把自己的一个文件拷贝给用户xl,为了让用户xl能够存取这个文件,root用户应该把这个文件的所有者设为xl,否则,用户xl无法存取这个文件。
- 使用ls -l查看文件或者目录详细信息的时候,第12个字符开始属于文件和目录的所有者和群组。
[root@xiaolong test_code]# ls -l 总用量 0 -rw-r--r--. 1 rootroot 0 5月 24 21:31 123.txt |
第二个root表示群组
- 语法:chown [选项] [所有者][:[组]] 文件
- 说明:chown将指定文件的拥有者改为指定的用户或组。用户可以是用户名或用户ID。组可以是组名或组ID。文件是以空格分开的要改变权限的文件列表,支持通配符。
- 参数:
- v 显示chown命令所做的工作。
1.3.2 修改文件所有者示例?
[root@xiaolong test_code]# ls 123.txt [root@xiaolong test_code]# ls -l 总用量 0 -rw-r--r--. 1 root root 0 5月 24 21:31 123.txt //更改前的所有者权限 [root@xiaolong test_code]# chown -v xiaolong 123.txt "123.txt" 的所有者已更改为xiaolong [root@xiaolong test_code]# ls -l 总用量 0 -rw-r--r--. 1 xiaolong root 0 5月 24 21:31 123.txt //更改后的所有者权限 [root@xiaolong test_code]# |
1.3.3 修改文件的用户组示例?
[root@xiaolong test_code]# ls -l 总用量 0 -rw-r--r--. 1 root root 0 5月 24 21:31 123.txt //修改前 [root@xiaolong test_code]# chown -v :xiaolong 123.txt "123.txt" 的所有者已更改为:xiaolong [root@xiaolong test_code]# ls -l 总用量 0 -rw-r--r--. 1 root xiaolong 0 5月 24 21:31 123.txt //修改后 |
1.3.4 同时修改文件的所有者与用户组?
[root@xiaolong test_code]# ls -l 总用量 0 -rw-r--r--. 1 root root 0 5月 24 21:31 123.txt //修改前 [root@xiaolong test_code]# chown -v xiaolong:xiaolong 123.txt "123.txt" 的所有者已更改为xiaolong:xiaolong [root@xiaolong test_code]# ls -l 总用量 0 -rw-r--r--. 1 xiaolong xiaolong 0 5月 24 21:31 123.txt //修改后 [root@xiaolong test_code]# |
注意:如果将文件拷贝到其他目录,那么该文件的所有者和用户组会根据所在目录的所有者和用户组发生改变。将文件移动到其他目录,那么该文件的所有者和用户组不会发生改变,原来是什么移动之后还是什么。
1.4 groups命令查看当前组内成员和所在组?groups :命令查看当前登录的用户组。
groups abc :查看用户abc所在的组和组内的成员。
示例:
[root@xiaolong /]# groups root [root@xiaolong /]# groups abc abc: abc |
1.5 用户组配置文件?/etc/group文件存放了用户组的配置文件。
/etc/group文件包含了组名、组密码、组ID、已经改组包含的用户等。
每条内容分为四个字段:
第一个字段:组名
第二个字段:组密码
第三个字段:组ID
第四个字段:组成员列表,每个成员之间可以使用 , 号隔开。 本字段可以为空,如果为空就表示组成员为用户组名。
图1-5-1
【#导入Word文档图片# Linux下文件目录权限操作】
推荐阅读
- WordPress在一页上显示所有页面
- SpringBoot整合SpringSecurity
- 持续集成CI/CD之CD的完整版最佳实践
- php手册String函数(解析)
- shell脚本系列---如何创建shell脚本,并执行常用的命令
- git系列---git提交代码时,文件名过长导致报错(libgit2 returned: invalid path for filesystem)
- git系列---初始工程文件太大或者文件数太多时,向远程仓库push时总是失败,如何解决()
- shell脚本系列---自动备份数据库数据
- Rust中使用模块组织代码