陳 斌
(鐵嶺師范高等??茖W(xué)校 理學(xué)院,遼寧 鐵嶺 112000)
隨著國家教育信息化進(jìn)程的不斷推進(jìn)和開源軟件在IT領(lǐng)域的不斷應(yīng)用,Linux 以不同的形式應(yīng)用在不同行業(yè)和領(lǐng)域里,它正在成為信息社會(huì)的基礎(chǔ)設(shè)施[1],這使其成為構(gòu)建信息社會(huì)的重要技術(shù).計(jì)算機(jī)系統(tǒng)文件資源共享是信息交流與溝通的必要手段,本文中主要探討Linux系統(tǒng)如何實(shí)現(xiàn)多用戶、多任務(wù)環(huán)境下文件資源共享.
Linux是一個(gè)多用戶、多任務(wù)的網(wǎng)絡(luò)操作系統(tǒng),是網(wǎng)絡(luò)資源的提供者,也是管理者.無論是硬件系統(tǒng)資源,還是軟件系統(tǒng)資源,在Linux系統(tǒng)中都被統(tǒng)一成文件資源,由目錄來組織存儲(chǔ).
Linux系統(tǒng)資源通過節(jié)點(diǎn)[2]、文件種類和權(quán)限、硬鏈接個(gè)數(shù)、屬主、所歸屬的組、文件或目錄的大小、最后訪問或修改時(shí)間、文件名或目錄名屬性來描述.用戶與資源通過屬主(擁有資源的用戶名)指明歸屬,屬主、用戶組、其他用戶(屬主與用戶組成員之外的用戶)對資源的訪問程度通過權(quán)限來標(biāo)明.Linux系統(tǒng)資源訪問方法通過服務(wù)(本機(jī)或遠(yuǎn)程登錄服務(wù)、網(wǎng)絡(luò)服務(wù))的方式提供;服務(wù)的安全性通過用戶與組的屬性設(shè)置、文件與目錄屬性設(shè)置、防火墻設(shè)置、SeLinux的安全配置實(shí)現(xiàn).
用戶是計(jì)算機(jī)系統(tǒng)資源的使用者,用戶組是具有共同資源使用需求的用戶的集合.通過用戶組帳號(hào)簡化了對資源使用權(quán)限的分配管理,將資源使用權(quán)限分配給用戶組,即分配給組中每一個(gè)成員.資源使用方式,通過本機(jī)(本地)登錄、遠(yuǎn)程(非本機(jī))登錄到Linux系統(tǒng)中,以命令行、X系統(tǒng)(圖形界面)兩種方式使用.在實(shí)際Linux系統(tǒng)的運(yùn)維與管理中使用最多的是“遠(yuǎn)程字符界面”形式登錄操作.以管理員root身份登錄,可以進(jìn)行系統(tǒng)的運(yùn)維管理,它是系統(tǒng)中權(quán)限級(jí)別最高的用戶,可以在Linux系統(tǒng)中進(jìn)行任何維護(hù)操作.而普通用戶則沒有這樣的權(quán)限級(jí)別,只能擁有有限的訪問操作權(quán)力,主要是對自己的私有空間(家目錄)有完全控制的權(quán)限.
使用計(jì)算機(jī)資源的人必須在計(jì)算機(jī)系統(tǒng)中被標(biāo)識(shí).Linux使用一個(gè)32bit的無符號(hào)整數(shù)作為其標(biāo)識(shí),即UID(用戶標(biāo)識(shí)).用戶除了有UID屬性外,還有用戶名(登錄名)、用戶口令(密碼)、所屬組標(biāo)識(shí)GID、用戶名全稱、家目錄、用戶所用SHELL類型,共7個(gè)屬性.還有用于描述用戶口令狀態(tài)的7個(gè)屬性,分別是:加密后的密碼,最近一次密碼修改日期,密碼不可被變更的天數(shù),密碼需要重新變更的天數(shù),密碼過期預(yù)警天數(shù),密碼過期的寬恕天數(shù)和帳號(hào)失效日期.
構(gòu)建用戶在計(jì)算機(jī)系統(tǒng)中的標(biāo)識(shí)是多用戶與多任務(wù)管理的需求,Linux系統(tǒng)通過UID與GID區(qū)分不同用戶、用戶組所運(yùn)行的程序(進(jìn)程或任務(wù))資源與文檔資源,以此進(jìn)行管理.Linux中的用戶分為:普通用戶UID≥500,管理員UID=0,系統(tǒng)用戶UID=1~499;用戶組分為:主要組,附加組.一個(gè)用戶屬于1個(gè)主組,屬于1個(gè)或多個(gè)附加組.不能通過主組分配共享資源.Linux中的文件與目錄資源都有所屬的所有者、所屬的組、其他用戶標(biāo)識(shí)(名)三種用戶及其使用權(quán)限:r讀、w寫、x執(zhí)行權(quán)限的組合.
使用者配置文件(passwd、shadow,group、gshadow,login.defs、useradd).Linux系統(tǒng)創(chuàng)建用戶和用戶登錄,都要讀取用戶配置文件/etc/passwd與/etc/shadow,以及用戶組配置文件/etc/group與/etc/gshadow中的屬性信息,以此信息維護(hù)驗(yàn)證用戶可用狀態(tài).此外,創(chuàng)建用戶還要讀取/etc/logon.defs和/etc/default/useradd兩個(gè)配置文件中的默認(rèn)參數(shù).
用戶與組管理的本質(zhì).根據(jù)配置文件中默認(rèn)的用戶屬性值創(chuàng)建用戶,將默認(rèn)值寫入配置文件,修改用戶屬性則將修改后的屬性值覆蓋配置文件中的原值.Linux通過維護(hù)上述配置文件記錄用戶的狀態(tài),維護(hù)系統(tǒng)中用戶的可用性.例如,普通用戶無法登錄的原因一般是口令過期失效或帳戶失效,可通過修改口令最長有效期、最后一次密碼修改日期或帳戶失效日期的屬性值解決.
用戶與組管理工具.Linux提供了完善的用戶維護(hù)命令行指令,包括用戶創(chuàng)建(useradd),用戶編輯(usermod、userdel),口令編輯(passwd),口令有效期維護(hù)(chage),用戶有效期維護(hù)命令(chage).
首先,確定應(yīng)用資源的需求情況,明確訪問資源的人對資源的訪問要求,設(shè)計(jì)確定資源的組織目錄結(jié)構(gòu),為資源標(biāo)明訪問者與權(quán)限,根據(jù)資源訪問者設(shè)計(jì)用戶賬號(hào),根據(jù)共同訪問需求設(shè)計(jì)組賬號(hào);其次,根據(jù)資源目錄結(jié)構(gòu)創(chuàng)建目錄;再次,創(chuàng)建擁有共同訪問資源的組賬號(hào),創(chuàng)建用戶并添加進(jìn)用戶組;最后,為資源目錄分配所有者與組并分配訪問權(quán)限,配置訪問服務(wù)并開啟服務(wù).
Samba[3]是在Linux和UNIX系統(tǒng)上實(shí)現(xiàn)SMB協(xié)議的一個(gè)免費(fèi)軟件,由服務(wù)器及客戶端程序構(gòu)成.SMB(Server Messages Block,信息服務(wù)塊)是一種在局域網(wǎng)上共享文件和打印機(jī)的一種通信協(xié)議,它為局域網(wǎng)內(nèi)的不同計(jì)算機(jī)之間提供文件及打印機(jī)等資源的共享服務(wù).SMB協(xié)議是客戶機(jī)/服務(wù)器型協(xié)議,客戶機(jī)通過該協(xié)議可以訪問服務(wù)器上的共享文件系統(tǒng)、打印機(jī)及其他資源.通過設(shè)置“NetBIOS over TCP/IP”,使得Samba不但能與局域網(wǎng)主機(jī)分享資源,還能與全世界的電腦分享資源.
4.2.1 共享文件項(xiàng)目
現(xiàn)有一家公司要在內(nèi)部網(wǎng)絡(luò)上與員工共享公司一些文檔資源,software(軟件)、sharedoc(公司制度等只讀文檔)、pubsavedoc(公司員工公共存儲(chǔ)區(qū)),employee(員工賬戶目錄)、sadm(管理員帳號(hào)家目錄).共享資源目錄結(jié)構(gòu)如下:
/opt/samba,
/opt/samba/sadm,
/opt/samba/sadm/sadm01(注:管理員sadm01家目錄),
/opt/samba/sadm/sadm02(注:管理員sadm02家目錄),
/opt/samba/software,
/opt/samba/sharedoc,
/opt/samba/pubsavedoc,
/opt/samba/employee,
/opt/samba/employee/emp01(注:員工emp01家目錄),
/opt/samba/employee/emp02(注:員工emp02家目錄).
4.2.2 本項(xiàng)目需求
sadm是公司文檔資源的最高管理者.sadm01、sadm02是文檔資源管理員,擁有對software、sharedoc、pubsavedoc中文檔查看、閱讀和修改權(quán)限,以及刪除文檔權(quán)限(pubsavedoc除外,只有建立者能刪除).emp01、emp02是公司普通員工,對software、sharedoc、pubsavedoc中文檔有查看和閱讀權(quán)限,對pubsavedoc還有建立文檔權(quán)限.
資源目錄和所屬用戶與組及權(quán)限./opt/samba,所有者sadm權(quán)限r(nóng)wx,員工組semp權(quán)限r(nóng)-x,其他人訪問權(quán)限無./opt/samba/sadm,所有者sadm權(quán)限r(nóng)wx,管理員組sman權(quán)限r(nóng)-x,其他人訪問權(quán)限無./opt/samba/sadm/sadm01,所有者sadm01家目錄權(quán)限r(nóng)wx,私有組sadm01無訪問權(quán)限,其他人無訪問權(quán)限./opt/samba/sadm/sadm02,所有者sadm02家目錄權(quán)限r(nóng)wx,私有組sadm02無訪問權(quán)限,其他人無訪問權(quán)限./opt/samba/software,所有者sadm權(quán)限r(nóng)wx,管理員組sman權(quán)限r(nóng)wx,其他人權(quán)限r(nóng)-x./opt/samba/sharedoc,所有者sadm權(quán)限r(nóng)wx,管理員組sman權(quán)限r(nóng)wx,其他人權(quán)限r(nóng)-x./opt/samba/pubsavedoc,所有者sadm權(quán)限r(nóng)wx,員工組sman權(quán)限r(nóng)wx,其他人權(quán)限r(nóng)wx./opt/samba/employee,所有者sadm權(quán)限r(nóng)wx,員工組semp權(quán)限r(nóng)-x,其他人權(quán)限無./opt/samba/employee/emp01,所有者emp01家目錄權(quán)限r(nóng)wx,私有組emp01無訪問權(quán)限,其他人權(quán)限無./opt/samba/employee/emp02,所有者emp02家目錄權(quán)限r(nóng)wx,私有組emp02無訪問權(quán)限,其他人權(quán)限無.
用戶賬號(hào)sadm為管理員組sman與員工組semp成員;用戶賬號(hào)sadm01、sadm02為管理員組sman與員工組semp成員;用戶賬號(hào)emp01、emp02為員工組semp成員.
4.2.3 共享設(shè)計(jì)與實(shí)現(xiàn)
用戶后臺(tái)管理.passdb backend = tdbsam | passdb | backend即用戶后臺(tái).
有三種后臺(tái):smbpasswd、tdbsam和ldapsam.sam即security account manager.
smbpasswd:該方式是使用smb工具smbpasswd給系統(tǒng)用戶(真實(shí)用戶或者虛擬用戶)設(shè)置一個(gè)Samba 密碼,客戶端用此密碼訪問Samba資源,本案例選此方式.
tdbsam:使用數(shù)據(jù)庫文件創(chuàng)建用戶數(shù)據(jù)庫.數(shù)據(jù)庫文件叫passdb.tdb,在/etc/samba中.passdb.tdb用戶數(shù)據(jù)庫可使用smbpasswd-a創(chuàng)建Samba用戶,要?jiǎng)?chuàng)建的Samba用戶必須先是系統(tǒng)用戶.也可使用pdbedit創(chuàng)建Samba賬戶.pdbedit參數(shù)很多,列出幾個(gè)主要的:pdbedit-a username:新建Samba賬戶.pdbedit-x username:刪除Samba賬戶.pdbedit-L:列出Samba用戶列表,讀取passdb.tdb數(shù)據(jù)庫文件.pdbedit-Lv:列出Samba用戶列表詳細(xì)信息.pdbedit-c “[D]” -u username:暫停該Samba用戶帳號(hào).pdbedit-c “[]” -u username:恢復(fù)該Samba用戶帳號(hào).使用此項(xiàng)設(shè)置后,自己建立smbpasswd和smbuser文件,然后用smbpasswd創(chuàng)建系統(tǒng)已有用戶.
ldapsam:基于LDAP賬戶管理方式驗(yàn)證用戶.首先要建立LDAP服務(wù),設(shè)置“passdb backend = ldapsam:ldap://LDAP Server”
step1 安裝samba服務(wù)軟件.
yum install samba
step2 創(chuàng)建共享資源目錄結(jié)構(gòu).
mkdir -p /opt/samba
mkdir -p /opt/samba/{sadm,software,sharedoc,pubsavedoc,employee}
step3 創(chuàng)建用戶組.
cd/opt/samba;groupadd sadm; groupadd sman; groupadd semp
step4 創(chuàng)建用戶分配用戶組成員.
useradd -g sadm -G sman,semp -d /opt/samba -s /bin/false sadm
useradd -g sman -G sman,semp -d /opt/samba -s /bin/false sadm01
useradd -g sman -G sman,semp -d /opt/samba -s /bin/false sadm02
useradd -g emp01 -G semp -d /opt/samba -s /bin/false emp01
useradd -g emp01 -G semp -d /opt/samba -s /bin/false emp02
step5 分配目錄資源的所有者及所屬用戶組.
chown -R sadm.sadm /opt/samba
ls-ld /opt/samba
chown -R sadm.sman pubsavedoc sadm sharedoc software
chown -R sadm.semp employee
chmod 770 employee sadm
chmod 1777 pubsavedoc
chmod 775 software sharedoc
step6 創(chuàng)建Windows共享用戶訪問口令.
smbpasswd sadm;smbpasswd -a sadm;smbpasswd -a sadm01;smbpasswd -a sadm02
smbpasswd -a emp01;smbpasswd -a emp02
step7 編輯/etc/samba/smb.conf 配置文件中的共享設(shè)置.
cd /etc; cd samba; mv smb.conf smb.conf.bak; vi smb.conf
step8 測序配置文件是否正確.
testparm
step9 開啟samba共享服務(wù).
systemctl start smb; systemctl status smb; nmcli connection up ens33;
step10共享目錄配置參數(shù).
[root@localhost samba]# cat /etc/samba/smb.conf
[global]
workgroup = centos
netbios name =CentOS_Server
Server string =This is CentOS7's samba Server
unix charset =utf8
security = user
passdb backend =smbpasswd
[samba]
comment = SambaShare Server
path = /opt/samba
valid users =@sman,@semp
create mask = 0644
directory mask =0755
write list =sadm,sadm01,sadm02,emp01,emp02
step11查看共享資源的權(quán)限分配.
[root@localhost opt]# ls -ld /opt/samba
drwxrwxr-x. 7 sadm sman 84 Aug 20 06:28 /opt/samba
[root@localhost samba]# ls -l /opt/samba
total 0
drwxr-x---. 4 sadm semp 32 Aug 20 16:38 employee
drwxrwxrwt. 5 sadm sman 150 Aug 21 08:56 pubsavedoc
drwx------. 3 sadm sadm 20 Aug 21 08:43 sadm
drwxrwxr-x. 2 sadm sman 70 Aug 22 06:09 sharedoc
drwxrwxr-x. 2 sadm sman 6 Aug 20 06:28 software
step12 共享資源的訪問.
Windows 10 系統(tǒng)訪問.清除局域網(wǎng)登錄緩存:我的電腦→管理→服務(wù)→Workstion右擊“重新啟動(dòng)”.“samba服務(wù)主機(jī)ip”.
Linux系統(tǒng)中訪問.“smbclient -L Sambaserver”.
MacOS系統(tǒng)中訪問.打開safari輸入“smb://ip”,回車后出現(xiàn)“輸入用戶名密碼”對話框,若是匿名則選擇作為“客人”選項(xiàng)或打開Finder(或在桌面),CMD+ k,可以得到以下頁面:
“smb://服務(wù)器地址或域名,輸入samba用戶和密碼”.
Linux系統(tǒng)資源(文件)的管理,是通過創(chuàng)建資源的所有者用戶與用戶組,使用目錄組織文件資源的存儲(chǔ)、給文件分配用戶與用戶組及使用權(quán)限來進(jìn)行多用戶、多任務(wù)環(huán)境下文件資源的管理與分配,并通過開啟服務(wù)的方式實(shí)現(xiàn)文件資源的共享,系統(tǒng)通過維護(hù)用戶配置文件與服務(wù)配置文件來管理用戶與服務(wù),從而實(shí)現(xiàn)資源共享的運(yùn)維.