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