本篇文章給大家分享的是有關(guān)LINUX下的權(quán)限細(xì)分設(shè)置是什么,小編覺得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。
從網(wǎng)站建設(shè)到定制行業(yè)解決方案,為提供成都網(wǎng)站制作、網(wǎng)站建設(shè)服務(wù)體系,各種行業(yè)企業(yè)客戶提供網(wǎng)站建設(shè)解決方案,助力業(yè)務(wù)快速發(fā)展。成都創(chuàng)新互聯(lián)公司將不斷加快創(chuàng)新步伐,提供優(yōu)質(zhì)的建站服務(wù)。
業(yè)務(wù)部門提過來一個(gè)FTP配置需求,具體情況如下:
請?zhí)峁┮慌_FTP服務(wù)器,需要?jiǎng)?chuàng)建的FTP目錄及賬號規(guī)則如下!
人員配置情況:
北京總部:5人(需創(chuàng)建2個(gè)賬號:bjzb讀權(quán)限 bjguanli讀寫執(zhí)行權(quán)限)
北京大區(qū):8人(需創(chuàng)建1個(gè)FTP賬號:bjdq)
上海大區(qū):6人(需創(chuàng)建1個(gè)FTP賬號:shdq)
廣州大區(qū):5人(需創(chuàng)建1個(gè)FTP賬號:gzdq)
FTP目錄及賬號權(quán)限創(chuàng)建設(shè)計(jì):
/data/bj (北京大區(qū))
賬號bjdq權(quán)限:寫權(quán)限、讀權(quán)限、執(zhí)行權(quán)限
賬號shdq、gzdq權(quán)限:讀權(quán)限
賬號bjzb權(quán)限:讀權(quán)限
賬號bjguanli權(quán)限:讀權(quán)限、寫權(quán)限、執(zhí)行權(quán)限
/data/sh (上海大區(qū))
賬號shdq權(quán)限:寫權(quán)限、讀權(quán)限、執(zhí)行權(quán)限
賬號bjdq、gzdq權(quán)限:讀權(quán)限
賬號bjzb權(quán)限:寫權(quán)限、讀權(quán)限
賬號bjguanli權(quán)限:讀權(quán)限、寫權(quán)限、執(zhí)行權(quán)限
/data/gz (廣州大區(qū))
賬號gzdq權(quán)限:寫權(quán)限、讀權(quán)限、執(zhí)行權(quán)限
賬號bjdq、shdq權(quán)限:讀權(quán)限
賬號bjzb權(quán)限:寫權(quán)限、讀權(quán)限
賬號bjguanli權(quán)限:讀權(quán)限、寫權(quán)限、執(zhí)行權(quán)限
大家看到這則需求時(shí),基本上會(huì)感覺,權(quán)限實(shí)現(xiàn)起來有點(diǎn)困難。因?yàn)樵趌inux下,對一個(gè)文件可以進(jìn)行操作的對象被分為三類:file owner(文件的擁有者)、group(組,注意不一定是文件擁有者所在的組)、other(其他)。在每個(gè)類里,權(quán)限都是一致的,而在一個(gè)相同的類里實(shí)現(xiàn)不同的權(quán)限就不那么方便了,而上述提到的需求就是要在同一個(gè)類里實(shí)現(xiàn)不同的權(quán)限。那么我們就需要通過LINUX下的ACL來實(shí)現(xiàn)題中的需求。簡單地說acl就是可以設(shè)置特定用戶或用戶組對于一個(gè)文件及目錄的操作權(quán)限,需要掌握的命令也只有三個(gè):getfacl,setfacl,chacl.
我們來具體說一下文章開頭提到的那個(gè)需求的實(shí)現(xiàn)過程
1、目錄和賬號的創(chuàng)建
默認(rèn)情況下,在linux下建立用戶的時(shí)候,有個(gè)默認(rèn)的家目錄,一般是在/home下,但是如果我們想在系統(tǒng)中建立多個(gè)用戶,而家目錄都不在/home 下的話,就需要用useradd -d 來指定家目錄
#groupadd ftpgroup
# useradd bjdq -d /data/bj -g ftpgroup
#passwd bjdq
# useradd shdq -d /data/sh -g ftpgroup
#passwd shdq
# useradd gzdq -d /data/gz -g ftpgroup
#passwd gzdq
#useradd bjzb
#passwd bjzb
#useradd bjguanli
#passwd bjguanli
補(bǔ)充還有一個(gè)方法是修改/etc/default/useradd文件
# useradd defaults file
GROUP=100
HOME=/home (將默認(rèn)的HOME改為你設(shè)定的目錄)
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes
這樣也可以在建用戶的時(shí)候,指定特定的用戶主目錄。
2、FTP的設(shè)置
FTP服務(wù)器地址:192.168.1.130
修改FTP配置文件
# vi /etc/vsftpd/vsftpd.conf
在里面添加如下語句
local_enable=YES //是否允許本地用戶登錄FTP服務(wù)器,默認(rèn)是允許
write_enable=YES //是否允許用戶具有在FTP服務(wù)器文件中執(zhí)行寫的權(quán)限,默認(rèn)是允許
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
local_umask=007 #用戶的權(quán)限
chroot_list_enable=YES //如果希望用戶登錄后不能切換到自己目錄以外的其它目錄,需要設(shè)置該項(xiàng)來鎖定用戶目錄
chroot_list_file=/etc/vsftpd/chroot_list
userlist_enable=YES #設(shè)置userlist_enable=YES,那么只允許/etc/vsftpd/user_list中列出的用戶具有該功能
userlist_deny=NO
userlist_file=/etc/vsftpd/user_list
~
"/etc/vsftpd/vsftpd.conf" 147L, 5079C written
設(shè)置完重啟ftp服務(wù)
# service vsftpd restart
關(guān)閉 vsftpd:[確定]
為 vsftpd 啟動(dòng) vsftpd:[確定]
三、權(quán)限的設(shè)置
由于/data/bj的所有者是bjdq,/data/sh的所有者是shdq,/data/gz的所有者是gzdq,這樣自然就有了讀、寫、執(zhí)行權(quán)限,我們只需設(shè)置組和其他的權(quán)限即可
為了限定bjdq、shdq、gzdq的用戶不能切換目錄,我們還需要把bjdq、shdq、gzdq這三個(gè)用戶寫入chroot_list文件。
[root@localhost vsftpd]# echo "bjdq" >>chroot_list
[root@localhost vsftpd]# echo "shdq" >>chroot_list
[root@localhost vsftpd]# echo "gzdq" >>chroot_list
權(quán)限設(shè)置如下:
#chmod 755 /data/bj
#chmod 755 /data/sh
#chmod 755 /data/gz
針對bjzb和bjguanli這兩個(gè)賬戶的權(quán)限設(shè)置如下
#setfacl -R -m u:bjzb:rx /data/bj
#setfacl -R -m u:bjguanli:rwx /data/bj
#setfacl -R -m u:bjzb:rx /data/sh
#setfacl -R -m u:bjguanli:rwx /data/sh
#setfacl -R -m u:bjzb:rx /data/gz
#setfacl -R -m u:bjguanli:rwx /data/gz
[root@localhost data]# ls -l
total 12
drwxr-xr-x+ 4 bjdq ftpgroup 4096 Jan 18 19:09 bj
drwxr-xr-x+ 4 shdq ftpgroup 4096 Jan 18 19:12 sh
drwxr-xr-x+ 4 gzdq ftpgroup 4096 Jan 18 19:22 gz
最后大家可以通過getfacl來查看這三個(gè)目錄的權(quán)限并通過客戶端登陸來驗(yàn)證。
(注:setfacl –x g:ftpgroup file 刪除ftpgroup組對file文件的所有權(quán)限
setfacl -x u:bjguanli /data/bj 刪除bjguanli用戶對/data/bj目錄的權(quán)限保留讀權(quán)限
setfacl –x u:bjzb file 刪除bjzb用戶對file文件的所有權(quán)限)
#getfacl --omit-header /data/bj
getfacl: Removing leading '/' from absolute path names
# file: data/bj
# owner: bjdq
# group: ftpgroup
user::rwx
user:bjguanli:rwx
group::r-x
mask::rwx
other::r-x
default:user::rwx
default:user:bjguanli:rwx
default:group::r-x
default:mask::rwx
default:other::r-x
其他目錄權(quán)限設(shè)置類似
四、客戶端測試
[root@localhost /]# ftp 192.168.1.130
Connected to localhost.localdomain.
220 (vsFTPd 2.0.5)
Name (localhost:root): bjdq
331 Please specify the password.
Password:
500 OOPS: cannot change directory:/data/bj
Login failed.
ftp> quit
注意這個(gè)報(bào)錯(cuò),你需要考慮IPTABLES和SELINUX的限制了。
可以直接關(guān)閉IPTABLES和SELINUX,如果是不能關(guān)則需要做如下調(diào)整
在IPTABLE里開放FTP服務(wù),允許21、20端口通行。
針對SELINUX的安全限制,可以使用這句
[root@localhost test]# setsebool ftpd_disable_trans 1 #關(guān)閉SELinux對ftp的保護(hù)
[root@localhost test]# service vsftpd restart
最后再試,一切正常。
[root@localhost test]#ftp 192.168.1.130
Connected to localhost.localdomain.
220 (vsFTPd 2.0.5)
Name (localhost:root): bjdq
331 Please specify the password.
Password:
Login successful.
ftp> pwd
"/"
ftp>bye
經(jīng)驗(yàn)證,最后權(quán)限設(shè)置,符合業(yè)務(wù)部門的需求。
以上就是LINUX下的權(quán)限細(xì)分設(shè)置是什么,小編相信有部分知識點(diǎn)可能是我們?nèi)粘9ぷ鲿?huì)見到或用到的。希望你能通過這篇文章學(xué)到更多知識。更多詳情敬請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。