Scp
將兩個帳戶放在組中,不授予組成員讀取權限
我有一個基於 Apache 的網站,並試圖允許使用者將文件上傳到一台機器上的投遞箱,然後將它們轉移到另一台機器上。所以我為兩個使用者組成了一個組:www-data 是 Apache 網路使用者和 OtagoHarbour,它有一個將文件從一台機器傳輸到另一台機器的密鑰。
因此確認了該組及其成員的存在。
OtagoHarbour@WebServer:/var/www$ egrep -i "www-OtagoHarbour" /etc/group www-OtagoHarbour:x:1002:OtagoHarbour,www-data
但是,這似乎並未將 OtagoHarbour 組權限授予 www-data 擁有的組。
OtagoHarbour@WebServer:/var/www$ sudo ls -ld dropbox drwx-wx-wx 2 www-data root 4096 2014-01-20 23:25 dropbox OtagoHarbour@WebServer:/var/www$ sudo chmod g+r dropbox OtagoHarbour@WebServer:/var/www$ sudo ls -ld dropbox drwxrwx-wx 2 www-data root 4096 2014-01-20 23:25 dropbox OtagoHarbour@WebServer:/var/www$ scp /var/www/dropbox/*.cel 192.168.1.6:/var/www/dropbox /var/www/dropbox/*.cel: No such file or directory OtagoHarbour@WebServer:/var/www$ sudo chmod o+r dropbox OtagoHarbour@WebServer:/var/www$ scp /var/www/dropbox/*.cel 192.168.1.6:/var/www/dropbox whatever1.cel 100% 11MB 11.3MB/s 00:01 whatever2.cel 100% 11MB 11.2MB/s 00:01 whatever3.cel 100% 11MB 11.2MB/s 00:01
因此,儘管 www-data 和 OtagoHarbour 在同一個組中,但 g+r 似乎並未授予 OtagoHarbour 對 www-data 擁有的組的讀取權限(但 o+r 確實如此)。
更新
OtagoHarbour@WebServer:/var/www$ sudo chgrp -R www-OtagoHarbour /var/www/dropbox OtagoHarbour@WebServer:/var/www$ sudo chmod o-r dropbox OtagoHarbour@WebServer:/var/www$ sudo chmod g+r dropbox OtagoHarbour@WebServer:/var/www$ scp /var/www/dropbox/*.cel 192.168.1.6:/var/www/dropbox /var/www/dropbox/*.cel: No such file or directory
更新 2
OtagoHarbour@WebServer:/var/www$ ld ld: no input files OtagoHarbour@WebServer:/var/www$ ls -l /var/www/dropbox/*.cel ls: cannot access /var/www/dropbox/*.cel: No such file or directory OtagoHarbour@WebServer:/var/www$ ls -l /var/www/dropbox ls: cannot open directory /var/www/dropbox: Permission denied OtagoHarbour@WebServer:/var/www$
使用者
OtagoHarbour
和www-data
屬於www-OtagoHarbour
組,但dropbox
目錄不與www-OtagoHarbour
組相關聯,而是與root
.執行命令
sudo chgrp -R www-OtagoHarbour /var/www/dropbox
應該解決問題。通過此更改,您無需保持目錄世界的可讀性。