3月21日學習筆記-用戶和組管理

一、/etc/passwd文件詳解
二、/etc/shadow文件詳解
三、新增/刪除用戶和組
四、創建、修改用戶密碼
五、用戶身份切換
六、應用技巧


1. /etc/passwd
由 : 分隔成7個字段
(1) 用戶名   命名規則:大小寫字母、數字、減號(不能出現在首位)、點以及下劃線,其他字符不合法 
(2) x 放密碼,安全起見放到 /etc/shadow
(3) uid 用戶的uid號   範圍(0-4294967294=2^32-2)            root uid=0 
          1-499系統保留 
          普通賬戶是從500開始
(4) gid  組ID號

          對應 /etc/group 的gid
(5) 註釋說明,該字段沒有實際意義,通常記錄該用戶的一些屬性,例如姓名、電話、地址等等  用 chfn 用戶名 更改
(6) 用戶家目錄
(7) shell  /bin/bash, /bin/false, /sbin/nologin     這個用戶所使用的shell
2. /etc/shadow
$6  sha-512 加密
$5  sha-256
$1  md5
使用 : 分隔9個字段
(1) 用戶名
(2) 密碼     
          如$6$爲SHA-512加密;如$5$爲SHA-256加密;如$1$爲MD5加密
(3)上次更改密碼的日期,例如上次更改密碼的日期爲2012年1月1日,則這個值就是 ‘365 x (2012-1970) + 10 + 1= 15341’. 
(4)要過多少天纔可以更改密碼, 0 不限制
(5)密碼多少天后到期,默認是99999,可以理解爲永遠不需要改 
(6)密碼到期前的警告期限 
(7)賬號失效期限,到期後過多少天鎖定帳號 
(8)賬號的生命週期
(9)作爲保留用的,沒有什麼意義
注意:此項內容工作中的操作較少,面試不會問到以上這些


3. 新增/刪除用戶和組
groupadd 組名     添加組
groupadd -g gid號  組名     給添加組指定gid號(如不指定,遞增創建gid)
groupdel  組名     (如果組內有用戶,不能刪除)
useradd -u uid號 用戶名      指定uid號
useradd -g gid號 用戶名     給新建用戶指定gid號(gid必須之前就存在)
useradd -G gid號 用戶名     添加附屬組
useradd -d 路徑 用戶名     指定家目錄
useradd -M 用戶名     不建立家目錄  (會指定家目錄,但沒有創建)
     如需要手動創建家目錄,需要往家目錄拷貝一些文件:
     cp /etc/skel/.b* /home/用戶名     手動將環境變量文件拷貝到用戶家目錄中
useradd -s shell路徑 用戶名     指定shell
userdel  -r 刪除用戶的家目錄
usermod -u  更改用戶的uid
-s        更改shell
-d     更改家目錄
  -L     鎖定賬戶
-U     解鎖賬戶
-g     指定gid
-G   添加附屬組


chfn 用戶名    輸入用戶個人信息
chfn  finger
另:如需要查看用戶的屬性信息,輸入chfn 用戶名  即可。  


4. 創建、修改用戶密碼
passwd  
創建密碼的規則:長度大於10;含大小寫字母數字以及特殊字符 ;不規則性;不要帶有自己名字、公司名字、自己電話、自己生日等。

mkpasswd  生成密碼的工具,
安裝 expect包 

mkpasswd -l 15 -s 0     
-l 指定密碼長度    
-s 指定密碼中特殊字符最少位數,默認是1位

5. 用戶身份切換
su 用戶名     半切換賬戶     (不會切換環境變量)
su - 用戶名     全切換賬戶
su   -  用來初始化環境變量 $PATH $HOME等


小技巧:su -c "touch /tmp/user4.txt" -user4     用user4  執行“”裏面的命令

普通用戶如果想要用su -命令切換到root賬戶下,需輸入root用戶的密碼,這樣普通用戶就會獲得root的所有權限,很不安全,所以我們可以用sudo命令解決這個難題。

sudo   可以讓普通用戶臨時獲得另外一個用戶的權限執行一些命令。
普通用戶使用sudo命令需要編輯文件 
輸入visudo 編輯/etc/sudoers 配置文件 (沒有命令需安裝 yum install -y sudo)
     root          ALL=ALL          ALL  
     xiaoqi     ALL(root)     /bin/ls     (手動輸入,即時生效)   此處也可以填寫用戶組
(上面這行命令的意思是 允許xiaoqi臨時使用root賬戶的/bin/ls命令)
[xiaoqi@laoqi ~]$ sudo /bin/ls /root/                    //在xiaoqi賬戶輸入sudo命令,查看/root/下的文件
[sudo] password for xiaoqi:                                    [url=]//提示要輸入密碼[/url]       再用這個命令,密碼會被記住
123  1.txt  anaconda-ks.cfg  install.log  install.log.syslog  test2.txt  test3.txt                [url=]//密碼輸入正確後,正常顯示了/root/下的文件內容。[/url]
也可以visudo後,輸入下面的指令:
xiaoqi       all=(root)        NOPASSWD: /bin/ls,  /bin/su
普通用戶輸入 sudo  bin/su -   即可切換到root賬號下
或輸入sudo su -亦可

怎麼樣限制讓root不能登錄系統?
vi /etc/ssh/sshd_config
文本文件找到這一行:PermitRootLogin Yes 改成PermitRootLogin no
重啓一下服務 /etc/init.d/sshd restart        

格式: user   host=(as_user)  commands
比如:  aming  ALL=(root)   /bin/ls    //它的意思是,讓aming這個普通用戶,擁有root的權限,針對ls這個命令。

應用:只允許使用普通賬戶登陸,而普通賬戶登錄後,可以不輸入密碼就能sudo切換到root賬戶 
User_Alias USER_SU = test, test1, aming   //做用戶的別名,可以寫多個用戶
Cmnd_Alias SU = /bin/su        //做命令的別名,可以寫多個命令
USER_SU ALL=(ALL) NOPASSWD: SU   //其中NOPASSWD的意思是,普通用戶使用sudo的時候,不需要輸入自己的密碼。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章