Linux文件权限与目录配置-读书笔记(二)

本文介绍了Linux系统中文件权限管理的重要性,涉及文件拥有者、群组的概念,以及chmod、chown和chgrp命令在设置和改变文件权限、所属群组和所有者方面的应用。
摘要由CSDN通过智能技术生成

Linux最优秀的地方之一就在于他的多用户多任务环境。而为了让各个使用者具有较保密的文件数据,因此文件的权限管理就变的很重要了。 Linux一般将文件可存取的身份分为三个类别,分别是 文件拥有者/群组/其他人,且三种身份各有 读/写/执行 等权限。

使用者和群组

Linux系统中有很多的重要文件,每个文件都有相当多的属性和权限,最重要的是文件拥有者的概念了

文件拥有者

现在的服务器大多数都是使用的Liunx系统,所以肯定会发生多人使用同一台Linux系统的情况,但是每个人的隐私以及个人喜好的工作环境不同这种情况下,文件拥有者的角色就会显的尤其重要。

例如你的一些文件或者视频不希望其他人看到,这时候把文件设置为只有文件拥有者才可以看到内容,即使他人能看到文件的存在也不能访问文件的内容

群组

假设有两组专题生在我的主机里面,第一个专题组别为projecta,里面的成员有class1, class2, class3三个;第二个专题组别为projectb,里面的成员有class4, class5, class6。

class1创建了一个文件 class2 和 class3都有权访问文件内容

其他人

我们以王三毛为例,王三毛这个“文件”的拥有者为王三毛,他属于王大毛这个群组,而张小猪相对于王三毛,则只是一个“其他人(others)”而已。

不过,这里有个特殊的人物要来介绍的,那个人在Linux系统中的身份代号是“ root ”啦!root为是系统的管理员在Linux中很多的操作和文件的访问都需要root身份才可以

在我们Linux系统当中,默认的情况下,所有的系统上的帐号与一般身份使用者,还有那个root的相关信息,都是记录在/etc/passwd这个文件内的。至于个人的密码则是记录在/etc/shadow这个文件下。此外,Linux所有的群组名称都纪录在/etc/group内!这三个文件可以说是Linux系统里面帐号、密码、群组信息的集中地啰!不要随便删除这三个文件啊!

文件权限

大致了解了Linux的使用者与群组之后,接着下来,我们要来谈一谈,这个文件的权限要如何针对这些所谓的“使用者”与“群组”来设置呢?这个部分是相当重要的,尤其对于初学者来说,因为文件的权限与属性是学习Linux的一个相当重要的关卡,如果没有这部份的概念,那么你将老是听不懂别人在讲什么呢!尤其是当你在你的屏幕前面出现了“Permission deny”的时候,不要担心,“肯定是权限设置错误”啦

Linux文件属性

现在让我们来使用ls命令来查询下我们系统中的文件详细信息

ls命令用于列出当前目录中的文件和子目录。它的常用参数如下:

  • -l:以长格式显示文件和目录的详细信息,包括文件的权限、所有者、大小、创建时间等。
  • -a:显示所有文件和目录,包括以"."开头的隐藏文件。
  • -h:以易读的格式显示文件和目录的大小,比如使用kB、MB、GB等单位。
  • -t:根据修改时间进行排序,最近修改的文件和目录排在前面。
  • -r:以相反的顺序进行排序,文件和目录按照降序排列。

两个例子:

  1. 使用ls命令列出当前目录中的所有文件和目录:

ls

  1. 使用ls命令以长格式显示当前目录中的文件和目录,并按照修改时间进行排序:

ls -l -t

图来自鸟哥的私房菜这本书

第一组为“文件拥有者可具备的权限”,以“initial-setup-ks.cfg”那个文件为例,该文件的拥有者可以读写,但不可执行;

第二组为“加入此群组之帐号的权限”;

第三组为“非本人且没有加入本群组之其他帐号的权限”。

若有一个文件的类型与权限数据为“-rwxr-xr--”,请说明其意义为何?答:先将整个类型与权限数据分开查阅,并将十个字符整理成为如下所示:

[-][rwx][r-x][r--]

1 234 567 890

1 为:代表这个文件名为目录或文件,本例中为文件(-);

234为:拥有者的权限,本例中为可读、可写、可执行(rwx);

567为:同群组使用者权限,本例中为可读可执行(rx);

890为:其他使用者权限,本例中为可读(r),就是只读之意同时注意到,rwx所在的位置是不会改变的,有该权限就会显示字符,没有该权限就变成减号(-)就是了。

第二栏表示有多少文件名链接到此节点(i-node):每个文件都会将他的权限与属性记录到文件系统的i-node中,不过,我们使用的目录树却是使用文件名来记录,因此每个文件名就会链接到一个i-node啰!这个属性记录的,就是有多少不同的文件名链接到相同的一个i-node号码去就是了。关于i-node的相关数据我们会在第七章谈到文件系统时再加强介绍的。

第三栏表示这个文件(或目录)的“拥有者帐号”

第四栏表示这个文件的所属群组在Linux系统下,你的帐号会加入于一个或多个的群组中。举刚刚我们提到的例子,class1,class2, class3均属于projecta这个群组,假设某个文件所属的群组为projecta,则class1, class2, class3三人对于该文件都具有可读、可写、可执行的权限(看群组权限)。但如果是不属于projecta的其他帐号,对于此文件就不具有任何权限了。

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

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

第七栏为这个文件的文件名

这七个字段的意义是很重要的!务必清楚的知道各个字段代表的意义!尤其是第一个字段的九个权限,那是整个Linux文件权限的重点之一。

假设test1, test2, test3同属于testgroup这个群组,如果有下面的两个文件,请说明两个文件的拥有者与其相关的权限为何?

-rw-r--r-- 1 root root 238 Jun 18 17:22 test.txt -rwxr-xr-- 1 test1 testgroup 5238 Jun 19 10:25 ping_tsa

test.txt 文件属于 root组中的root 只有root这个帐号可以存取此文件,其他人则仅能读此文件;

ping_tsa 文件属于 ping_tsa的test1

test1 可以针对此文件具有可读可写可执行的权力;

而同群组的test2, test3两个人与test1同样是testgroup的群组帐号,则仅可读可执行但不能写(亦即不能修改);

至于没有加入testgroup这一个群组的其他人则仅可以读,不能写也不能执行

改变文件的属性和权限

改变权限

命令名称:chmod

作用说明:chmod命令用于修改文件或目录的权限。

参数使用:

  1. -c:显示权限修改的详细信息。
  2. -R:递归地修改目录及其子目录下的所有文件权限。
  3. u/g/o/a:表示用户/用户组/其他用户/所有用户。
  4. +/-/=:加入/移除/设置权限。
  5. r/w/x:读取/写入/执行权限。

1. 将脚本文件test.sh的所有者设置为可读写执行权限,所属组和其他用户只有读权限:

  • chmod u=rwx,g=r,o=r test.sh

2. 将目录test的所有者和所属组添加写权限,其他用户移除所有权限:

  • chmod ug+w,o= test

数字类型改变文件权限Linux文件的基本权限就有九个,分别是owner/group/others三种身份各有自己的read/write/execute权限,先复习一下刚刚上面提到的数据:文件的权限字符为:“-rwxrwxrwx”,这九个权限是三个三个一组的!其中,我们可以使用数字来代表各个权限,各权限的分数对照表如下:r:4w:2x: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

所以等一下我们设置权限的变更时,该文件的权限数字就是770啦!

改变所属群组

在Linux系统中,chgrp命令用于更改文件或目录的所属组。它的基本语法是:

chgrp [选项] 组名 文件或目录名

常用的选项包括:

  • R:递归地更改所选目录及其子目录的所属组。
  • v:显示每个更改的详细信息。

示例1:将文件file.txt的所属组更改为group1

  • chgrp group1 file.txt

示例2:递归地将目录dir1及其子目录下的所有文件的所属组更改为group2

  • chgrp -R group2 dir1

更改文件拥有者

命令名称:chown(change owner)

作用说明:chown命令用于更改文件或目录的所有者。

参数使用:

  • -R :递归地更改指定目录及其子目录下的所有文件和目录的所有者。
  • 用户名 :指定要更改为的新所有者的用户名。

例子1:chown user1 file.txt

这个命令将文件file.txt的所有者更改为user1。

例子2:chown -R user2 /var/www

这个命令将/var/www目录下所有文件和子目录的所有者更改为user2,包括/var/www目录本身。

  • 22
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值