我以 登录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
来获取组)。someusername
id 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 个概念:
- User 类 - 又名 UGO (U爵士,G团,氧其他)
- 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