6.如何為用戶設(shè)定密碼,又如何修改密碼 畴栖?
7.用戶的創(chuàng)建流程找筝?[擴展了解]
8.用戶組如何管理蹈垢?
9.普通用戶無權(quán)限怎么辦?切換身份or提權(quán)袖裕?
- su切換用戶
- sudo提權(quán)
10.自行注冊一個域名
1.為用戶添加密碼[root才能執(zhí)行]
1.為新用戶添加密碼{只能是root}{密碼盡可能的復(fù)雜} [0-9] [a-Z] [!@#$%^&*]
[root@oldboyedu ~]# passwd root Changing password for user root. New password: BAD PASSWORD: The password >is shorter than 8 characters Retype new password: passwd: all authentication tokens >updated successfully. 1.passwd --stdin 非交互式設(shè)定密碼 [root@oldboyedu ~]# echo >"123456"|passwd --stdin root Changing password for user root. passwd: all authentication tokens >updated successfully. 2.批量創(chuàng)建用戶曹抬,并設(shè)定固定密碼 [root@oldboyedu ~]# cat user.sh for i in {1..100} do useradd test$i echo "123456" | passwd --stdin >test$i done
2.為用戶變更密碼
2.為用戶變更密碼
- 1.為自己修改密碼(OK)直接使用passwd注意密碼需要復(fù)雜,長度為8位
- 2.為別人修改密碼(root)passwd username
3.密碼怎么才算復(fù)雜
[root@oldboyedu ~]# echo >$RANDOM |md5sum|cut -c 1-10 f96971aa72 2.mkpasswd 生成隨機字符串急鳄,-l設(shè)定密碼長度谤民,-d數(shù)字,-c小寫字母疾宏,-C大寫字母张足,-s特殊字符 [root@oldboyedu ~]# echo >$RANDOM |md5sum|cut -c 1-10 f96971aa72 3.lastpass 在線、支持Windows坎藐、macOS为牍、iPhone、Android 瀏覽器插件
總結(jié):
1.為新用戶添加密碼岩馍,只有root權(quán)限才可以
2.為用戶變更密碼也只有root才可以
3.普通用戶只能修改自己的密碼碉咆,無法修改其他人的密碼
4.密碼的修改方式有兩種,一種是交互式兼雄,一種是非交互式
4.用戶的創(chuàng)建流程
用戶的創(chuàng)建過程需要參考/etc/login.defs和/etc/default/useradd這兩個文件
如果在創(chuàng)建用戶時指定了參數(shù)吟逝,則會覆蓋(/etc/login.defs和/etc/default/useradd)這兩個文件[root@oldboyedu ~]# grep "^[a-Z]" >/etc/login.defs MAIL_DIR /var/spool/mail 創(chuàng)建的郵箱所在位置 PASS_MAX_DAYS 99999 密碼最長使用的天數(shù) PASS_MIN_DAYS 0 密碼最短時間的天數(shù) PASS_MIN_LEN 5 密碼的長度 PASS_WARN_AGE 7 密碼到期前7天警告 UID_MIN 1000 uid 從1000開始 UID_MAX 60000 uid從6w結(jié)束 SYS_UID_MIN 201 系統(tǒng)用戶的uid 從201開始 SYS_UID_MAX 999 系統(tǒng)用戶的uid最大到999 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@oldboyedu ~]# cat >/etc/default/useradd # useradd defaults file GROUP=100 當(dāng)用戶創(chuàng)建用戶時不指定組,并且/etc/login.defs中USERGROUPS_ENAB為no時, 用戶默認(rèn)創(chuàng)建給分配一個gid為100的組. HOME=/home 用戶默認(rèn)的家目錄 INACTIVE=-1 用戶不失效 EXPIRE= 過期時間 SHELL=/bin/bash 默認(rèn)登錄shell SKEL=/etc/skel 默認(rèn)用戶拷貝的環(huán)境變量 CREATE_MAIL_SPOOL=yes 創(chuàng)建郵箱
5.用戶組的管理
1./etc/group 配置文件解釋如下圖
2./etc/shadow 配置文件解釋如下圖
1.創(chuàng)建組groupadd [-g GID] groupname[root@oldboyedu ~]# groupadd >zhuzhu [root@oldboyedu ~]# groupadd -g >6666 gougou [root@oldboyedu ~]# grep "6666" >/etc/group gougou:x:6666: 創(chuàng)建系統(tǒng)組 [root@oldboyedu ~]# groupadd ->maomao [root@oldboyedu ~]# grep >"maomao" /etc/group maomao:x:995:
2.修改組groupmod
-g 修改組gid [root@oldboyedu ~]# groupmod -g >7777 gougou [root@oldboyedu ~]# grep "7777" >/etc/group gougou:x:7777: -n 修改組名 [root@oldboyedu ~]# groupmod >gougou -n gg [root@oldboyedu ~]# grep "7777" >/etc/group gg:x:7777:
3.刪除組,如果要刪除基本組赦肋,需要先刪除基本組中的用戶才可以刪除該組
[root@oldboyedu ~]# groupadd >dawang [root@oldboyedu ~]# groupadd >laowang [root@oldboyedu ~]# useradd >xiaowang [root@oldboyedu ~]# useradd gb ->g laowang [root@oldboyedu ~]# usermod >xiaowang -G laowang,dawang [root@oldboyedu ~]# id xiaowang uid=1001(xiaowang) >gid=7780(xiaowang) >groups=7780(xiaowang),7778(daw>ang),7779(laowang) [root@oldboyedu ~]# userdel -r >xiaowang [root@oldboyedu ~]# groupdel >dawang [root@oldboyedu ~]# groupdel >laowang groupdel: cannot remove the primary >group of user 'gb' [root@oldboyedu ~]# userdel -r gb [root@oldboyedu ~]# groupdel >laowang
6.用戶提權(quán)
- su 切換用戶 如果切換用戶,需要知道用戶的密碼,不是很安全
- sudo 提權(quán)( root事先分配好權(quán)限 --> 關(guān)聯(lián)用戶 ) 安全 方便 但是復(fù)雜
基本概念
- 1.交互式 需要不停的交互
- 2.非交互式
- 3.登錄式shell 需要用戶名以及密碼開啟bash窗口
- 4.非登錄式shell 不需要用戶名和密碼即可開啟bash窗口
su - username屬于登陸式shell块攒,su username屬于非登陸式shell励稳,區(qū)別在于加載的環(huán)境變量不一樣。
#su - username 屬于登錄式shell 會加載全部的環(huán)境變量
#su username 屬于非登錄式shell 會加載部分環(huán)境變量(很有
可能就會出現(xiàn)錯誤清空)
- su 切換有缺點
(1)需要知道用戶對應(yīng)的密碼
(2)說明不是很安全- sudo提權(quán)
(1)預(yù)先分配好權(quán)限
(2)在關(guān)聯(lián)對應(yīng)的用戶提升的權(quán)限太大囱井,能否有辦法限制僅開啟某個命令的使用權(quán)限驹尼?其他命令不允許?
第一種方式:使用sudo中自帶的別名操作庞呕,將多個用戶定義成一個組
[root@oldboyedu ~]# visudo 1.使用sudo定義分組新翎,這個系統(tǒng)group沒什么關(guān)系 User_Alias OPS = oldboy,oldgirl User_Alias DEV = alex 2.定義可執(zhí)行的命令組,便于后續(xù)調(diào)用 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開始分配權(quán)限 OPS ALL=(ALL) NETWORKING,SOFTWARE,SEVICES,STORAGE,DELEGATING,PROCES SES DEV ALL=(ALL) SOFTWARE,PROCESSES 4.登錄對應(yīng)的用戶使用sudo -l 驗證權(quán)限 第二種方式:使用groupadd添加組,然后給組分配sudo的權(quán)限,如果有新用戶加入,直接將用戶添加到該組
1.添加兩個真實的系統(tǒng)組住练,group_dev group_op
[root@oldboyedu ~]# groupadd >group_dev [root@oldboyedu ~]# groupadd >group_op
2.添加兩個用戶地啰,group_dev(user_a user_b)
group_op(user_c user_d)[root@oldboyedu ~]# useradd >user_a -G group_dev [root@oldboyedu ~]# useradd >user_b -G group_dev [root@oldboyedu ~]# useradd >user_c -G group_op [root@oldboyedu ~]# useradd >user_d -G group_op
3.添加密碼
[root@oldboyedu ~]# echo "1" | passwd --stdin user_a [root@oldboyedu ~]# echo "1" | passwd --stdin user_b [root@oldboyedu ~]# echo "1" | passwd --stdin user_c [root@oldboyedu ~]# echo "1" | passwd --stdin user_d
4.在sudo中配置規(guī)則
[root@oldboyedu ~]# 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@oldboyedu ~]# visudo -c /etc/sudoers: parsed OK
6.檢查user_a,和user_d的sudo權(quán)限
[user_a@oldboyedu ~]$ sudo -l User user_a may run the following >commands on www: (ALL) /bin/rpm, /usr/bin/yum [user_a@oldboyedu ~]$ 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