一堆關於 Web 伺服器的權限問題(Cherokee)
我是 Linux 管理新手,我正在配置 Cherokee Web 伺服器。
我正在使用 Archlinux,所以我有一個擁有 /srv/http 的 http 使用者。另一方面,我在 http 組中有一個名為“jesus”的使用者。
Cherokee is working with user and group http (http:http)
所以我對 /srv/http 做了一些修改。我向組添加了寫入權限,並更改了所有者和組,例如:
drwxrwxr-x 3 jesus http 4096 Oct 25 14:00 http
這就像是:
所以現在python可以在那裡寫他的.pyc文件(我認為cherokee告訴python創建它,因為cherokee能夠在那裡寫)。
我的問題是:這個權限的東西是否正確?有人告訴我,該組不應該有寫權限,如果我有 http 文件夾(和我的網站)會更好,例如:
drwxr-xr-x 3 http http 4096 Oct 25 14:00 http
所以 cherokee 將能夠在裡面寫入,因為 http 擁有該文件夾。
嗯,我很困惑。
那麼,我的 http 文件夾和其中的所有內容應該擁有哪些權限,以及應該擁有哪些使用者和組?
我只需要我的個人網站在沒有重大安全問題的情況下執行:P
謝謝!
PS:也許這有關係。當python創建他的.pyc文件時,它們是-rw-r–r–。這也正確嗎?
另一方面,我在 http 組中有一個名為“jesus”的使用者。
我用於訪問系統 (ssh) 的使用者也正在執行 ts3。我想既然網路是我的,那麼使用者就是那個。
不應將具有 shell 訪問權限的系統使用者添加到
http
組中。要在文件根目錄中編寫一些測試文件,您可以http
使用以下命令切換到使用者:$ sudo su - http -s /bin/bash
出於 FTP 的目的,您最好創建一個沒有 shell 訪問權限的新使用者:
$ sudo useradd -d /home/ftp/ftpu1 -s /sbin/nologin ftpu1 $ sudo usermod -a -G nobody ftpu1 $ sudo mount --bind /srv/http/web1 /home/ftp/ftpu1
或使用虛擬使用者。
文件根目錄的正確權限和所有權應該是:
drwxrwsr-x 8 http nobody 4096 Oct 17 15:36 /srv/http/
注意組執行位位置的s。這意味著該文件夾設置了SGID,新創建的文件/文件夾也具有相同的組所有權。
不要忘記將
umask
Apache 和 FTP 伺服器設置為 002 以使創建的文件/文件夾http
可以被覆蓋,nobody
反之亦然。