Cod*_*Med 5 users permissions chmod files
我CentOS 7以root. 我创建了一个文件夹/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权限在目录中更常见。
虽然 Anthon 的答案在技术上是正确的,但我写这篇文章是为了解释八进制权限的来源以及如何计算它们。八进制权限是 *nix 世界中最重要的概念之一。
自从Unix 在 1969 年 -1974 年左右在废弃的 DEC PDP-7上诞生(参见照片和历史)以及Linus Torvalds在 1994 年左右创建 Linux 以来,作为类似 Unix 的克隆,文件权限始终存在于粒度级别。
细化文件权限意味着,如果需要,用户可以从文件级别开始授予权限,然后逐步向上到达目录,然后到达目录的父目录,一直到根目录。
另一方面,Windows 在Windows 2000 发布之前没有细粒度的权限,即使现在,如果不使用 GUI 窗口或添加Active Directory Server 来实现 * 的行为,Windows 权限也很难管理。尼克斯系统。
所有 *nix 文件权限都适用于 2 个概念:
现在我们看看 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 - 八进制模式