我正在使用 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 ( )。我不知道編寫此腳本的最簡單方法,但我確信這是可能的。