您好,登錄后才能下訂單哦!
本篇文章給大家分享的是有關LINUX下的權限細分設置是什么,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。
業務部門提過來一個FTP配置需求,具體情況如下:
請提供一臺FTP服務器,需要創建的FTP目錄及賬號規則如下!
人員配置情況:
北京總部:5人(需創建2個賬號:bjzb讀權限 bjguanli讀寫執行權限)
北京大區:8人(需創建1個FTP賬號:bjdq)
上海大區:6人(需創建1個FTP賬號:shdq)
廣州大區:5人(需創建1個FTP賬號:gzdq)
FTP目錄及賬號權限創建設計:
/data/bj (北京大區)
賬號bjdq權限:寫權限、讀權限、執行權限
賬號shdq、gzdq權限:讀權限
賬號bjzb權限:讀權限
賬號bjguanli權限:讀權限、寫權限、執行權限
/data/sh (上海大區)
賬號shdq權限:寫權限、讀權限、執行權限
賬號bjdq、gzdq權限:讀權限
賬號bjzb權限:寫權限、讀權限
賬號bjguanli權限:讀權限、寫權限、執行權限
/data/gz (廣州大區)
賬號gzdq權限:寫權限、讀權限、執行權限
賬號bjdq、shdq權限:讀權限
賬號bjzb權限:寫權限、讀權限
賬號bjguanli權限:讀權限、寫權限、執行權限
大家看到這則需求時,基本上會感覺,權限實現起來有點困難。因為在linux下,對一個文件可以進行操作的對象被分為三類:file owner(文件的擁有者)、group(組,注意不一定是文件擁有者所在的組)、other(其他)。在每個類里,權限都是一致的,而在一個相同的類里實現不同的權限就不那么方便了,而上述提到的需求就是要在同一個類里實現不同的權限。那么我們就需要通過LINUX下的ACL來實現題中的需求。簡單地說acl就是可以設置特定用戶或用戶組對于一個文件及目錄的操作權限,需要掌握的命令也只有三個:getfacl,setfacl,chacl.
我們來具體說一下文章開頭提到的那個需求的實現過程
1、目錄和賬號的創建
默認情況下,在linux下建立用戶的時候,有個默認的家目錄,一般是在/home下,但是如果我們想在系統中建立多個用戶,而家目錄都不在/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
補充還有一個方法是修改/etc/default/useradd文件
# useradd defaults file
GROUP=100
HOME=/home (將默認的HOME改為你設定的目錄)
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes
這樣也可以在建用戶的時候,指定特定的用戶主目錄。
2、FTP的設置
FTP服務器地址:192.168.1.130
修改FTP配置文件
# vi /etc/vsftpd/vsftpd.conf
在里面添加如下語句
local_enable=YES //是否允許本地用戶登錄FTP服務器,默認是允許
write_enable=YES //是否允許用戶具有在FTP服務器文件中執行寫的權限,默認是允許
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
local_umask=007 #用戶的權限
chroot_list_enable=YES //如果希望用戶登錄后不能切換到自己目錄以外的其它目錄,需要設置該項來鎖定用戶目錄
chroot_list_file=/etc/vsftpd/chroot_list
userlist_enable=YES #設置userlist_enable=YES,那么只允許/etc/vsftpd/user_list中列出的用戶具有該功能
userlist_deny=NO
userlist_file=/etc/vsftpd/user_list
~
"/etc/vsftpd/vsftpd.conf" 147L, 5079C written
設置完重啟ftp服務
# service vsftpd restart
關閉 vsftpd:[確定]
為 vsftpd 啟動 vsftpd:[確定]
三、權限的設置
由于/data/bj的所有者是bjdq,/data/sh的所有者是shdq,/data/gz的所有者是gzdq,這樣自然就有了讀、寫、執行權限,我們只需設置組和其他的權限即可
為了限定bjdq、shdq、gzdq的用戶不能切換目錄,我們還需要把bjdq、shdq、gzdq這三個用戶寫入chroot_list文件。
[root@localhost vsftpd]# echo "bjdq" >>chroot_list
[root@localhost vsftpd]# echo "shdq" >>chroot_list
[root@localhost vsftpd]# echo "gzdq" >>chroot_list
權限設置如下:
#chmod 755 /data/bj
#chmod 755 /data/sh
#chmod 755 /data/gz
針對bjzb和bjguanli這兩個賬戶的權限設置如下
#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來查看這三個目錄的權限并通過客戶端登陸來驗證。
(注:setfacl –x g:ftpgroup file 刪除ftpgroup組對file文件的所有權限
setfacl -x u:bjguanli /data/bj 刪除bjguanli用戶對/data/bj目錄的權限保留讀權限
setfacl –x u:bjzb file 刪除bjzb用戶對file文件的所有權限)
#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
其他目錄權限設置類似
四、客戶端測試
[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
注意這個報錯,你需要考慮IPTABLES和SELINUX的限制了。
可以直接關閉IPTABLES和SELINUX,如果是不能關則需要做如下調整
在IPTABLE里開放FTP服務,允許21、20端口通行。
針對SELINUX的安全限制,可以使用這句
[root@localhost test]# setsebool ftpd_disable_trans 1 #關閉SELinux對ftp的保護
[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
經驗證,最后權限設置,符合業務部門的需求。
以上就是LINUX下的權限細分設置是什么,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。