用戶和組管理

ps: 紅字字體爲重要部分, 仔細看linux


1、 用戶配置文件和密碼配置文件字段介紹shell

       ①。 用戶配置文件;vim

[root@Centos1 ~]# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
……………………/省略
user1:x:500:521::/home/user1:/bin/bash

第一段:     用戶名                                                                         bash

第二段:     密碼                                                                           ssh

第三段:     root的uid爲0, 普通用戶的uid從500開始(0-499爲系統用戶, 500以上爲普通用戶)       ide

第四段:     root的gid爲0, 普通用戶的gid從500開始                                           字體

第五段:     用戶說明                                                                       ui

第六段:     指定家目錄                                                                     加密

第七段:     指定用戶shell登陸環境, 默認爲/bin/bash                                         spa

       ②。 密碼配置文件;

[root@Centos1 ~]# cat /etc/shadow
root:$6$OsPJ9fHZc1oQNxA6$BWQ4QGnVm7dYFnBA1nkXymTBrPevHzDCPpcaGT9vaV/EIVlHJttJ1zOZh726xkmKoKRgFTGJQsuSM9A3M/L6M/:16455:0:99999:7:::
……………………/省略
user1:$6$pqFvLq/i$bXDdUqaydSp1jX8G4EqiHLinb/uWH7/SnZ7P.9WwPKwFgjon2SUpNnE4WfWkWiGTQAkJuoVDmcXTd8pyAWQR/.:16515:0:99999:7:::

第一段:     用戶名                                                                         

第二段:     密碼(!!表示密碼爲空, $6$表示爲sha-512加密, $1$表示爲md5加密, $2$表示Blowfish加密, $5$表示爲sha-256加密,*表示用戶被鎖定)    

第三段:     上次更改密碼的日期, 表示從1970年1月1日到密碼更改時間                           

第四段:      過多少天更改密碼,0爲不限制時間.                                               

第五段:      99999表示密碼永不過時.                                                        

第六段:      7爲提示過多少天密碼過時                                                       

2、 建立/刪除/修改用戶和用戶組, 爲用戶設置密碼

       1. useradd/groupadd:     建立用戶、用戶組;

[root@Centos1 ~]# useradd linux

               經常使用選項:    

                              ①。 -d:     指定家目錄;

[root@Centos1 ~]# useradd -d /home/1 user1
[root@Centos1 ~]# tail -1 /etc/passwd
user1:x:500:500::/hom

                              ②。 -u:     指定用戶UID;

[root@Centos1 ~]# useradd -u 520 user2
[root@Centos1 ~]# tail -2 /etc/passwd | grep user2
user2:x:520:520::/home/user2:/bin/bash

                              ③。 -g:     指定用戶GID;

[root@Centos1 ~]# groupadd linux                         #建立用戶組
[root@Centos1 ~]# tail -1 /etc/group
linux:x:521:
[root@Centos1 ~]# tail -3 /etc/group
user1:x:500:
user2:x:520:
linux:x:521:
[root@Centos1 ~]# useradd -g 521 user4
[root@Centos1 ~]# id user4
uid=521(user4) gid=521(linux) groups=521(linux)

                          ④。 -G:     指定用戶附加組;

[root@Centos1 ~]# useradd -G 520 user5
[root@Centos1 ~]# id user5
uid=522(user5) gid=522(user5) groups=522(user5),520(user2)

                          ⑤。 -M:     不建立家目錄;

[root@Centos1 ~]# useradd -M user6
[root@Centos1 ~]# ls -l /home/ | grep user6

                          ⑥。  -s:      指定用戶shell;

[root@Centos1 ~]# useradd -s /bin/nologin user7
root@Centos1 ~]# tail -7 /etc/passwd | grep user7
user7:x:524:524::/home/user7:/bin/nologin

       2. userdel/groupdel:     刪除用戶、用戶組;

[root@Centos1 ~]# userdel user7

                          ①。  -r:      將用戶和家目錄一塊刪除;

[root@Centos1 ~]# userdel -r user4

                          ②。 刪除組;

[root@Centos1 ~]# groupdel  user4

        3. usermod:     修改用戶信息;

[root@Centos1 ~]# id passwd
uid=1110(passwd) gid=500(user1) groups=500(user1),520(user2),521(linux)
[root@Centos1 ~]# usermod -u 11111 passwd
[root@Centos1 ~]# id passwd
uid=11111(passwd) gid=500(user1) groups=500(user1),520(user2),521(linux)
ps:     usermod不只能夠修改用戶的uid,還能夠修改gid,登陸shell,家目錄等......

        4. passwd:     爲用戶設置密碼;

[root@Centos1 ~]# passwd user1
[root@Centos1 ~]# echo "123" | passwd --stdin user1

3、 鎖定/解除用戶

[root@Centos1 ~]# passwd -l user1           #鎖定用戶
[root@Centos1 ~]# passwd -u user1          #解鎖用戶
[root@Centos1 ~]# passwd -S user1          #查看用戶是否鎖定

4、 利用mkpasswd生成隨機密碼串

[root@Centos1 ~]# yum -y install expect
選項: 
              -l:     密碼的長度, 默認爲9, 最低爲7        
              -d:     密碼中包含幾個數字, 默認值爲2       
              -c:     密碼中包含幾個小寫字母, 默認值爲2    
              -C:     密碼中包含幾個大寫字母,默認值爲2     
              -s:     密碼中包含幾個特殊字符,默認值爲2    
              -p:     對程序進行加密           
[root@Centos1 ~]# mkpasswd -l 10 -d 3 -c 1 -C 1 -s 1
o8xu7{Kz8t

5、 用戶身份切換

       1. su與su -區別;

[root@Centos1 ~]# su user1
[user1@Centos1 root]$ echo $PATH
/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/sbin
[user1@Centos1 root]$ ls -la
ls: cannot open directory .: Permission denied
[root@Centos1 ~]# su - user1
[user1@Centos1 ~]$ ls -a
.  ..  .bash_logout  .bash_profile  .bashrc
[user1@Centos1 ~]$ echo $PATH
/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/1/bin
ps: 能夠看到,加-與不加-的區別在於環境變量不同。 環境變量不同,致使某寫內置/外置命令不能執行

       2. 以user1用戶執行命令;

[root@Centos1 ~]# su - user1
[user1@Centos1 ~]$ su -c "echo aa > /tmp/a.txt" - user1
Password:   輸入user1的密碼
[user1@Centos1 ~]$ cat /tmp/a.txt
aa

       3. 給普通命令受權命令;

[root@Centos1 ~]# visudo
## Allow root to run any commands anywhere
root    ALL=(ALL)       ALL                                    #找到此行
第一段:     指定用戶;                                                                     
第二段:     來源IP,ALL爲全部IP。 (ALL)爲臨時擁某個用戶的執行身份;    
第三段:     受權哪些命令, 填寫絕對路徑;

                              ①。將root用戶受權/bin/ls命令給普通用戶user1使用;

[root@Centos1 ~]# su - user1                                 
[user1@Centos1 ~]$ ls -l /root/                             
ls: cannot open directory /root/: Permission denied        
執行ls查看/root目錄沒權限;                                                       
[user1@Centos1 ~]$ su - root
[root@Centos1 ~]# visudo
## Allow root to run any commands anywhere
root    ALL=(ALL)       ALL                                      #找到此行
user1   ALL=(root)      /bin/ls, /bin/mv                         #增長此行
[root@Centos1 ~]# su - user1
[user1@Centos1 ~]$ sudo /bin/ls /root
[sudo] password for user1:                                       #輸入user1的密碼
2.txt            ceshi       drbd-8.4.3.tar.gz  install.log.syslog
anaconda-ks.cfg  drbd-8.4.3  install.log

       4. 不容許root登陸, 受權給普通用戶切換root用戶不須要密碼;

[root@Centos1 ~]# vim /etc/ssh/sshd_config
   PermitRootLogin no      #去掉前面的"#",yes改成no
[root@Centos1 ~]# visudo
user1   ALL=(root)      NOPASSWD: /bin/su     #增長此行.. NOPASSWD表示切換時不輸入密碼
[root@Centos1 ~]# su - user1
[user1@Centos1 ~]$ sudo su -
相關文章
相關標籤/搜索