文章目錄
賬戶與安全
Linux系統對賬號與組的管理是通過ID號來實現的,我們在登錄系統時,輸入用戶對應的密碼,後臺系統會將用戶名轉化爲ID號後再判斷該賬號是否存在,並對比密碼是否匹配。在Linux中,用戶ID號被稱爲UID,組ID被稱爲GID。其中UID爲0,代表超級管理員,也就是通常說的root賬號,1~499之間ID號系統會預留下來。這樣我們創建的賬號會從500算起。
Linux的組有基本組與附加組之分,一個用戶只可以加入一個基本組中,但可以同時加入多個附加組。創建用戶時,系統默認會自動創建同名的組,並設置用戶加入該基本組中。
創建賬戶以及組
創建賬戶及組需要管理員權限
1、useradd
創建新賬號 useradd 【選項】 用戶名稱
-c
設置賬號描述信息,一般爲賬號全稱-d
設置賬號家HOME_DIR
目錄-e
設置賬戶的失效日期,格式爲YYYY-MM-DD-g
設置賬戶的基本組-G
設置賬戶的附加組,多個附加組中間用逗號隔開-M
不創建賬戶家目錄,一般與-s
結合使用-s
設置賬戶的登錄Shell,默認bash-u
指定賬戶UID
useradd Frank
創建普通賬戶Frank
useradd -c adminstrator -d /home/admin -e 2013-12-24 \
-g root -G bin,adm,mail admin
\
是換行輸入命令
創建系統賬戶名稱爲admin,全名爲adminstrator,賬戶家目錄爲/home/admin
,賬戶失效日期爲2013年12月24日,賬戶基本組爲root,附加組爲bin、adm、mail
2、groupadd
創建組賬戶 groupadd [選項] 組名稱
-g
設置組ID號
group tom
創建tom組group -g 1000 jerry
創建GID爲1000的組jerry
3、id
顯示賬戶及組信息
id root
查看root賬戶及相關組信息
修改賬戶及組
1、passwd
更新賬號認證信息 passwd [選項][賬號名稱]
-l
鎖定賬戶,僅root可使用此選項--stdin
從文件或管道讀取密碼-u
解鎖賬戶-d
快速清空賬戶密碼,僅root可使用此選項
passwd
爲當前用戶設置新密碼
passwd
指定修改tom的密碼
echo "qwer0987" | passwd --stdin tom
設置tom的密碼爲qwer0987
passwd -l tom
鎖定賬戶tom
passwd -u tom
解鎖賬戶tom
passwd -d tom
清空賬戶tom的密碼(無密碼可登陸)
2、gpasswd
設置組密碼
gpasswd admin
設置組密碼
gpasswd -A mail admin
將mail賬戶設置組admin的管理員
3、usermod
修改賬戶信息 usermode [選項] 賬戶名稱
-d
修改賬戶家目錄-e
修改賬戶失效日期-g
修改賬戶所屬基本組-G
修改賬戶所屬附加組-s
修改賬戶登錄Shell-u
修改賬戶UID
usermod -d /home/tomcat tom
修改tom的家目錄, /home/tomcat
目錄必須存在
usermod -e 2013-10-01 tom
修改tom的失效日期爲2013-10-01
usermode -g mail tom
修改賬戶tom的基本組爲mail
usermode -s /bin/bash user2
修改user2登錄Shell爲bash
usermode -u 1001 tom
修改tom的UID爲1001
刪除賬戶及組
1、userdel
刪除賬戶及相關文件
-r
刪除賬戶及相關文件
userdel tom
刪除賬戶tom,但該賬戶下的文件不刪除
userdel -r tom
刪除賬戶tom,並刪除相應的家目錄
2、groupdel
刪除組賬戶
groupdel jerry
刪除組jerry
賬戶與組文件解析
1、etc/passwd
賬戶信息文件
james:x:500:500:普通用戶:/home/james:/bin/bash
賬戶名稱:密碼佔位符:UID:GID:賬戶的描述信息:賬戶家目錄:賬戶登錄Shell
/bin/bash
可登錄系統Shell/sbin/nologin
表示賬戶無法登錄系統
2、/etc/shadow
賬戶密碼文件
賬戶名稱:密碼(如果未設置密碼,是爲!!):。。。
3、/etc/group
組賬戶信息文件
postfix:x:89:
sshd:x:74:
tom:x:500:
組賬戶名稱:密碼佔位符:GID:組成員信息(僅顯示基本成員,附加成員不顯示)
4、/etc/gshadow
組賬戶密碼文件
root:::
bin:::bin,daemon
組賬戶名稱:組密碼(一般爲組管理員密碼):組管理員:組成員(與/etc/group第四列相同)
文件權限
Linux權限主要分爲讀r|4
、寫w|2
、執行x|1
三種權限如:
[root@localhost ~]# ls -l
總用量 28
-rw-------. 1 root root 1139 11月 22 19:31 anaconda-ks.cfg
-rw-r--r--. 1 root root 13642 11月 22 19:31 install.log
-rw-r--r--. 1 root root 3482 11月 22 19:30 install.log.syslog
drwxr-xr-x. 2 root root 4096 12月 1 14:05 test
- 第1位文件:
-
普通文件、d
代表目錄、l
鏈接文件、b,c
設備 - 第2-4位 所有者權限
- 第5-7位 所屬組權限
- 第8-10位 其他賬戶權限
- 最後一爲
.
沒有添加ACL控制,+
添加ACL控制
文件權限:鏈接數量或者子目錄個數:文檔的所有者:文檔的所屬組:大小:修改時間:文檔名稱
修改文檔屬性
1、chmod
修改文件或者目錄權限 chmod [選項] 權限 文檔
--reference=RFILE
根據參考文檔設置權限-R
遞歸將權限應用於所有的子目錄與子文件
u
代表所有者,g
代表所屬組,o
代表其他用戶,a
代表所有人
chmod u=rwx,g=rwx,o=rwx install.log
chmod a=rw install.log
chmod g-x,o-wx install.log
chmod u+w install.log
chmod 700 install.log #修改文件權限rwx------
chmod 644 install.log #修改文件權限rw-r--r--
chmod 755 /home # 修改目錄權限 rwxr-xr-x
chmod --reference=install.log.syslog install.log # 以install.log.syslog 爲標準修改install.log權限
2、chown
修改文件或者目錄的所有者所屬組 chown [選項][所有者][:[所屬組]] 文件或目錄
-
-R
遞歸將權限應用於所有的子目錄與子文件chown user2:mail install
修改文件的所有者爲user2
,所屬組爲mail
chown :root install
僅修改文件的所屬組爲rootchown root install
修改文件的所屬組爲root
ACL訪問控制權限
由於系統的基本權限是針對文檔所有者、所屬組或其他賬戶進行控制的,無法針對某個單獨的賬戶進行控制,所以就有ACLAccount Control List
訪問控制列表概念,使用ACL,可以針對單一賬戶設置文檔的訪問權限
1、getfacl
查看文檔的ACL權限
# 下面install.log未設置ACL訪問控制條目,僅有基本的文件所有者、所屬組、其他賬戶的訪問控制
[root@localhost ~]# getfacl install.log
# file: install.log
# owner: root
# group: root
user::rw-
group::r--
other::r--
[root@localhost ~]# ls -l test.txt
-rw-rw-r--+ 1 root root 0 12月 2 14:00 test.txt
[root@localhost ~]# getfacl test.txt
# file: test.txt
# owner: root
# group: root
user::rw-
user:user1:rw- #添加的ACL條目,使用用戶user1對test.txt文件可讀可寫
group::r--
group:user1:r-- # 添加ACL條目,使user1組對test.txt文件可讀
mask::rw-
other::r--
2、setfacl
設置文檔訪問控制列表setfacl [選項][{-m|-x} acl條目] 文件或目錄
-b
刪除所有的附加的ACL條目-k
# 刪除默認的ACL-m
添加ACL條目-x
刪除指定的ACL條目-R
遞歸處理所有的子目文件或子目錄
setfacl -m u:user:rw test.txt
添加ACL條目,使用用戶user1對test.txt文件可讀可寫
setfacl -m g:user1:r test.txt
添加ACL條目,使user1組隊test.txt文件可讀
setfacl -x g:user1 test.txt
刪除user1組的ACL條目
setfacl -x u:user1 test.txt
刪除賬戶user1的ACL條目
setfacl -b test.txt
刪除所有附加的ACL條目
賬戶管理案例
模擬公司組織結構,EXAMPLE公司是一個從事教育培訓的組織,公司結構主要分爲教研室(teach)、校長辦公室(office)、財務部(finance)、行政部(admin)、市場部(martket)。
部署文件共享服務器,需要爲每個部門創建各自獨立的共享目錄,根據要求爲所有的普通員工創建各自獨立的賬戶,這些賬戶僅要讀權限即可,併爲每個部門的負責人創建一個管理賬戶(管理員名稱爲Op_部門名稱),這個賬戶可以進行讀寫操作。爲了後期管理的方便需要爲每個部門創建與部門名稱相同的名的組賬戶。
#創建共享目錄
[root@centos6 ~]# mkdir -p /var/{teach,office,finance,admin,market}
#創建組賬戶
[root@centos6 ~]# groupadd teach
[root@centos6 ~]# groupadd finance
[root@centos6 ~]# groupadd admin
[root@centos6 ~]# groupadd market
[root@centos6 ~]# groupadd office
#創建組管理員賬戶
[root@centos6 ~]# useradd -g teach Op_teach
[root@centos6 ~]# useradd -g office Op_office
[root@centos6 ~]# useradd -g finance Op_finance
[root@centos6 ~]# useradd -g admin Op_admin
[root@centos6 ~]# useradd -g market Op_market
#創建普通員工賬戶
[root@centos6 ~]# useradd -g teach endy009
[root@centos6 ~]# useradd -g office lucy030
[root@centos6 ~]# useradd -g finance jacob060
[root@centos6 ~]# useradd -g admin jerry160
[root@centos6 ~]# useradd -g market marry001
#添加組管理員
[root@centos6 ~]# gpasswd -A Op_teach teach
[root@centos6 ~]# gpasswd -A Op_office office
[root@centos6 ~]# gpasswd -A Op_finace finance
[root@centos6 ~]# gpasswd -A Op_finance finance
[root@centos6 ~]# gpasswd -A Op_admin admin
[root@centos6 ~]# gpasswd -A Op_market market
#給共享文件夾賦予相應的權限控制
[root@centos6 ~]# chown Op_teach.teach /var/teach
[root@centos6 ~]# ll -a /var/teach
總用量 8
drwxr-xr-x. 2 Op_teach teach 4096 12月 2 14:27 .
drwxr-xr-x. 23 root root 4096 12月 2 14:27 ..
[root@centos6 ~]# chown Op_office:office /var/office
[root@centos6 ~]# ll -a /var/office
總用量 8
drwxr-xr-x. 2 Op_office office 4096 12月 2 14:27 .
drwxr-xr-x. 23 root root 4096 12月 2 14:27 ..
[root@centos6 ~]# chown Op_finance.finance /var/finance
[root@centos6 ~]# chown Op_admin.admin /var/admin
[root@centos6 ~]# chown Op_market.market /var/market
[root@centos6 ~]# chmod 755 /var/{teach,office,finance,admin,market}