day9-用戶管理2

1.用戶設置密碼、修改密碼

  1. 為新用戶添加密碼{只能是root} {密碼盡可能的復雜} [0-9][a-Z][a- Z] [!@#$%^&]
[root@localhost ~]# passwd oldboy
Changing password for user oldboy.
New password: 
BAD PASSWORD: The password is a palindrome
Retype new password: 
passwd: all authentication tokens updated successfully.

passwd --stdin 非交互式設定密碼

[root@localhost ~]# echo "123" | passwd --stdin oldboy
Changing password for user oldboy.
passwd: all authentication tokens updated successfully.

批量創(chuàng)建用戶,并設定固定密碼

[root@localhost ~]# cat user.sh
for i in {1..100}
do
    useradd test$i
    echo "123456" | passwd --stdin test$i
done
  1. 為用戶變更密碼
  • 1.為自己修改密碼 (ok) 直接使用passwd 注意密碼需要復雜一
    點,并達到8位
  • 2.為別人修改密碼 (root) passwd username
  • 3.密碼怎么才算復雜
 1.使用$RANDOM | md5sum創(chuàng)建隨機數組,可做密碼使用*
[root@localhost ~]# echo $RANDOM | md5sum |cut -c 5-15
3e7ad845347

2.mkpasswd生成隨機字符串, -l設定密碼長度,-d數子,-c小寫字母,- C大寫字母,-s特殊字符
[root@localhost ~]# mkpasswd -l 10 -d 2 -c 3 -C 3 -s 2

2.用戶的創(chuàng)建流程

*1.在用戶創(chuàng)建的過程需要參考 /etc/login.defs和/etc/default/useradd 這兩個文件,默認參考.

2.如果在創(chuàng)建用戶時指定了參數,則會覆蓋 (默認 /etc/login.defs 和/etc/default/useradd)

[root@localhost ~]# grep "^[a-Z]" /etc/login.defs
MAIL_DIR    /var/spool/mail #創(chuàng)建的郵箱所在的位置
PASS_MAX_DAYS   99999 #密碼最長使用的天數
PASS_MIN_DAYS   0 #密碼最短時間的天數
PASS_MIN_LEN    5 #密碼的長度
PASS_WARN_AGE   7 #密碼到期前7天警告
UID_MIN                  1000 #uid 從1000開始
UID_MAX                 60000 #uid從6w結束
SYS_UID_MIN               201 #系統(tǒng)用戶的uid 從201 開始
SYS_UID_MAX               999 #系統(tǒng)用戶的uid最大到 
999
#GID與UID一致
GID_MIN                  1000
GID_MAX                 60000
SYS_GID_MIN               201
SYS_GID_MAX               999
CREATE_HOME yes #給用戶創(chuàng)建家目錄,創(chuàng)建 在/home
UMASK           077
USERGROUPS_ENAB yes
ENCRYPT_METHOD SHA512 

[root@localhost ~]# cat /etc/default/useradd # useradd defaults file
# useradd defaults file
GROUP=100 #當用戶創(chuàng)建用戶時不指定組,并 且/etc/login.defs中USERGROUPS_ENAB為no時, 用戶默認創(chuàng)建給分 配一個gid為100的組.
HOME=/home #用戶默認的家目錄
INACTIVE=-1 #用戶不失效
EXPIRE= #過期時間
SHELL=/bin/bash #默認登錄shell
SKEL=/etc/skel #默認用戶拷貝的環(huán)境變量
CREATE_MAIL_SPOOL=yes #創(chuàng)建郵箱

3.用戶組管理

用戶組

group配置文件

gshadow配置文件
  1. 創(chuàng)建組 groupadd [-g GID] groupname
[root@localhost ~]# groupadd zhuzhu
[root@localhost ~]# groupadd -g 6666 gougou
[root@localhost ~]# grep "6666" /etc/group
gougou:x:6666:

#創(chuàng)建系統(tǒng)組
[root@localhost ~]# groupadd -r maomao
[root@localhost ~]# grep "maomao" /etc/group
maomao:x:993:
  1. 修改組 groupmod
#-g 修改組gid
[root@localhost ~]#groupmod -g 7777 gougou
[root@localhost ~]# grep "7777" /etc/group
gougou:x:7777: 

#-n 修改組名
[root@localhost ~]#groupmod gougou -n gg
[root@localhost ~]# grep "7777" /etc/group
gg:x:7777:
  1. 刪除組 如果要刪除基本組,需要先刪除基本組中的用戶才可以刪除 該組。
#先創(chuàng)建用戶、用戶組、附加組
[root@localhost ~]# groupadd dawang
[root@localhost ~]# groupadd laowang
[root@localhost ~]# useradd xiaowang
[root@localhost ~]# useradd gb -g laowang
[root@localhost ~]# usermod xiaowang -G laowang,dawang
[root@localhost ~]# id xiaowang
uid=10001(xiaowang) gid=10004(xiaowang) groups=10004(xiaowang),10002(dawang),10003(laowang)
刪除

4.用戶提權

  • su 切換用戶 如果切換用戶,需要知道用戶的密碼,不是很安全
  • sudo 提權( root事先分配好權限 --> 關聯用戶 ) 安全 方便 但是復雜
基本概念
  • 1.交互式 需要不停的交互
  • 2.非交互式
  • 3.登錄式shell 需要用戶名以及密碼開啟bash窗口
  • 4.非登錄式shell 不需要用戶名和密碼即可開啟bash窗口
su - username 屬于登錄式shell 會加載全部的環(huán)境變量 
su username 屬于非登錄式shell 會加載部分環(huán)境變量(很有 可能就會出現錯誤清空)

PS:
1.su 切換有缺點
    *需要知道用戶對應的
    *說明不是很安全
2.sudo提權
   *預先分配好權限
   *在關聯對應的用戶
  1. 提升的權限太大,能否有辦法限制僅開啟某個命令的使用權限?其 他命令不允許?

第一種方式:使用sudo中自帶的別名操作, 將多個用戶定義成一個組

[root@localhost ~]# visudo
*1.使用sudo定義分組,這個系統(tǒng)group沒什么關系
User_Alias OPS = oldboy,oldgirl User_Alias DEV = alex

*2.定義可執(zhí)行的命令組,便于后續(xù)調用
Cmnd_Alias NETWORKING = /sbin/ifconfig, /bin/ping
Cmnd_Alias SOFTWARE = /bin/rpm, /usr/bin/yum
Cmnd_Alias SERVICES = /sbin/service, /usr/bin/systemctl start Cmnd_Alias STORAGE = /bin/mount, /bin/umount
Cmnd_Alias DELEGATING = /bin/chown, /bin/chmod, /bin/chgrp Cmnd_Alias PROCESSES = /bin/nice, /bin/kill, /usr/bin/kill, /usr/bin/killall

*3.使用sudo開始分配權限,并驗證
OPS ALL=(ALL)
NETWORKING,SOFTWARE,SERVICES,STORAGE,DELEGATING,PROCES SES
DEV ALL=(ALL) SOFTWARE,PROCESSES

第二種方式:使用groupadd添加組,然后給組分配sudo的權限,如果有新
用戶加入,直接將用戶添加到該組.

1.添加兩個真實的系統(tǒng)組, group_dev group_op
[root@localhost ~]# groupadd group_dev
[root@localhost ~]# groupadd group_op

2.添加兩個用戶,group_dev(user_a user_b) group_op(user_c user_d)
[root@localhost ~]# groupadd group_dev
[root@localhost ~]# groupadd group_op
[root@localhost ~]# ^C
[root@localhost ~]# useradd user_a -G group_dev
[root@localhost ~]# useradd user_b -G group_dev
[root@localhost ~]# useradd user_c -G group_op
[root@localhost ~]# useradd user_d -G group_op

3.用戶添加密碼
[root@localhost ~]# echo "1" | passwd --stdin user_a
Changing password for user user_a.
passwd: all authentication tokens updated successfully.
[root@localhost ~]# echo "1" | passwd --stdin user_b
Changing password for user user_b.
passwd: all authentication tokens updated successfully.
[root@localhost ~]# echo "1" | passwd --stdin user_c
Changing password for user user_c.
passwd: all authentication tokens updated successfully.
[root@localhost ~]# echo "1" | passwd --stdin user_d
Changing password for user user_d.
passwd: all authentication tokens updated successfully.
[root@localhost ~]# 

4.在sudo中配置規(guī)則
[root@localhost ~]# visudo
Cmnd_Alias NETWORKING = /sbin/ifconfig, /bin/ping
Cmnd_Alias SOFTWARE = /bin/rpm, /usr/bin/yum
Cmnd_Alias SERVICES = /sbin/service, /usr/bin/systemctl start
Cmnd_Alias STORAGE = /bin/mount, /bin/umount
Cmnd_Alias DELEGATING = /bin/chown, /bin/chmod, /bin/chgrp Cmnd_Alias PROCESSES = /bin/nice, /bin/kill, /usr/bin/kill, /usr/bin/killall
%group_dev ALL=(ALL) SOFTWARE
%group_op ALL=(ALL) SOFTWARE,PROCESSES

5.檢查sudo是否配置有錯 
[root@localhost ~]# visudo -c /etc/sudoers: parsed OK 

6.檢查user_a,和user_d的sudo權限
[user_a@www.oldboyedu.com ~]$ sudo -l 
User user_a may run the following commands on www: 
(ALL) /bin/rpm, /usr/bin/yum 
[user_d@www.oldboyedu.com ~]$ sudo -l 
User user_d may run the following commands on www: 
(ALL) /bin/rpm, /usr/bin/yum, 
/bin/nice, /bin/kill, /usr/bin/kil

今日總結

  1. passwd設定密碼
  • 1.為新用戶添加密碼 只有root權限才可以
  • 2.為用戶變更密碼也只有root才可以
  • 3.普通用戶只能修改自己的密碼,..無法修改其他人的密碼
  • 4.密碼的修改方式有兩種,一種是交互式 非交互
  1. 用戶的創(chuàng)建流程
  • 在用戶創(chuàng)建的過程需要參考 /etc/login.defs和/etc/default/useradd 這兩個文件,默認參考.
  1. 組的基本管理
  • 1.創(chuàng)建組 groupadd
  • 2.修改組 groupmod
  • 3.刪除組 groupdel
  1. su 和 su -
  • 加載的環(huán)境變量不一樣
  1. sudo提權
  • 1.有管理人員來分配權visudo | visduo -c 檢查語法
  • 2.普通用戶僅需要檢查自身的sudo權限即可 sudo -l
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內容