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

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

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

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

答案1

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

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

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

chgrp someusername /somefolder

(假设在创建someusername用户时创建了一个组,就像现在经常发生的情况一样。您可以通过键入someusername来获取组)。someusernameid someusername

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

chown someusername /somefolder

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

答案2

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

为什么这个概念很重要

自从Unix 的诞生大约 1969 年 -1974 年在一个废弃的 DEC PDP-7(看照片和历史) 和莱纳斯·托瓦尔兹Linux 大约在 1994 年创建,作为类似 Unix 的克隆,文件权限始终存在于细粒度级别。

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

另一方面,Windows 没有Windows 2000 发布之前的细化权限,即使现在,如果不使用 GUI 窗口或附加组件,Windows 权限也很难管理活动目录服务器实现了*nix系统的行为。


八进制权限如何工作

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

  1. User 类 - 又名 UGO (U爵士,G团,其他)
  2. Mode 类 - 又名 RWX (头,仪式eX执行)

正如贾里德·希森 (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 - 八进制模式

相关内容