0321用戶和組管理

3.1 用戶配置文件和密碼配置文件html

3.2 用戶組管理linux

3.3 用戶管理shell

3.4 usermod命令vim

3.5 用戶密碼管理安全

3.6 mkpasswd命令app

3.7 su命令ssh

3.8 sudo命令ui

3.9 限制root遠程登陸加密

sudo高級配置http://www.jianshu.com/p/51338e41abb7spa

使用 chroot 監獄限制 SSH 用戶訪問指定目錄:  https://linux.cn/article-8313-1.html

 

 

擴展

sudo與su比較 http://www.apelearn.com/bbs/thread-7467-1-1.html 

sudo配置文件樣例 www.opensource.apple.com/source/sudo/sudo-16/sudo/sample.sudoers

sudo不錯的教程 http://www.jianshu.com/p/51338e41abb7

sudo -i 也能夠登陸到root嗎? http://www.apelearn.com/bbs/thread-6899-1-1.html

 

 

1、用戶配置文件和密碼配置文件

用戶配置文件:cat /etc/passwd

一行表明一個用戶,每一行用冒號分隔爲7段:

第一段:用戶名

第二段:早期爲用戶的密碼,後來由於安全問題將密碼保存在/etc/shadow文件裏

第三段:用戶的uid

第四段:用戶的gid

第五段:用戶的註釋描述信息,沒有實際做用

第六段:用戶的家目錄 

第七段:用戶登陸的shell

 

密碼配置文件:cat /etc/shadow

head -n1 /etc/shadow; tail -n2 /etc/shadow   在一行中使用兩個命令,用 ;分號分割

/etc/passwd 對應,每一行一個用戶,用冒號分割爲九段

第一段:用戶名

第二段:用戶密碼

第三段:最近一次更改密碼距離1970年1月1曰總共多少天

第四段:表示多少天之後才能夠更改密碼,默認爲0不限制

第五段:表示多少天內必須更改密碼,不然密碼過時沒法登陸

第六段:警告,提示距離密碼過時還有幾天

第七段:帳號的失效期限

第八段:用戶距離1970年1月1曰多少天后過時

第九段:保留字段,沒有實際意義

2、用戶組管理

cat /etc/group  

用戶組的配置文件分爲四段:
第一段:用戶組的名稱
第二段:用戶組的密碼,實際保存在/etc/gshadow文件中
第三段:用戶組的GID。
第四段:用戶組的成員。

 cat /etc/gshadow   組密碼的配置文件  與/etc/shadow對應

/etc/gshadow用戶組的密碼配置文件
此文件與/etc/group文件中的行一一對應,也有四段:
第一段:用戶組名
第二段:加密碼後的密碼
第三段:組管理員(多個用,分隔) 
第四段:組成員(多個用,分隔)


帶 - 號的文件是系統自動備份的文件

groupadd grp1  使用groupadd建立組grp1

tail -n1 /etc/group  查看最後一行的組

groupadd -g 1005 grp2     -g 在建立組grp2的時候,指定gid爲1005

修改用戶組:

groupmod  選項 組名    #用法和usermod相似       -g選項:#改變組的ID號

groupmod -g 1122 user2     #將用戶組user2的gid改成 1122

-n選項:改變用戶組組名

使用groupdel 刪掉組grp1 ,刪除組以前,這個組裏面不能有用戶

3、用戶管理

查看用戶gid和uid: id命令
id命令能夠査看用戶的UID, GID,和附加組的GID

id    不帶參數直接使用id命令是查看當前用戶,    id userl    #帶用戶名參數能夠查看指定用戶。

括號裏面的爲用戶名和組名

-u選項:只顯示用戶的uid

-g選項:只顯示用戶的gid

-G選項:只顯示用戶的附加組的gid 

-n選項:配合-u、-g、-G選項使用,只顯示用戶名,所屬組名,和附加組名。#-n只能配合任意一個選項

建立用戶user4時,指定uid爲1004指定user4所屬的組爲grp2:

useradd -u 1004 -g grp2 user4
-u選項:指定uid。root用戶的uid爲0 , CentOS7的普通用戶UID是從1000開始使用

-g選項:指定gid gid必須是已經存在的

-d選項:指定用戶的家目錄  :        useradd -d /home/test2 testuser4        testuser4的家目錄爲 /home/test2

-s選項:指定用戶登錄的shell 通常不須要指定,指定不能登錄的用戶爲/sbin/nologin :       useradd -s /sbin/nologin testuser5

-M選項:建立用戶的同時不建立家目錄。一個用戶沒有家目錄會出現不少問題,因此通常只在建立不可登錄的用戶時使用。

useradd -u 1007 -g grp2 -d /home/to/ -s /sbin/nologin user6
設置用戶uid爲1007,組爲grp2,使用-d指定家目錄爲/home/to/

-M在建立用戶的同時,不建立家目錄

uid是自增的,若是指定了uid爲1005,下一個會從1006開始,gid會根據uid增長

刪除用戶:    

userdel   +  用戶名        直接刪除用戶,不刪除家目錄

userdel  -r  用戶名  刪除用戶而且把用戶的家目錄也刪除,使用-r

4、usermod命令

更改用戶屬性的命令

命令格式:usermod  選項  user_name #注:使用usermod命令至少須要一個選項。

usermod -u 2222 user1 把用戶user1的uid改成2222

 -u選項:更改用戶的uid

tail -n2 /etc/passwd 查看passwd最後兩行user3的gid是2224,

usermod -g 2224 user1 使用-g把user1的gid更改爲2224

usermod -g user2 user1 也可使用-g 加user2 (組名) user1(用戶名),把用戶user1的gid改爲user2的2223

-g選項:更改用戶gid 可使用組名也能夠用gid

usermod -d /home/user2 user1 使用-d更改用戶user1的家目錄爲/home/user2

-d選項:更改用戶的家目錄,若是更改用戶的家目錄不存在,須要將用戶原有的家目錄重命名爲更改的家目錄。或者複製系統的家目錄模板到指定的路徑下

usermod -s /sbin/nologin user3     -s選項:更改用戶的shell,將 user3更改成不能登陸的shell

-G選項:擴展組,一個用戶能夠屬於多個組,可是gid只有一個,除了gid以外的都叫作擴展組。

給用戶指定多個組的格式: usermod -G usermod -G user1,user3 user1 user1(用戶名)

-L選項:鎖定用戶。
#注:鎖定用戶後,ROOT用戶可使用數su命令切換到該用戶。
#可是,該用戶沒法直接登陸,在普通用戶下也不能使用su命令登陸被鎖定的用戶。

#鎖定後的用戶在/etc/shadow文件中的密碼最前面加上了一個感嘆號。此時這個用戶就沒法登陸了。

-U選項:解鎖用戶
#將user2用戶解鎖:
cat /etc/shadow |grep user2
#/etc/shadow文件中該用戶的密碼最前面的感嘆號已經不在了,這個用戶就能夠正常登陸了。

5、用戶密碼管理

使用 passwd user1 給user1修改密碼,會多一個加密的字符串,若是用戶沒有密碼是 兩個 !!,空密碼用戶不能登陸,*號,表示該用戶的密碼是被鎖定的,也不能登陸

passwd -l user1 使用 -l選項鎖定用戶,用戶鎖定後出現兩個!!

passwd -u user1 使用-u選項解鎖用戶,兩個!!取消

usermod -L user1 使用 -L 選項也是鎖定用戶,配合usermod使用,用戶鎖定後,有一個!,只要有!號就沒法登陸

usermod -U user1 使用-U 解鎖用戶,配合usermod使用。

passwd --stdin user2 使用 --stdin 設置密碼:123456

-stdin選項:更改用戶密碼的另外一種方式,能夠echo password| passwd -stdin user_name
也能夠passwd -stdin user_name,而後輸入一個密碼,此方法會以明文顯示密碼

shell腳本中使用 |把前面命令的結果傳遞給後面的命令

echo "123456" | passwd --stdin user2 |管道符把前面命令的結果(123456)傳遞給後面的命令,直接更改用戶密碼

echo -e "abc123456\nnnn123456" | passwd user2 ******

-e 能夠在一行命令中出現換行符 \n 換行

6、mkpasswd命令 :

make password 能夠生成隨機的字符串,能夠當作密碼使用

使用前先安裝:yum install -y expect

mkpasswd    不帶選項默認生成9位的隨機字符串。

mkpasswd -l 12     生成12位隨機字符串

mkpasswd -l 12 -s 3     -s 生成的字符串有三個特殊字符

mkpasswd -l 12 -s 0     生成的字符串沒有特殊字符 ,0個

7、su命令 切換用戶

su - user1 切換到用戶user1 使用 - 能夠完全切換到user1用戶

su - -c "touch /tmp/uu.txt" user1 -c選項:使用指定用戶執行一條命令,用user1用戶的身份去執行touch .tmp/uu.txt文件的組根據用戶的主組來決定

8、sudo命令

sudo:受權命令:

sudo命令用來以其餘身份來執行命令,預設的身份爲root。

在/etc/sudoers中設置了可執行sudo指令的用戶。若其它未經受權的用戶企圖使用sudo,則會發岀警告的郵件給管理員。 用戶使用sudo時,必須先輸入密碼,以後有5分鐘的有效期限,超過時限則必須從新輸入密碼。
sudo的配置文件:
/etc/sudoers 也可使用visudo訪問
/etc/sudoers文件爲sudo的配置文件,能夠設置用戶能以什麼身份執行哪些命令

visudo命令:
使用visudo命令能夠編輯配置sudoers文件,保存時會自動檢查是否有語法錯誤

執行visudo命令後,找到:

而後在找到的內容下面添加如下內容:

添加這一行的意思是user1用戶能夠在全部終端上以root權限運行全部命令

編輯完成後,保存退出,切換到user1用戶,看看是否能夠用sudo命令執行一些root用戶才能夠執行的命令,

sudo /usr/bin/ls /root/ 須要輸入密碼才能夠

寫成絕對路徑/usr/bin/ls,能夠用which查看

sudoers文件配置格式說明:

配置格式:用戶名 ALL=(ALL) [NOPASSWD:] Command
用戶名:授予哪一個用戶或用戶別名(多個用戶創建一個別名,User_Alias)
ALL=(ALL):其中等號左邊的ALL表示主機IP或者主機名,通常都爲All,等號右邊的ALL爲前面的用戶名將授予那個用戶的權限,ALL表示root或者說是全部用戶。
NOPASSWD:添加這個字符串後,用戶使用sudo受權的時候不需輸入用戶密碼。
Command:表示什麼命令可使用sudo受權。命令必須以絕對路徑表示。多個命令使用逗號隔開。當Command是ALL 的時候,表示全部命令均可以使用sudo受權。還能夠配置命令組別名。

編輯配置文件visudo給命令加別名:Cmnd_Alias USER1_CMD=/usr/bin/ls, /usr/bin/mv

在上面定義別名的名稱爲USER1_CMD

在下面使用別名名稱USER1_CMD,便可使用別名中的命令

9、限制root遠程登陸

生產環境中,咱們爲了安全起見,是應該禁止root用戶遠程登陸的。若是有需求要用到root權限,能夠用sudo設置,受權給普通用戶

限制root遠程登錄後,只有使用普通用戶登錄後,再使用su-切換到root,前提是必須知道root用戶的密碼。還有一個辦法就是經過sudo受權su命令,讓su命令不須要密碼就能夠切換到root用戶。在visudo裏面添加如下內容:

給幾個用戶設置別名,名稱爲USERS,User_Alias USERS = user1, user2, user3

給用戶設置別名:USERS

並在使用/usr/bin/su命令時 不須要輸入密碼

先切換到user1,使用sudo su - root 切換到root,沒有使用密碼

限制root遠程登錄:

vim /etc/ssh/sshd_config

去掉PermitRootLogin前的 # 號 把yes改爲no,若是是yes即容許root用戶遠程登錄

而後保存退出,重啓sshd服務:systemctl restart sshd.service

設置完成,root用戶退出後,沒法遠程登錄

能夠先登錄普通用戶,根據在配置文件中的設置,在使用sudo su - root 時不須要使用密碼,來實現登錄root 用戶
 

 

相關文章
相關標籤/搜索