60-chmod 修改文件的权限

修改文件的权限

chmod [options] who operator permission file-list (符号模式)

chmod [options] mode file-list (绝对模式)

参数

file-list chmod需要修改权限的文件名或目录的路径名

说明

Linux中主要有两种改变权限的方法

第一种:使用符号模式,例如:chmod a+x file,此处的a代表所有用户,+代表添加权限,x代表执行权限

第二种:使用绝对模式,例如:chmod 777 file,表示为所有用户添加可读可写可执行权限,三个数值分别对应三种用户类型

符号模式

who 用户类型

who 用户类型 意义
u User 文件的所有者
g Other 与文件相关联的组
o Other 所有其他用户
a All 相当与ugo,所有用户

operator 运算符

operator 意义
+ 为指定的用户类型添加权限
- 为指定的用户类型删除权限
= 设定或重置指定用户类型的权限

permission 模式

permission 意义 对文件含义 对目录含义
r 设置读权限 可以查看文件内容 可以列出目录中的内容
w 设置写权限 可以修改文件内容 可以在目录中创建、删除文件
x 设置执行权限 可以执行文件 可以进入目录

从上面可以知道,为什么在目录的权限中,r和x经常在一起设置

因为必须进入目录才能读取内容

绝对模式

绝对模式的典型范例

模    式 意义
777 所有用户都对文件具有读、写和执行权限
755 文件所有者对文件具有读、写和执行权限;组用户和其他用户对文件需有读和执行权限
711 文件所有者对文件具有读、写和执行权限;组用户和其他用户对文件具有执行权限
644 文件所有者可以读、写文件;组用户和其他用户可以读文件
640 文件所有者可以读、写文件;组用户可以读文件;其他用户不能访问文件

选项

-c                 显示修改过程信息

-f                  强制修改权限

-R                 对目录递归修改权限

-v                 显示修改过后的的信息

示例

chmod u+x

$ ls -l temp
-rw-r--r-- 1 siu siu 0 1月 10 13:50 temp
$ chmod u+x temp
$ ls -l temp
-rwxr--r-- 1 siu siu 0 1月 10 13:50 temp

列出文件详细信息,可看到开头有-rw-r--r--,排除第一位,后面的每三位代表一种用户类型,-表示无设置

此处为文件所有者添加执行权限

chmod ug+x

$ ls -l temp
-rwxr--r-- 1 siu siu 0 1月 10 13:50 temp
$ chmod ug=rwx temp
$ ls -l temp
-rwxrwxr-- 1 siu siu 0 1月 10 13:50 temp

为文件所有者和组用户添加执行权限

chmod g-x

$ ls -l temp
-rwxrwxr-- 1 siu siu 0 1月 10 13:50 temp
$ chmod g-x temp
$ ls -l temp
-rwxrw-r-- 1 siu siu 0 1月 10 13:50 temp

为组用户减去执行权限

chmod 777

$ ls -l temp
-rwxrw-r-- 1 siu siu 0 1月 10 13:50 temp
$ chmod 777 temp
$ ls -l temp
-rwxrwxrwx 1 siu siu 0 1月 10 13:50 temp

为所有用户添加可读可写可执行权限

chmod 755

$ ls -l temp
-rwxrwxrwx 1 siu siu 0 1月 10 13:50 temp
$ chmod 755 temp
$ ls -l temp
-rwxr-xr-x 1 siu siu 0 1月 10 13:50 temp

为所有者添加读、写和执行权限,组用户和其他用户添加读和执行权限

chmod -Rv 755

$ ls -l
总用量 4
drwxr-xr-x 2 siu siu 4096 1月 10 13:57 dir
$ chmod -Rv 755 dir
"dir" 的权限模式保留为0755 (rwxr-xr-x)

递归为文件夹添加权限,并显示权限添加信息

Tips

1.文件夹必须先要有执行权限才可读写

2.除了以上基本的用户权限外,还有setuid、setgid和粘滞位等设置,有点高级。俺这里是简明笔记

上一篇:解决SpringMVC的@ResponseBody返回中文乱码


下一篇:java 多线程—— 线程等待与唤醒