Ubuntu权限详解

  • Post author:
  • Post category:其他


在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

每一行的含义分别如下:

权限 incode 所属用户 所属用户组 文件大小 修改时间 文件或文件名
drwxrwxrwx 0 root root 512 May 13 00:51 AppData

每一行的第一个字段,如

drwxrwxrwx

代表了这个文件的权限详情,共分为10位,由

d r w x –

五种标识符组成,

  • d 是否为目录
  • r 代表用户是否有读取权限
  • w 代表用户是否有写入权限
  • x 代表用户是否有执行权限
  • – 代表此项为空,也就是没有此项权限的意思
位置 属性 含义
第1位 d 代表是否为文件夹
第2-4位 rwx 代表所属用户的

读 写 执行

权限
第5-7位 rwx 代表所属用户组的

读 写 执行

权限
第8-10位 rwx 代表其他用户的

读 写 执行

权限

如第一位是

d

代表是文件夹, 第一位如果是

-

代表不是文件夹(那不就是文件喽)


rwx

代表有读取、写入、执行权限,如果为

-wd

代表无读取、有写入、有执行权限

好吧,现在来理解这一行

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-