Linux Admin教程

Linux Admin 文件

要介绍 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 第二个实例,表示应用组权限的组
了解 ownergroupworld 之间的区别很重要。不了解这一点可能会对托管 Internet 服务的服务器产生重大影响。
在给出实际示例之前,让我们首先了解适用于 目录文件的权限。
请看下表,然后继续说明。
Octal Symbolic Perm Directory
1 x Execute 进入目录并访问文件
4 r Read 列出目录内的文件
2 w Write 删除或修改目录中的文件
注意-当文件应该可以在目录中读取时,通常应用 readexecute 权限。否则,用户将难以处理这些文件。禁用 write 将确保文件不能:重命名、删除、复制或修改权限。

对目录和文件应用权限

在应用权限时,有两个概念需要理解-
符号权限 八进制权限
本质上,每个都是相同的,但引用和分配文件权限的方式不同。如需快速指南,请研究并参考下表-
Read Write Execute
Octal 4 2 1
Symbolic r w x
当使用 八进制方法分配权限时,使用一个3字节的数字,例如:760。数字760转换为:Owner:rwx;组:rw;其他(或世界)没有权限。
另一种情况:733 将转换为:所有者:rwx;组:wx;其他:wx。
使用八进制方法的权限有一个缺点。无法修改现有权限集。只能重新分配对象的整个权限集。
现在您可能想知道,总是重新分配权限有什么问题?想象一个大型目录结构,例如生产网络服务器上的 /var/www/。我们想递归地删除所有目录上的 wwrite 位 以供其他。因此,仅在安全措施需要时才强制主动添加它。如果我们重新分配整个权限集,我们就会取消分配给每个子目录的所有其他自定义权限。
因此,这会给系统管理员和用户带来问题。在某些时候,一个人(或多个人)需要重新分配所有通过为每个目录和对象重新分配整个权限集而被清除的自定义权限。
在这种情况下,我们希望使用 Symbolic 方法来修改权限-
chmod-R o-w /var/www/
上述命令不会"覆盖权限"而是修改当前权限集。所以习惯于使用最佳实践
八进制仅用于分配权限 用于修改权限集的符号
CentOS 管理员必须精通 OctalSymbolic 权限,这很重要,因为权限对于数据和整个操作系统的完整性很重要。如果权限不正确,最终结果将是敏感数据和整个操作系统都会受到威胁。
有了这些,让我们看看一些用于修改权限和对象所有者/成员的命令-
chmod chown chgrp umask

chmod : 更改文件模式权限位

命令 Action
-c 喜欢冗长,但只会报告所做的更改
-v 详细,输出每个请求的诊断
-R 递归地对文件和目录应用操作
chmod 将允许我们使用 octalsymbolic 权限集更改目录和文件的权限。我们将使用它来修改我们的分配和上传目录。

chown : 更改文件所有者和组

命令 Action
-c 喜欢冗长,但只会报告所做的更改
-v 详细,输出每个请求的诊断
-R 递归地对文件和目录应用操作
chown 可以修改拥有用户和对象组。但是,除非需要同时修改两者,否则通常使用 chgrp 用于组。

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

命令 Action
-c 喜欢冗长,但只会报告变化
-v 详细,输出每个请求的诊断
-R 递归地,应用对文件和目录的操作
chgrp 会将群组所有者更改为提供的所有者。

现实世界的实践

让我们更改 /var/www/students/ 中的所有子目录分配,因此拥有组是 students 组。然后将 students的根分配给教授组。稍后,让 Terry Thomas 博士成为 students 目录的所有者,因为他的任务是负责学校的所有计算机科学学术界。
正如我们所见,目录在创建时非常原始。
[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 凭据提供给任何人。但同时,我们需要让用户有能力完成他们的工作。因此,让我们让 Terry Thomas 博士更多地控制文件结构并限制学生可以做什么。
[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 的所有者,并且拥有组是 professors。由于 assignments 目录是供学生上交分配的作业,所以让我们从 students 组中删除列出和修改 文件 的功能。
[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]#
学生可以将作业复制到 assignments 目录。但它们不能列出目录的内容、复制当前文件或修改 assignments 目录中的文件。因此,它只允许学生提交已完成的作业。 CentOS 文件系统将提供一个日期标记,指示何时提交作业。
作为 assignments 目录所有者-
[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 操作系统的操作和设计。
昵称: 邮箱:
Copyright © 2022 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4