记录学习 Linux 过程中的点滴,在 Linux 面前,我只是个小白

2a88bba06534

image.png

一、文件的基本属性

在 Linux 中使用 ls –l 命令来显示一个文件的属性以及文件所属的用户和组,如:

$ ls -l

total 16

-rwxrwxr-x 1 helei helei 8600 Dec 4 17:56 a.out

-rwxr-xr-- 1 helei helei 77 Dec 4 17:55 hello.c

可以看到列出了当前目录下的所有文件,包括权限信息,所属用户,日期和文件名,其它很好理解但是看到 -rwxrwxr-x 这一串字符的时候完全是懵逼状态的,我是谁?我在哪?我要干什么?😆先来对里面的字符一步步拆分吧。

首先第一个字符用来标识是文件还是目录,这里只列出两个有代表性的:

当为[ - ]则代表文件

当为[ d ]则是目录

然后在接下来的剩余字符中,以三个为一组,且均为『rwx』 的三个参数的组合。其中,[ r ] 代表可读 (read)、[ w ] 代表可写 (write)、[ x ] 代表可执行 (execute)。我们知道,在 Linux 中,文件的基本权限就有九个,分别是

owner/group/others 三种身份各有自己的 read/write/execute 权限。那我们就明白了,并且可以得出结论:

第一组 rwx 表示 owner 身份用户对该文件有着读、写和执行的全部权利

第二组 rwx 表示 group 身份用户对该文件有着读、写和执行的全部权利

第三组 r-x 表示 others 身份用户对该文件有着读和执行的权利,但是没有写的权利

2a88bba06534

image.png

二、更改文件权限设置

我们如果想要查看单个文件的默认权限可以使用命令:ls -al 文件名

$ ls -al hello.c

-rwxr-xr-- 1 helei helei 77 Dec 4 17:55 hello.c

可以看到文件 hello.c 的默认权限为 -rwxr-xr--,要改变它的权限为 rwxrwxr-x,我们可以使用 chmod 命令,有两种方法设置方法:

1、符号类型改变文件权限:chmod u=rwx,g=rwx,o=rx 文件名

$ chmod u=rwx,g=rwx,o=rx hello.c

$ ls -al hello.c

-rwxrwxr-x 1 helei helei 77 Dec 4 17:55 hello.c

从上示例中可以看到 hello.c 的权限已经变成 rwxrwxr-x。

2、数字类型改变文件权限,各权限的分数对照表如下:

r:4

w:2

x:1

每种身份(owner/group/others)各自的三个权限(r/w/x)分数是需要累加的,例如当权限为: [-rwxrwx---] 分数则是:

owner = rwx = 4+2+1 = 7

group = rwx = 4+2+1 = 7

others= --- = 0+0+0 = 0

变更权限的指令 chmod 的语法是这样的:

chmod [-R] xyz 文件或目录

选项与参数:

xyz : 就是刚刚提到的数字类型的权限属性,为 rwx 属性数值的相加。

-R : 进行递归 (recursive) 的持续变更,亦即连同次目录下的所有文件都会变更

如果要将 hello.c 的所有权限都启用,那么可以这样:

$ ls -al hello.c

-rwxrwxr-x 1 helei helei 77 Dec 4 17:55 hello.c

$ chmod 777 hello.c

$ ls -al hello.c

-rwxrwxrwx 1 helei helei 77 Dec 4 17:55 hello.c

一顿操作猛如虎,hello.c 的文件权限变更为 rwxrwxrwx,😆美滋滋。

2a88bba06534

image.png

刚接触 Linux,如果有写得不对的地方,希望能指出,一起交流,一起学习😯。

Logo

更多推荐