Linux文件夹管理


要在CentOS Linux中引入适用于目录和文件的权限,让我们看看下面的命令输出。

[centos@centosLocal etc]$ ls -ld /etc/yum*
drwxr-xr-x. 6 root root 100 Dec  5 06:59 /etc/yum
-rw-r--r--. 1 root root 970 Nov 15 08:30 /etc/yum.conf
drwxr-xr-x. 2 root root 187 Nov 15 08:30 /etc/yum.repos.d

- 您将看到的三种主要对象类型是

  • “ - ” - 纯文件的短划线

  • “d” - 用于目录

  • “l” - 用于符号链接

我们将重点关注每个目录和文件的三个输出块 -

  • drwxr-xr-x:root:root
  • -rw-r - r--:root:root
  • drwxr-xr-x:root:root

现在让我们分解这些,以更好地理解这些线 -

d 意味着对象类型是一个目录
rwx 指示应用于所有者的目录权限
r-x 指示应用于组的目录权限
r-x 指示适用于世界的目录权限
root 第一个实例表示目录的所有者
root 第二个实例表示应用了哪些组权限的组

了解 owner, group 和 world 之间的差异很重要。不了解这一点会对托管Internet服务的服务器产生重大影响。

在我们给出一个真实世界的例子之前,让我们首先了解它们适用于 目录文件 的权限。

请看下表,然后继续说明。

八进制 符号 权限 目录
1 x 执行 进入目录并访问文件
2 r 列出目录中的文件
4 w 删除或修改目录中的文件

- 当文件应该可以在目录中读取时,通常应用 读取执行 权限。否则,用户将很难处理文件。保持 禁用将确保文件不能:重命名,删除,复制或修改权限。

将权限应用于目录和文件

在应用权限时,需要理解两个概念 -

  • 符号权限
  • 八进制权限

实质上,每一个都是相同的,但是指向和分配文件权限的方式不同。有关快速指南,请参阅下表 -

执行
八进制 4 2 1
符号 r w x

使用 八进制 方法分配权限时,请使用3字节数字,例如:760.数字760转换为:Owner:rwx; 组:rw; 其他(或世界)没有权限。

另一个场景:733将转化为:Owner:rwx; 组:wx; 其他:wx。

使用八进制方法的权限有一个缺点。现有权限集无法修改。只能重新分配对象的整个权限集。

现在你可能会想知道,总是重新分配权限有什么问题?设想一个大的目录结构,例如生产Web服务器上的 /var /www/ 。我们想递归地拿走所有其他目录中的 w写入位 。因此,只有在需要采取安全措施的情况下,才会主动加入。如果我们重新分配整个权限集,我们将分配给每个子目录的所有其他自定义权限。

因此,它会给系统的管理员和用户造成问题。在某个时刻,一个人(或多个人)需要重新分配所有通过为每个目录和对象重新分配整个权限集而被清除的自定义权限。

在这种情况下,我们希望使用符号方法来修改权限 -

chmod -R o-w /var/www/

上述命令不会“覆盖权限”,而是修改当前权限集。所以习惯使用最佳实践

  • 八进制只能分配权限
  • 符号来修改权限集

CentOS管理员精通 OctalSymbolic 权限非常重要,因为权限对于数据和整个操作系统的完整性非常重要。如果权限不正确,最终结果将是敏感数据,整个操作系统将受到影响。

有了这些,我们来看一些修改权限和对象所有者/成员的命令 -

  • CHMOD
  • CHOWN
  • chgrp命令
  • 的umask

chmod:更改文件模式权限位

命令 动作
-c 像冗长,但只会报告所做的更改
-v 详细地说,为每个请求输出诊断信息
-R 递归地将操作应用于文件和目录

chmod将允许我们使用 八进制符号 权限集来更改目录和文件的权限。我们将使用它来修改我们的任务并上传目录。

chown:更改文件所有者和组

命令 动作
-c 像冗长,但只会报告更改
-v 详细,为每个请求输出诊断
-R 递归地,将操作应用于文件和目录

chown 可以修改拥有用户和对象组。但是,除非需要同时修改两者,否则使用 chgrp 通常用于组。

chgrp:更改文件或目录的组所有权

命令 动作
-c 像冗长,但只会报告更改
-v 详细,为每个请求输出诊断
-R 递归地,将操作应用于文件和目录

chgrp会将组所有者更改为提供的组。

现实世界的实践

让我们更改 /var/www/students/ 中国的所有子目录分配,以便拥有组是 学生 组。然后将 学生 的根分配给教授组。之后,让Terry Thomas博士成为 学生 目录的所有者,因为他的任务是负责学校所有计算机科学学术机构的工作。

正如我们所看到的,创建时,该目录保持原始状态。

[root@centosLocal ~]# ls -ld /var/www/students/
drwxr-xr-x. 4 root root 40 Jan  9 22:03 /var/www/students/

[root@centosLocal ~]# ls -l /var/www/students/
total 0
drwxr-xr-x. 2 root root 6 Jan  9 22:03 assignments
drwxr-xr-x. 2 root root 6 Jan  9 22:03 uploads

[root@centosLocal ~]#

作为管理员,我们永远不想将我们的 root 凭证提供给任何人。但与此同时,我们需要让用户有能力去完成他们的工作。所以让我们让特里托马斯博士对文件结构进行更多的控制,并限制学生可以做的事情。

[root@centosLocal ~]# chown -R drterryt:professors /var/www/students/
[root@centosLocal ~]# ls -ld /var/www/students/
drwxr-xr-x. 4 drterryt professors 40 Jan  9 22:03 /var/www/students/

[root@centosLocal ~]# ls -ls /var/www/students/
total 0
0 drwxr-xr-x. 2 drterryt professors 6 Jan  9 22:03 assignments
0 drwxr-xr-x. 2 drterryt professors 6 Jan  9 22:03 uploads

[root@centosLocal ~]#

现在,每个目录和子目录都有 drterryt 的所有者,拥有的组是 教授 。由于 作业 目录供学生转入分配的作业,因此让我们删除列出和修改 学生 组中 文件 的功能。 __

[root@centosLocal ~]# chgrp students /var/www/students/assignments/&& chmod
736 /var/www/students/assignments/

[root@centosLocal assignments]# ls -ld /var/www/students/assignments/
drwx-wxrw-. 2 drterryt students 44 Jan  9 23:14 /var/www/students/assignments/

[root@centosLocal assignments]#

学生可以将作业复制到 作业 目录。但他们无法列出目录的内容,复制当前文件或修改 任务 目录中的文件。因此,它只允许学生提交完成的作业。CentOS文件系统将提供日期标记,以指示何时转入分配。

作为 作业 目录的所有者

[drterryt@centosLocal assignments]$ whoami
drterryt

[drterryt@centosLocal assignments]$ ls -ld /var/www/students/assignment
drwx-wxrw-. 2 drterryt students 44 Jan  9 23:14 /var/www/students/assignments/

[drterryt@centosLocal assignments]$ ls -l /var/www/students/assignments/
total 4
-rw-r--r--. 1 adama  students  0 Jan  9 23:14 myassign.txt
-rw-r--r--. 1 tammyr students 16 Jan  9 23:18 terryt.txt

[drterryt@centosLocal assignments]$

我们可以看到,目录所有者可以列出文件以及修改和删除文件。

umask命令:为文件和目录权限创建时提供默认模式

umask 是一个重要的命令,可在创建文件和目录权限时提供默认模式。

umask 权限使用一元,否定逻辑。

权限 操作
0 读,写,执行
1 读和写
2 阅读并执行
3 只读
4 阅读并执行
5 只写
6 仅执行
7 没有权限
[adama@centosLocal umask_tests]$ ls -l ./
-rw-r--r--. 1 adama students 0 Jan 10 00:27 myDir
-rw-r--r--. 1 adama students 0 Jan 10 00:27 myFile.txt

[adama@centosLocal umask_tests]$ whoami
adama

[adama@centosLocal umask_tests]$ umask
0022

[adama@centosLocal umask_tests]$

现在,让我们更改当前用户的 umask ,并创建一个新的文件和目录。

[adama@centosLocal umask_tests]$ umask 077

[adama@centosLocal umask_tests]$ touch mynewfile.txt

[adama@centosLocal umask_tests]$ mkdir myNewDir

[adama@centosLocal umask_tests]$ ls -l
total 0
-rw-r--r--. 1 adama students 0 Jan 10 00:27 myDir
-rw-r--r--. 1 adama students 0 Jan 10 00:27 myFile.txt
drwx------. 2 adama students 6 Jan 10 00:35 myNewDir
-rw-------. 1 adama students 0 Jan 10 00:35 mynewfile.txt

正如我们所看到的,新创建的文件比以前更加严格。用户的umask必须改变

  • /etc/profile
  • ~/bashrc
[root@centosLocal centos]# su adama
[adama@centosLocal centos]$ umask
0022
[adama@centosLocal centos]$

一般来说,CentOS中的默认 umask 都可以。当我们遇到默认 0022 麻烦时,通常是在不同部门的不同部门需要合作项目时。

这就是系统管理员的职责所在,以平衡CentOS操作系统的操作和设计。