我正在使用 Ubuntu,并且此文件夹中有一个 jar 文件/export/home/david
machineB
我以用户身份登录david
。
其他一些用户也登录到同一台计算机。我希望其他用户从我的位置复制上述 jar 文件。
但不知何故,他们无法做到这一点,因为他们的许可被拒绝。有什么方法可以在该 jar 文件或我的文件夹上添加一些权限,以便任何人都可以从该文件夹复制文件吗?
更新:-
下面是我得到的结果 -
david@machineB:~$ groups david
david : uucp
otheruser@machineB:~$ groups otheruser
otheruser : app
david@machineB:~$ ls -l foo.jar
-rw-r--r-- 1 david uucp 6543346 2014-03-07 18:27 foo.jar
david@machineB:~$ ls -ld $(echo "/home/david/foo.jar" | sed -r ':a; s#(.*)/[^/]*$#\1#;p;ta')
drwxr-xr-x 22 root root 4096 2014-05-04 08:04 /home
drwx------ 4 david uucp 4096 2014-03-07 18:36 /home/david
答案1
好吧,由于某种奇怪的原因,您的$HOME
目录只能由您访问。这不是我熟悉的任何系统上的默认设置,您或您的系统管理员可能已经这样设置了。
无论如何,您所需要做的就是授予每个人对您的$HOME
.这是大多数多用户系统上允许人们共享工作的规范。只需运行这个命令:
chmod a+rx ~/
这会将您的家庭权限设置为rwxr-xr-x
并允许任何人从您的$HOME
.
答案2
为了授予某人对您的文件的读取权限,他们需要对该文件具有读取权限,并对指向该文件的所有目录具有执行权限。例如,要允许Alice读取/home/david/for_alice/foo.jar
,您需要确保Alice对 和 具有读取权限和foo.jar
执行权限/home/david
。/home/david/for_alice
需要目录的执行权限才能通过名称访问该目录中的文件;需要对目录的读取权限才能列出目录中的文件名称。目录的读取权限并不是严格需要的,但它更方便,特别是当 Alice 要使用 GUI 浏览文件时。
目前,您的主目录具有权限rwx------
,即只有您可以访问其中的文件。
如果文件位于本地并且 ACL 工具可用,您可以向 Alice 授予访问权限。以下命令向 Alice 授予对for_alice
下面所有文件的读取权限,但不允许她列出您的主目录中的文件(如果她猜出文件名,她仍然可以访问您的主目录中的文件):
setfacl -m user:alice:x ~
setfacl -Rd -m user:alice:rX ~/for_alice
setfacl -R -m user:alice:rX ~/for_alice
如果无法使用 ACL,则必须允许组范围或系统范围的访问。
chmod +x ~
chmod -R a+rX ~/public
答案3
chmod o+r /path/to/file
将允许您希望您的朋友能够复制的文件的世界读取权限。
chmod -R o+r /path/to/directory; find /path/to/directory -type d -exec chmod o+x {} \+
允许其他用户读取/path/to/directory
.正如 Patrick 指出的,您还需要chmod o+rx
在所有父目录上添加 world read 和execute ( )。我不知道编写此脚本的最简单方法,但我确信这是可能的。