在 CentOS 7 中为用户分配文件夹的读/写权限

Cod*_*Med 5 users permissions chmod files

CentOS 7root. 我创建了一个文件夹/somefolder。我希望someusername能够通过scp远程计算机写入该文件夹。我应该运行什么命令someusername才能输入scp /some/directory/in/remotepc someusername@centos7server:/somefolder/并成功传输文件?

我可以猜到类似的东西chmod -R u+rw /somefolder,但这只是一个猜测。我将如何指定哪个用户?

Ant*_*hon 10

为了让用户someusername能够在最初由 root 制作的文件夹中写入内容,您需要更改rwx权限和/或所有者。团体。如果您限制权限,则someusername需要是所有者或组成员。

如果这样做chmod 777 /somefolder,每个人都可以读写,包括someusername.

如果您这样做chmod 770 /somefolder,则someusername必须是拥有该组的成员,/somefolder并且您还必须执行以下操作:

chgrp someusername /somefolder
Run Code Online (Sandbox Code Playgroud)

(假设someusername在创建用户someusername时创建了一个组,现在通常是这种情况。您可以someusername通过键入来获取组id someusername)。

如果您这样做chmod 700 /somefolder,则someusername必须是其所有者,/somefolder并且您还必须执行以下操作:

chown someusername /somefolder
Run Code Online (Sandbox Code Playgroud)

对于目录,您需要设置执行位才能访问该目录中的文件和目录。因此644很少适用于目录,700, 755,750权限在目录中更常见。


eyo*_*100 3

虽然 Anthon 的答案在技术上是正确的,但我写这篇文章是为了解释八进制权限的来源以及如何计算它们。八进制权限是 *nix 世界中最重要的概念之一。

为什么这个概念很重要

自从Unix 在 1969 年 -1974 年左右在废弃的 DEC PDP-7上诞生(参见照片和历史)以及Linus Torvalds在 1994 年左右创建 Linux 以来,作为类似 Unix 的克隆,文件权限始终存在于粒度级别。

细化文件权限意味着,如果需要,用户可以从文件级别开始授予权限,然后逐步向上到达目录,然后到达目录的父目录,一直到根目录。

另一方面,Windows 在Windows 2000 发布之前没有细粒度的权限,即使现在,如果不使用 GUI 窗口或添加Active Directory Server 来实现 * 的行为,Windows 权限也很难管理。尼克斯系统。


八进制权限如何工作

所有 *nix 文件权限都适用于 2 个概念:

  1. User 类 - 又名 UGO
  2. Mode 类 - 又名 RWX

正如 Jared Heeschen 在他的文章中所说:

现在我们看看 chmod 的另一种使用方式 - 与数字一起使用。这是更常用的格式,但也是最不用户友好的格式。

由于计算机以二进制方式工作,因此文件权限也以二进制方式工作。如果我们将权限字符串视为:

乌戈乌戈乌戈乌戈
 ------------------------
 111 110 101 100

当转换为基数 10 时,我们得到:

乌戈乌戈乌戈乌戈
 ------------------------
 111 110 101 100
  7 6 5 4

谢谢贾里德的数学


最后一步

将二进制表示形式转换为十进制数字后,我们现在可以组合用户类所有三个部分的权限:

ls -al:

乌戈
------------  
-rwxrwxrwx 所有者组文件计数日期文件名

模式:0777

乌戈
------------   
-rw-r--r-- 所有者组 文件计数 日期 文件名

模式:0644

作为快捷方式,我们可以使用这个方便的权限计算器和解码器。一旦理解了这些八进制数,用户就可以使用该chmod命令并使用八进制序列来快速更改模式。与往常一样,要了解更多信息,请输入man chmod


参考

Linux 文件权限如何工作
使用 chmod - 八进制模式