📅  最后修改于: 2020-10-31 13:19:13             🧑  作者: Mango
为了在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” -用于符号链接
我们将专注于每个目录和文件的三个输出块-
现在让我们分解一下,以更好地理解这些行-
d | Means the object type is a directory |
rwx | Indicates directory permissions applied to the owner |
r-x | Indicates directory permissions applied to the group |
r-x | Indicates directory permissions applied to the world |
root | The first instance, indicates the owner of the directory |
root | The second instance, indicates the group to which group permissions are applied |
了解所有者,团队和世界之间的区别很重要。不了解这一点会对托管Internet服务的服务器产生重大影响。
在给出真实示例之前,让我们首先了解应用于目录和文件的权限。
请查看下表,然后继续说明。
Octal | Symbolic | Perm. | Directory |
---|---|---|---|
1 | x | Execute | Enter the directory and access files |
2 | w | Write | Delete or modify the files in a directory |
4 | r | Read | List the files within the directory |
注–当应可访问目录中的文件以进行读取时,通常会应用读取和执行权限。否则,用户将难以处理文件。禁用写操作将确保文件不能被重命名,删除,复制或修改权限。
应用权限时,有两个概念需要理解-
从本质上讲,每种引用和分配文件权限的方式都是相同的,但方式不同。有关快速指南,请研究并参考下表-
Read | Write | Execute | |
---|---|---|---|
Octal | 4 | 2 | 1 |
Symbolic | r | w | x |
使用八进制方法分配权限时,请使用3个字节的数字,例如:760。数字760转换为:所有者:rwx;组:rw;其他(或世界)没有权限。
另一种情况:733将转换为:所有者:rwx;组:wx;其他:wx。
使用八进制方法的权限有一个缺点。现有权限集无法修改。只能重新分配对象的整个权限集。
现在您可能会想,总是重新分配权限有什么问题?想象一下大型目录结构,例如生产Web服务器上的/ var / www / 。我们要递归地删除w或在Other的所有目录上写位。因此,强制仅在安全措施需要时才主动添加它。如果我们重新分配整个权限集,则会取消分配给每个子目录的所有其他自定义权限。
因此,这将对系统的管理员和用户造成问题。在某个时候,一个人(或多个人)将需要为每个目录和对象重新分配整个权限集,从而重新分配所有被清除的自定义权限。
在这种情况下,我们希望使用Symbolic方法来修改权限-
chmod -R o-w /var/www/
上面的命令不会“覆盖权限”,而是会修改当前权限集。因此习惯使用最佳实践
CentOS管理员必须精通八进制和符号权限,因为权限对于数据和整个操作系统的完整性很重要。如果权限不正确,最终结果将是敏感数据,整个操作系统将受到威胁。
涵盖了这些内容之后,让我们看一些用于修改权限和对象所有者/成员的命令-
Command | Action |
---|---|
-c | Like verbose, but will only report the changes made |
-v | Verbose, outputsthe diagnostics for every request made |
-R | Recursively applies the operation on files and directories |
chmod将允许我们使用八进制或符号权限集更改目录和文件的权限。我们将使用它来修改分配并上传目录。
Command | Action |
---|---|
-c | Like verbose, but will only report the changes made |
-v | Verbose, outputsthe diagnostics for every request made |
-R | Recursively applies the operation on files and directories |
chown可以修改拥有用户和对象组的所有权。但是,除非需要同时修改两者,否则通常将chgrp用于组。
Command | Action |
---|---|
-c | Like verbose, but will only report the changes |
-v | Verbose, outputs the diagnostics for every request made |
-R | Recursively, applies the operations on file and directories |
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 ~]#
作为管理员,我们永远不想将我们的根凭证提供给任何人。但是同时,我们需要让用户有能力完成自己的工作。因此,让我们让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 。由于作业目录是让学生上交作业的目录,因此让我们取消列出和修改“学生”组中文件的功能。
[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权限使用一元否定逻辑。
Permission | Operation |
---|---|
0 | Read, write, execute |
1 | Read and write |
2 | Read and execute |
3 | Read only |
4 | Read and execute |
5 | Write only |
6 | Execute only |
7 | No permissions |
[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必须在以下任一位置进行更改-
[root@centosLocal centos]# su adama
[adama@centosLocal centos]$ umask
0022
[adama@centosLocal centos]$
通常,CentOS中的默认umask可以。当我们遇到麻烦时,默认值为0022时,通常是属于不同组的不同部门需要在项目上进行协作。
这是系统管理员的角色,可以平衡CentOS操作系统的操作和设计。