LINUX下FTP用戶和apache用戶權(quán)限問(wèn)題的解析
發(fā)布時(shí)間:2012-10-15 14:43:56 作者:佚名
我要評(píng)論

本文帶你分析一下LINUX下FTP用戶和apache用戶權(quán)限問(wèn)題
原來(lái)完全沒(méi)有研究過(guò)LINUX系統(tǒng),由于論壇空間的需要,購(gòu)買(mǎi)的國(guó)外的VPS,裝的LINUX系統(tǒng)。剛得到后臺(tái)帳號(hào)時(shí)完全就暈菜了,什么都是空白的,沒(méi)有系統(tǒng),沒(méi)有HTTP服務(wù)器,就是一個(gè)全裸的“網(wǎng)絡(luò)硬盤(pán)”。還好有百度大叔在,讓我可以“水中撈月”一翻,不查不知道,原來(lái)這些國(guó)外VPS的使用資料也少得可憐。。。好不容易學(xué)會(huì)了SSH,并且費(fèi)了一番周折,終于裝上了kloxo面板。這下總算好了,有HTTP了,F(xiàn)TP也有了。。。傳好資料后居然發(fā)現(xiàn)權(quán)限的問(wèn)題很?chē)?yán)重,“用戶名”、“用戶組”還有什么“所有者”,要用chown命令來(lái)改“所有者”,差點(diǎn)搞暈了。。總算讓論壇運(yùn)行起來(lái)了,沒(méi)有過(guò)多久,問(wèn)題又來(lái)了。不知道怎么回事,F(xiàn)TP的文件顯示不了了,在kloxo面板修改,死活顯示不了,有時(shí)還登錄不了。。。百度大叔那邊也沒(méi)有查到什么可用資料,估計(jì)就我一個(gè)碰到這種問(wèn)題吧!關(guān)于FTP權(quán)限問(wèn)題,我仔細(xì)的想了很久,估計(jì)就是出現(xiàn)在FTP用戶的權(quán)限以及目錄的所有者權(quán)限出現(xiàn)問(wèn)題了。kloxo面板里的FTP用戶管理功能太簡(jiǎn)單了,而且怎么改都沒(méi)有用,我只好查相關(guān)的命令了。黃天不負(fù)有心人啦,終于讓我找到了命令方式的管理FTP用戶:sudo useradd -g apache -d /dev/null -s /bin/false ftpadmin先創(chuàng)建一個(gè)ftpadmin的用戶,隸屬于apache用戶組結(jié)果出現(xiàn)下面的內(nèi)容:Creating mailbox file: File exists
useradd: warning: the home directory already exists.Not copying any file from skel directory into it.
估計(jì)是以前有創(chuàng)建過(guò)同樣的文件吧,不管它,再來(lái)下面的代碼:sudo pure-pw useradd admin -u ftpadmin -d /home/admin/XXX.com
這是在pure-ftpd程序中建立一個(gè)FTP用戶admin 并綁定到剛才建立的系統(tǒng)用戶ftpadmin,這個(gè)FTP用戶的主目錄是/home/admin/XXX.com執(zhí)行每條命令之后pure-pw會(huì)要求輸入賬號(hào)的密碼。連續(xù)輸入2遍密碼后FTP帳號(hào)就生成了。接著,每次修改用戶設(shè)置后都要更新一下虛擬用戶數(shù)據(jù)庫(kù),不需要重新啟動(dòng)服務(wù),運(yùn)行下行命令:
sudo pure-pw mkdb
最后,再將網(wǎng)站根目錄的所有者改成ftpadmin,不然FTP上傳不了文件。chown -R ftpadmin /home/admin/XXX.com
------------
當(dāng)我們使用PHP程序的時(shí)候,在安裝好以后,如果你想刪除整個(gè)目錄,你會(huì)發(fā)現(xiàn)apache用戶生成了一些文件,ftp的用戶不能刪除.
其實(shí)這是有辦法解決的。
方法1.用戶組控制方法
先給所有的虛擬主機(jī)主機(jī)中的虛擬用戶(ftp用戶)加入到apache這個(gè)組.然后設(shè)置umask為002.這樣用戶和組都有讀寫(xiě)執(zhí)行權(quán)限。這個(gè)是比較容易的方法.但不安全。不同的用戶可以刪除對(duì)方的文件,因?yàn)槭峭粋€(gè)組,組有讀寫(xiě)執(zhí)行的權(quán)限.
方法2.使用linux高級(jí)的權(quán)限管理acl。
對(duì)一個(gè)目錄設(shè)置二重權(quán)限,除了用戶本身的用戶組,在加入apache對(duì)他要讀寫(xiě)執(zhí)行的權(quán)限.
這樣用戶就能刪除apache生成的文件.但為別人的組,別的虛擬用戶他沒(méi)法刪除.
下面我們就來(lái)看看第二種的控制方法
linux系統(tǒng)里面,并不是只能為所有者,同組用戶和其他用戶這三類(lèi)人分配一個(gè)文件(目錄)的權(quán)限,你還可以指定其他的用戶或者組,不過(guò)有個(gè)前提,掛載分區(qū)的時(shí)候加上acl選項(xiàng),比如:
mount /dev/hda1 /home -o acl。
然后你可以使用
setfacl -m u:ftp:rwx /home/ftp/www
命令來(lái)給ftp用戶分配/home/ftp/www目錄的所有權(quán)限
如果你要/home/ftp/www/下面新建的目錄和文件也有同樣的權(quán)限
setfacl -d -m u:ftp:rwx /home/ftp/www
設(shè)置默認(rèn)的權(quán)限,這個(gè)命令還可以實(shí)現(xiàn)多個(gè)用戶的不同權(quán)限的控制,比如
setfacl -m u:ftp:rwx /home/www;
setfacl -m u:tmp:r-x /home/www;
ftp用戶擁有所有權(quán)限,tmp用戶擁有只讀權(quán)限。
你還可以設(shè)置mask的值:
setfacl -m m::rwx /home/www;
這樣,新建的你就可以讓虛擬主機(jī)的用戶和apache用戶都有權(quán)限操作文件和目錄了,比如apache用戶的用戶名是apache,虛擬主機(jī)的用戶名是vmuser,目錄是/home/vmuser/www,可以使用以下的命令:
setfacl -m u:vmuser:rwx /home/vmuser/www;
setfacl -m u:apache:rwx /home/vmuser/www;
setfacl -d -m u:vmuser:rwx /home/vmuser/www;
setfacl -d -m u:apache:rwx /home/vmuser/www;
setfacl -m m::rwx /home/vmuser/www;
setfacl -d -m m::rwx /home/vmuser/www;
這樣,在安裝PHP程序的時(shí)候,就不會(huì)提示你apache的用戶沒(méi)有權(quán)限寫(xiě)文件,而你想刪除一個(gè)目錄的時(shí)候,也不會(huì)因?yàn)橄旅嬗衋pache用戶生成的文件而不能刪除了。當(dāng)然這個(gè)辦法有點(diǎn)局限就是基本上只有ext2和ext3分區(qū)格式能用,其他的,比如xfs,jfs等不能直接使用,修改后才能使用。
useradd: warning: the home directory already exists.Not copying any file from skel directory into it.
估計(jì)是以前有創(chuàng)建過(guò)同樣的文件吧,不管它,再來(lái)下面的代碼:sudo pure-pw useradd admin -u ftpadmin -d /home/admin/XXX.com
這是在pure-ftpd程序中建立一個(gè)FTP用戶admin 并綁定到剛才建立的系統(tǒng)用戶ftpadmin,這個(gè)FTP用戶的主目錄是/home/admin/XXX.com執(zhí)行每條命令之后pure-pw會(huì)要求輸入賬號(hào)的密碼。連續(xù)輸入2遍密碼后FTP帳號(hào)就生成了。接著,每次修改用戶設(shè)置后都要更新一下虛擬用戶數(shù)據(jù)庫(kù),不需要重新啟動(dòng)服務(wù),運(yùn)行下行命令:
sudo pure-pw mkdb
最后,再將網(wǎng)站根目錄的所有者改成ftpadmin,不然FTP上傳不了文件。chown -R ftpadmin /home/admin/XXX.com
------------
當(dāng)我們使用PHP程序的時(shí)候,在安裝好以后,如果你想刪除整個(gè)目錄,你會(huì)發(fā)現(xiàn)apache用戶生成了一些文件,ftp的用戶不能刪除.
其實(shí)這是有辦法解決的。
方法1.用戶組控制方法
先給所有的虛擬主機(jī)主機(jī)中的虛擬用戶(ftp用戶)加入到apache這個(gè)組.然后設(shè)置umask為002.這樣用戶和組都有讀寫(xiě)執(zhí)行權(quán)限。這個(gè)是比較容易的方法.但不安全。不同的用戶可以刪除對(duì)方的文件,因?yàn)槭峭粋€(gè)組,組有讀寫(xiě)執(zhí)行的權(quán)限.
方法2.使用linux高級(jí)的權(quán)限管理acl。
對(duì)一個(gè)目錄設(shè)置二重權(quán)限,除了用戶本身的用戶組,在加入apache對(duì)他要讀寫(xiě)執(zhí)行的權(quán)限.
這樣用戶就能刪除apache生成的文件.但為別人的組,別的虛擬用戶他沒(méi)法刪除.
下面我們就來(lái)看看第二種的控制方法
linux系統(tǒng)里面,并不是只能為所有者,同組用戶和其他用戶這三類(lèi)人分配一個(gè)文件(目錄)的權(quán)限,你還可以指定其他的用戶或者組,不過(guò)有個(gè)前提,掛載分區(qū)的時(shí)候加上acl選項(xiàng),比如:
mount /dev/hda1 /home -o acl。
然后你可以使用
setfacl -m u:ftp:rwx /home/ftp/www
命令來(lái)給ftp用戶分配/home/ftp/www目錄的所有權(quán)限
如果你要/home/ftp/www/下面新建的目錄和文件也有同樣的權(quán)限
setfacl -d -m u:ftp:rwx /home/ftp/www
設(shè)置默認(rèn)的權(quán)限,這個(gè)命令還可以實(shí)現(xiàn)多個(gè)用戶的不同權(quán)限的控制,比如
setfacl -m u:ftp:rwx /home/www;
setfacl -m u:tmp:r-x /home/www;
ftp用戶擁有所有權(quán)限,tmp用戶擁有只讀權(quán)限。
你還可以設(shè)置mask的值:
setfacl -m m::rwx /home/www;
這樣,新建的你就可以讓虛擬主機(jī)的用戶和apache用戶都有權(quán)限操作文件和目錄了,比如apache用戶的用戶名是apache,虛擬主機(jī)的用戶名是vmuser,目錄是/home/vmuser/www,可以使用以下的命令:
setfacl -m u:vmuser:rwx /home/vmuser/www;
setfacl -m u:apache:rwx /home/vmuser/www;
setfacl -d -m u:vmuser:rwx /home/vmuser/www;
setfacl -d -m u:apache:rwx /home/vmuser/www;
setfacl -m m::rwx /home/vmuser/www;
setfacl -d -m m::rwx /home/vmuser/www;
這樣,在安裝PHP程序的時(shí)候,就不會(huì)提示你apache的用戶沒(méi)有權(quán)限寫(xiě)文件,而你想刪除一個(gè)目錄的時(shí)候,也不會(huì)因?yàn)橄旅嬗衋pache用戶生成的文件而不能刪除了。當(dāng)然這個(gè)辦法有點(diǎn)局限就是基本上只有ext2和ext3分區(qū)格式能用,其他的,比如xfs,jfs等不能直接使用,修改后才能使用。
相關(guān)文章
Fedora Linux 42 穩(wěn)定版發(fā)布: 帶來(lái)大量新功能和軟件更新
Fedora 42昨日發(fā)布,這是 Red Hat 贊助開(kāi)發(fā)的杰出前沿 Linux 發(fā)行版的最新版,包含大量新功能和軟件更新,使其成為 2025 年上半年發(fā)布的一款出色的 Linux 操作系統(tǒng)之一,內(nèi)2025-04-16如何在Linux查看硬盤(pán)信息? 查看Linux硬盤(pán)大小類(lèi)型和硬件信息的5種方法
使用Linux系統(tǒng)的過(guò)程中,查看和了解硬盤(pán)信息是非常重要的工作,尤其是對(duì)于系統(tǒng)管理員而言,那么在Linux系統(tǒng)中如何查看硬盤(pán)信息?以下是具體內(nèi)容介紹2025-03-12如何在 Linux 中查看 CPU 詳細(xì)信息? 3招輕松查看CPU型號(hào)、核心數(shù)和溫度
在日常運(yùn)維工作中,獲取 CPU 信息是系統(tǒng)運(yùn)維管理員常見(jiàn)的工作內(nèi)容,無(wú)論是為了性能調(diào)優(yōu)、硬件升級(jí)還是僅僅滿足好奇心2025-03-11什么是 Arch Linux? 獨(dú)樹(shù)一幟的Arch Linux發(fā)行版分析
Arch Linux是為簡(jiǎn)化,優(yōu)化,現(xiàn)代化,實(shí)用主義,用戶中心和多功能性而創(chuàng)建Linux發(fā)行版,究竟是什么讓 Arch 與眾不同?下面我們就來(lái)簡(jiǎn)要解讀2025-02-19如何在Linux環(huán)境下制作 Win11裝機(jī)U盤(pán)?
一直用的linux辦公,想要將筆記本電腦從 Linux 系統(tǒng)切換回 Windows 11,我們可以制作一個(gè)win11裝機(jī)u盤(pán),詳細(xì)如下2025-02-17Rsnapshot怎么用? 基于Rsync的強(qiáng)大Linux備份工具使用指南
Rsnapshot 不僅可以備份本地文件,還能通過(guò) SSH 備份遠(yuǎn)程文件,接下來(lái)詳細(xì)介紹如何安裝、配置和使用 Rsnapshot,包括創(chuàng)建每小時(shí)、每天、每周和每月的本地備份,以及如何進(jìn)2025-02-06Linux Kernel 6.13發(fā)布:附更新內(nèi)容及新特性解讀
Linux 內(nèi)核 6.13 正式發(fā)布,新版本引入了惰性搶占支持,簡(jiǎn)化內(nèi)核搶占邏輯,通過(guò)減少與調(diào)度器相關(guān)的調(diào)用次數(shù),讓內(nèi)核在運(yùn)行時(shí)表現(xiàn)更優(yōu),從而提高效率2025-01-23五大特性引領(lǐng)創(chuàng)新! 深度操作系統(tǒng) deepin 25 Preview預(yù)覽版發(fā)布
今日,深度操作系統(tǒng)正式推出deepin 25 Preview版本,該版本集成了五大核心特性:磐石系統(tǒng)、全新DDE、Treeland窗口合成器、AI For OS以及Distrobox子系統(tǒng)2025-01-18Linux Mint Xia 22.1重磅發(fā)布: 重要更新一覽
Beta 版 Linux Mint“Xia” 22.1 發(fā)布,新版本基于 Ubuntu 24.04,內(nèi)核版本為 Linux 6.8,這次更新帶來(lái)了諸多優(yōu)化和改進(jìn),進(jìn)一步鞏固了 Mint 在 Linux 桌面操作系統(tǒng)領(lǐng)域的2025-01-16LinuxMint怎么安裝? Linux Mint22下載安裝圖文教程
Linux Mint22發(fā)布以后,有很多新功能,很多朋友想要下載并安裝,該怎么操作呢?下面我們就來(lái)看看詳細(xì)安裝指南2025-01-16