Ubuntu文件权限详解

这篇博文转载于此处,觉得写的很容易理解,所以转载过来学习学习。

在Linux系统中,文件的权限控制着文件的所有操作,比如一个文件的读写权限、执行权限、是否为目录等等。

以下操作全部在终端中执行, 快捷键Ctrl+Alt+T

输入ls -l命令来列出当前文件夹下所有文件和子文件夹的权限详情。

user1@wzjing-win10:/mnt/c/Users/user1$ ls -l
total 458391864
drwxrwxrwx 0 root root       512 May 13 00:51 AppData
drwxrwxrwx 0 root root       512 Apr 25 00:10 CLionProjects
drwxrwxrwx 0 root root       512 May 22 09:32 compile
drwxrwxrwx 0 root root       512 May 28 14:08 Desktop
-rwxrwxrwx 0 root root       512 May 28 14:08 test.apk

每一行的含义分别如下:
Ubuntu文件权限详解_第1张图片
d 是否为目录, r 代表用户是否有读取权限, w 代表用户是否有写入权限,x 代表用户是否有执行权限,如果有‘-’, 代表此项为空,也就是没有此项权限的意思
Ubuntu文件权限详解_第2张图片
如第一位是d代表是文件夹, 第一位如果是-代表不是文件夹(那就是文件),rwx代表有读取、写入、执行权限。如果为-wx代表无读取、有写入、有执行权限。现在来理解下面这一行:

drwxrwxrwx 0 root root       512 May 13 00:51 AppData

第1位 d 是文件夹;2-4位 rwx 所属用户root有 读取、写入、执行 三项权限;5-7位 rwx 所属用户组root有 读取、写入、执行 三项权限;8-10位 rwx 其他用户user1有 读取、写入、执行 三项权限。

使用chmod命令更改文件权限

语法chmod [权限操作] [文件名]
你不能把一个文件改成文件夹或者把文件夹改成文件,所以你只能改后9位。使用 u g o a 代表要更改的权限群组:

u [代表所属用户]
g [代表所属用户组]
o [代表其他用户]
a [代表以上所有三个]
符号‘-’ [代表删除权限]
符号‘+’ [代表增加权限]
符号‘=’ [代表将权限设置为]

示例(如果提示你没权限修改的话,就在命令前边增加sudo)

chmod u+x test.apk 代表增加所属用户对test.apk的可执行权限

chmod a-w AppData 代表删除所有人对AppData这个文件夹的写入权限

chmod -w AppData a可以省略,此条命令和上边这条完全相同。

也可以一次设置多个权限

chmod g+rwx AppData 代表添加所属用户组可读取、可写入、可执行权限

chmod g=rwx AppData 代表把所属用户组的权限设置为可读取、可写入、可执行

**Tip: 其实+和=的区别不是很大

有一种更为简便的写法:

Linux系统内部设定: r=4 ,w=2, x=1, -=0,r w x任意一种组合的三个值相加的结果都不同
如:
rwx=7,-wx=3,r-x=5,rw-=6

所以可以这么写命令:
chmod 777 test.apk 设置权限为 -rwxrwxrwx
chmod 755 test.apk 设置权限为 -rwxr-xr-x
chmod 666 test.apk 设置权限为 -rw-rw-rw-

你可能感兴趣的:(Ubuntu的自我修炼)