Linux 的文件权限与目录配置

Linux 的文件权限与目录配置

 

 

在 Linux 里面,任何一个文件都具有『User, Group 及 Others』 

默认的情况下:

所有的系统上的账号与一般身份使用者,还有那个 root 的相关信息,都是记录在/etc/passwd 这个文件内

个人的密码则是记录在/etc/shadow 这个文件下

Linux 所有的组名都纪录在/etc/group 内! 

 

文件权限:r w x

r (read):可读取此一文件的实际内容,如读取文本文件的文字内容

w (write):可以编辑、新增或者是修改该文件的内容(但不含删除该文件)

x (eXecute):该文件具有可以被系统执行的权限 

 

文件属性:

 

ls -al (缩写ll)是查看当前位置下的『所有隐藏档与相关的文件属性』 例如:

 

[root@rfjmy7h77vmu src]# ll
total 4
-rw-r--r--   1       root      root            442          Jun 14 14:40     socket_client1.py

 

[ 权限 ]      [连结]  [拥有者]   [群组]     [文件容量]    [ 修改日期 ]        [ 文件名 ] 

1, 第一栏:

 

-rw-r--r-- 代表这个文件的类型与权限(permission) 

 

?第一个字符代表这个文件类型 例如:目录、文件或链接文件等等:

o 当为[ d ]则是目录,例如上表档名为『.config』的那一行;
o 当为[ - ]则是文件,例如上表档名为『initial-setup-ks.cfg』那一行;
o 若是[ l ]则表示为连结档(link file);
o 若是[ b ]则表示为装置文件里面的可供储存的接口设备(可随机存取装置)例如:硬盘,软盘
o 若是[ c ]则表示为装置文件里面的串行端口设备,例如键盘、鼠标(一次性读取装置) 

o 若是[ s]则表示为数据接口文件(sockets)

  • 这种类型的文件通常被用在网络上的数据承接了。我们可以启动一 个程序来监听客户端的要求, 而客户端就可以透过这个 socket 来进行数据的沟通了 ,最常在/run 或/tmp 这些个目录中看到这种文件类型了。 

o  若是[ p ]则表示为数据输送文件(FIFO, pipe)

  • FIFO 也是一种特殊的文件类型,他主要的目的在解决多个程序同时存取一个文件所造成的错误问题 

 

 

接下来的字符中以三个为一组且均为『rwx』 的三个参数的组合。其中,[ r ]代表可读(read)[ w ]代表 可写(write)、[ x ]代表可执行(execute)。 要注意的是,这三个权限的位置不会改变,如果没有权限,就会出 现减号[ - ]而已。

第一组为『文件拥有者可具备的权限』即:user,以-rw-r--r--为例, 该文件的拥有者 可以读写,但不可执行;

第二组为『加入此群组之账号的权限』即:group;-rw-r--r--为例, 该group 权限是只可读

第三组为『非本人且没有加入本群组之其他账号的权限』即:others-rw-r--r--为例, 该others 权限是只可读

 

2,第二栏:

 

第二栏表示有多少档名连结到此节点(i-node) 

 

3,第三栏:

 

第三栏表示这个文件(或目录)的『拥有者账号』 

 

4,第四栏

 

第四栏表示这个文件的所属群组 

 

5,第五栏

 

第五栏为这个文件的容量大小,默认单位为bytes;

 

6,第六栏

 

第六栏为这个文件的建档日期或者是最近的修改日期 

显示出完整的时间格式代码:ls -l --full-time 例如:

[root@rfjmy7h77vmu src]# ls -l --full-time
total 12
-rw-r--r-- 1 root root 442 2021-06-14 14:40:10.215033603 +0800 socket_client1.py

7,第七栏

第七栏为这个文件的档名 

比较特殊的是:如果档名之前多一个『 . 』,则代表这个文件为『隐藏档』 

 

Linux文件权限的用途:

-系统保护的功能

-团队开发软件或数据共享的功能:

-未将权限设定妥当的危害 

 

如何改变文件属性与权限 

chgrp :改变文件所属群组

代码:chgrp 需要修改成的组名 文件名

注意:此方法修改组名是要求/etc/group 下要有你所修改的组名,否则会修改失败

[root@rfjmy7h77vmu src]# ll
total 12
-rw-r--r-- 1 root users 442 Jun 14 14:40 socket_client1.py

******************************************

[root@rfjmy7h77vmu src]# chgrp root socket_client1.py
[root@rfjmy7h77vmu src]# ll
total 12
-rw-r--r-- 1 root root 442 Jun 14 14:40 socket_client1.py

 

chown :改变文件拥有者

代码:chown 需要修改成的账号名称 文件或目录

      chown 需要修改成的账号名称:组名 文件或目录

注意:/etc/passwd 这个文件中有纪录的用户名称才能改变 

l例如:

[root@rfjmy7h77vmu src]# chown bin socket_client1.py
[root@rfjmy7h77vmu src]# ll
total 12
-rw-r--r-- 1 bin root 442 Jun 14 14:40 socket_client1.py

******************************************

[root@rfjmy7h77vmu src]# chown root:root socket_client1.py
[root@rfjmy7h77vmu src]# ll
total 12
-rw-r--r-- 1 root root 442 Jun 14 14:40 socket_client1.py

 -改变文件的权限

chmod :改变文件的权限, SUID, SGID, SBIT 等等的特性   

 

权限的设定方法有两种, 分别可以使用数字或者 是符号来进行权限的变更 

-数字类型改变文件权限  代码: chmod 需要修改成的权限数字 文件名

文件的权限字符为:『-rwxrwxrwx』, 这九个权限是三个三个一组的!其中, 我们可以使用数字来代表各个权限,各权限的分数对照表如下:

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

 

例如:

 

socket_client.py 文件原权限是:-rw-r--r-- 

 

[root@rfjmy7h77vmu src]# chmod 770 socket_client1.py
[root@rfjmy7h77vmu src]# ll
total 12
-rwxrwx--- 1 root root 442 Jun 14 14:40 socket_client1.py

 

-符号类型改变文件权限 

 

chmod 身份=修改后权限 文件名

 

chmod 身份+需要加上的权限 文件名

 

linux权限分别是(1)user (2)group (3)others 三种身份啦!那么我们就可以藉由 u, g, o 来代表三种身份的权限! 

a 则代表 all 亦即全部 的身份! 那么读写的权限就可以写成 r, w, x  ,也就是可以使用底下的方式来看 

 

Linux 的文件权限与目录配置

 

 

 

 

 

原来的:-rw-r--r-- 1 root root 442 Jun 14 14:40 socket_client1.py

 

给user 加上可执行权限 代码如下:

 

-------------------------------------------

 

[root@rfjmy7h77vmu src]# chmod u=rwx socket_client1.py
[root@rfjmy7h77vmu src]# ll
total 12
-rwxr--r-- 1 root root 442 Jun 14 14:40 socket_client1.py

 

--------------------------------

 

[root@rfjmy7h77vmu src]# chmod u+x socket_client1.py

 

[root@rfjmy7h77vmu src]# ll

 

total 12
-rwxr--r-- 1 root root 442 Jun 14 14:40 socket_client1.py

 

----------------------------

 

给所有身份都加上可执行权限

 

[root@rfjmy7h77vmu src]# chmod a+x socket_client1.py

 

[root@rfjmy7h77vmu src]# ll

 

total 12
-rwxr-xr-x 1 root root 442 Jun 14 14:40 socket_client1.py

 

权限对文件/目录的作用如下图:

 

 

 

Linux 的文件权限与目录配置

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Linux 的文件权限与目录配置

上一篇:linux安装nginx


下一篇:进程时间的通信方式