📜  Linux管理员-文件/文件夹管理

📅  最后修改于: 2020-10-31 13:25:02             🧑  作者: 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” -用于符号链接

我们将专注于每个目录和文件的三个输出块-

  • drwxr-xr-x:根:根
  • -rw-r–r–:根:根
  • drwxr-xr-x:根:根

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

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管理员必须精通八进制符号权限,因为权限对于数据和整个操作系统的完整性很重要。如果权限不正确,最终结果将是敏感数据,整个操作系统将受到威胁。

涵盖了这些内容之后,让我们看一些用于修改权限和对象所有者/成员的命令-

  • chmod
  • wn
  • chgrp
  • 遮罩

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

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

chown:更改文件所有者和组

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用于组。

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是一个重要的命令,它在创建文件和目录权限时提供默认模式。

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必须在以下任一位置进行更改-

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

通常,CentOS中的默认umask可以。当我们遇到麻烦时,默认值为0022时,通常是属于不同组的不同部门需要在项目上进行协作。

这是系统管理员的角色,可以平衡CentOS操作系统的操作和设计。