背景:linux是目前流行的操作系統,除了微軟系剩下的大多數都是以linux爲平臺,部署開發,用戶管理對於系統資源的控制,隔離以及問題排查很有必要,本文蛀牙從三方面進行闡述,用戶管理,用戶相關文件和權限切換。
1 用戶管理
- 添加用戶,命令爲useradd ,格式爲 :useradd [選項......] 用戶名
例子:useradd –d /usr/sam -m sam
此命令創建了一個用戶sam,
其中-d和-m選項用來爲登錄名sam產生一個主目錄/usr/sam(/usr爲默認的用戶主目錄所在的父目錄)。
- 修改密碼,命令爲passwd 格式爲:passwd [選項......] 用戶名
例子:passwd zhangsan (修改張三的用戶名)
- 新建組 ,命令爲groupadd ,格式爲:groupadd [選項] 組名
例子:groupadd www(創建www組,把與web相關的都可以加入到組中,可以在創建用戶的時候指定,也可以通過usermod指定)
- 用戶修改 ,命令爲usermod,格式爲:usermod [選項] 組名/用戶名
例子:usermod -G www nginx(把nginx加入到www組中)
- 用戶刪除 userdel ,格式爲:userdel [選項] 登錄
例子:userdel zhangsan (刪除用戶zhangsan )
2 用戶權限相關文件
通過用戶管理所創建的權限,對應到文件的話,主要涉及到4個文件 /etc/passwd , /etc/group , /etc/shadow和/etc/gshadow。
- /etc/passwd ,用戶賬號信息(不要被名字所誤導)
每一行都代表一個用戶,每一行又通過[:]分爲七個部分
1、賬號名稱
2、原先用來保存密碼的,現在密碼都放在/etc/shadow中,所以這裏顯示x
3、UID,也就是使用者ID。默認的系統管理員的UID爲0,我們添加用戶的時候最好使用1000以上的UID,1-1000範圍的UID最好保留給系統用。
4、GID,也就是羣組ID
5、關於賬號的一些說明信息,大部分爲空
6、賬號的home目錄,home目錄就是你登陸系統後默認的那個目錄
7、賬號使用的shell
-
/etc/shadow,用戶密碼文件
和passwd文件對應,這裏也是由[:]來進行分割,一共分九部分:
1、賬戶名稱(密碼需要與賬戶對應的嘛)
2、加密後的密碼
3、從1970年1月1日算起的總的天數
4、密碼不可被變更的天數:設置了這個值,則表示從變更密碼的日期算起,多少天內無法再次修改密碼,如果是0的話,則沒有限制
5、密碼需要重新變更的天數:密碼經常更換才能保證安全,爲了提醒某些經常不更換密碼的用戶,可以設置一個天數,強制讓用戶更換密碼,也就是說該用戶的密碼會在多少天后過期,如果爲99999則沒有限制
6、密碼過期預警天數:如果在5中設置了密碼需要重新變更的天數,則會在密碼過期的前多少天進行提醒,提示用戶其密碼將在多少天后過期
7、密碼過期的寬恕時間:如果在5中設置的日期過後,用戶仍然沒有修改密碼,則該用戶還可以繼續使用的天數
8、賬號失效日期,過了這個日期賬號就不能用了
9、保留字段
- /etc/group 組信息
通過[:]分割成4個部分:
1、組名
2、組密碼標誌
3、GID
4、組中附加用戶,一般在passwd文件中
- /etc/gshadow 組密碼文件
以[:]進行分割成4個部分:
1、組名
2、組密碼標誌 ,!表示這個用戶組沒有用戶組密碼,沒有用戶組密碼意味着這個用戶組沒有用戶組管理員,其實大多數用戶 組都沒有用戶組管理員
3、管理者這個字段也可爲空,如果有多個用戶組管理者,用,號分割
4、 組內用戶列表:如果有多個成員,用,號分割
3 普通用戶授權root權限
- su
su是最簡單的身份切換名,用su我們能夠進行不論什麼用戶的切換,一般都是su - username,然後輸入password就ok了,可是root用su切換到其它身份的時候是不須要輸入password的。
su三種用法:
su user :受限於環境變量,有時候環境變量PATH不會變。
su - :完全以root身份運行。
su -c :一次性操作後,又切換原用戶。
- sudo
與su不同的是,su切換需要切換用戶的密碼,而sudo則只需要本用戶密碼就可以。 當使用sudo時,會到/etc/sudoers文件中檢查該用戶是否有sudo權限,如有有的話,輸入自己的密碼,則完成切換。
sudo配置的三種方法(提升用戶爲root權限的方法):
方法一:修改 /etc/sudoers 文件,找到下面一行,把前面的註釋(#)去掉
## Allows people in group wheel to run all commands
%wheel ALL=(ALL) ALL
然後修改用戶,使其屬於root組(wheel),命令如下:
#usermod -g root tommy
修改完畢,現在可以用tommy帳號登錄,然後用命令 su – ,即可獲得root權限進行操作。
方法二:修改 /etc/sudoers 文件,找到下面一行,在root下面添加一行,如下所示:
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
tommy ALL=(ALL) ALL
修改完畢,現在可以用tommy帳號登錄,然後用命令 sudo – ,即可獲得root權限進行操作。
方法三:修改 /etc/passwd 文件,找到如下行,把用戶ID修改爲 0 ,如下所示:
tommy:x:0:33:tommy:/data/webroot:/bin/bash