用戶管理
UID
????????用戶id? 相當(dāng)用戶身份證號(hào)
用戶分類
????????root ? ? UID=0
????????普通用戶
????????虛擬用戶(無(wú)法直接登錄系統(tǒng))
?????????????? 保證進(jìn)程/服務(wù)正常運(yùn)行
核心文件或目錄
文件
??????????/etc/passwd?? 用戶信息
??????????/etc/shadow?? 存放用戶密碼信息
??????????/etc/group????? 用戶組信息
??????????/etc/gshadow用戶組密碼信息
?????????常用的命令解釋器
??????????????? /bin/bash(/bin/sh? 軟連接)??? #CentOS??正常用戶
??????????????? /sbin/nologin????????????????? #CentOS?? 虛擬用戶/傀儡用戶
??????????????? /bin/dash????????? ????????????#ubuntu
??????????????? /bin/csh??? /bin/tcsh??????????? #unix
目錄
????????????? /etc/skel??????? 新用戶家目錄的樣子
?????????????????? skel下文件?
???????????????????????????? .bash_logout??
???????????????????????????? .bash_profile?? 對(duì)某個(gè)用戶生效的環(huán)境變量???
???????????????????????????? .bashrc??????? 對(duì)某個(gè)用戶生效的別名
添加新用戶的過(guò)程
????????????????????? useradd----系統(tǒng)創(chuàng)建家目錄----系統(tǒng)修改權(quán)限所有者------將/etc/skel下所有內(nèi)容復(fù)制到家目錄下
? ? ? ? ? ? 故障
??????????????????????? 命令行提示符:-bash-4.2$ 或 -bash-4.1$
?????????????????????????????????????????????????當(dāng)前系統(tǒng)bash的版本?? bash --version,命令解釋器為4.2版本
??????????????????????? 原因:當(dāng)前用戶的環(huán)境變量的配置文件.bash_profile 與 .bashrc 被刪除
??????????????????????? 解決方法:復(fù)制/etc/skel下文件到當(dāng)前用戶家目錄? cp /etc/skel/.bash*? ~
用戶管理的命令
操作用戶
????????????useradd???????? 添加用戶
???????????????????????????? -u?? 指定UID
???????????????????????????? -s??? 指定用戶使用的命令解釋器
???????????????????????????? -M? 創(chuàng)建用戶時(shí)不創(chuàng)建家目錄
???????????????????????????? -c??? 指定用戶的說(shuō)明信息
???????????????????????????? -g??? 指定用戶組?? 主要組(gid)
???????????????????????????? -G??? 指定多個(gè)用戶組(groups)
????????????? passwd?????? 設(shè)置用戶密碼
--stdin?非交互式設(shè)置密碼?? 從管道獲取密碼? (只能root用戶使用)
?????????????????????????????????????????? echo123456 |passwd --stdin? oldboy
????????????? userdel??? 刪除用戶,默認(rèn)不會(huì)刪除用戶家目錄
? ? ? ? ? ? ? ? ? ? ? ? ? ? ?-r?? 刪除用戶和用戶家目錄
????????????????????????????? 刪除用戶替代方法?? 在/etc/passwd中給用戶前加上#
???????????????? su????????????? 切換用戶
?????????????????????? -??? (切換用戶時(shí)更新用戶的環(huán)境變量)
?????????????????????? -c????? 切換到某個(gè)用戶執(zhí)行命令重父,執(zhí)行命令后自動(dòng)退出
???????????????????????????????????? su -? oldboy?-c? whoami
???????????????? usermod???? 修改用戶的信息
??????????????????????????????? -g? 指定用戶組????? 主要組(gid)
??????????????????????????????? -G? 指定多個(gè)用戶組,附加組(groups)
??????????????????????????????? -u? 指定UID
??????????????????????????????? -s ??指定用戶使用的命令解釋器
? ? ? 用戶組 ? ? ? ?/etc/group ? 用戶組信息文件
? ? ? ? ? ? ? ? groupadd ??
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? -g ? ? gid:指定組ID號(hào)聋涨。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? -o ? ? ?允許組ID號(hào),不必惟一。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?-r ? ? ?加入組ID號(hào)憎账,低于499系統(tǒng)賬號(hào)趴捅。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?-f ? ? ?加入已經(jīng)有的組時(shí)垫毙,發(fā)展程序退出。
? ? ? ? ? ? ? ? groupdel ?
? ? ? ? ? ? ? ? groupmod
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?-g ? ? 修改既有的 GID 數(shù)字驻售;
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?-n ? ? ?修改既有的組名
查詢用戶
???????????????????? w?????????????? 顯示誰(shuí)登錄了系統(tǒng)在干什么? 查詢負(fù)載
???????????????????????????? uptime? 查詢負(fù)載
???????????????????????????? who????? 顯示登錄信息?????????
????????????????????? id????????????? 顯示uid? gid
????????????????????? whoami???? 當(dāng)前用戶名
??? ??????????????????last??????????? 用戶的登錄信息? 誰(shuí)什么時(shí)候? 從哪里登錄? 什么時(shí)候退出
????????????????????? lastlog??????? 顯示所有用戶最近一次的登錄時(shí)間
保護(hù)用戶密碼
???????????????? 設(shè)置復(fù)雜密碼“" _ -
???????????????? 記錄密碼工具?? keepass
???????????????? 批量生成多個(gè)用戶并隨機(jī)生成密碼? (生成命令再測(cè)試一個(gè)露久,成功后再交給bash運(yùn)行)
? ? ? ? 批量生成stu01-03三個(gè)用戶并將密碼設(shè)置為123456
echo stu{01..3}|xargs -n1|sed -r?'s#(.*)#useradd \1 ;echo 123456|passwd --stdin \1#g' |bash
echo stu{01..3}|xargs -n1|sed -r?'s#&#useradd & ;echo 123456|passwd --stdin &#g' |bash
批量生成多個(gè)用戶并隨機(jī)生成密碼
echo stu{04..6}|xargs -n1 |sed
's#.*#useradd &;p=$(date +%N);echo $p|passwd --stdin &;echo $p?&>>/p.txt#g'
useradd stu04;p=$(date +%N);echo $p|passwd --stdin stu04;echo $p?stu04 >>/p.txt
useradd stu05;p=$(date +%N);echo $p|passwd --stdin stu05;echo $p?stu05 >>/p.txt
useradd stu06;p=$(date +%N);echo $p|passwd --stdin stu06;echo $p?stu06 >>/p.txt
???????????最后加上bash執(zhí)行
????????????? bash?? 命令解釋器???????? |bash?運(yùn)行管道前的命令
&在sed中s###g里位于第二個(gè)#號(hào)之間代表第一個(gè)#號(hào)之間的所有內(nèi)容
生成隨機(jī)密碼
????????????? 1. tr+head???????? /dev/urandom?
???????????????????tr -cd 'a-zA-Z0-9' </dev/urandom
????????????? 2.date +md5sum/sha512sum +head
?????????????????? date +%N | md5sum |head -c8
?? ? ? ? ? ? 3.echo $((RANDOM+數(shù)字)) | head-c5????????? RANDOM? 隨機(jī)生成數(shù)字
?????????????? 4. uuidgen??? 生成隨機(jī)的uuidgen
?????????????? 5.mkpasswd?
?????????????? 6.openssl? rand?-base64? 8
?????????????? 7. strings? 將字符轉(zhuǎn)換為人類可讀
string /dev/urandom | tr -cd 'a-zA-Z0-9' | head -c8
?????????????? 8.gpg --gen-random -armor 1 12
suid???對(duì)所有用戶給查看的命令的權(quán)限
sudo??可以讓普通用戶在執(zhí)行某個(gè)或某幾個(gè)命令時(shí)臨時(shí)成為root
??????sudo -l 查看當(dāng)前用戶有什么特權(quán)?? (需輸入密碼)(5分鐘的記住密碼緩存) -k清除緩存
??????????????? With great power comes greatresponsibility能力越大責(zé)任越大
?????????編輯??? visodu ==== vi/etc/sudoers
給用戶授權(quán)
?????????配置?? (在100行以下添加)?? 用戶名?? ALL=(ALL)??命令(絕對(duì)路徑多個(gè)命令以逗號(hào)空格隔開(kāi))
給用戶組授權(quán)
? ? ? ? ? ? ? ?(107行下)組前面加%
?????????使用??? sudo +命令?? (執(zhí)行)?
???????常用功能
????????????? 給用戶配置sudo可以查看系統(tǒng)日志文件
??????????????????? /bin/grep?
??????????????????? /bin/head
??????????????????? /bin/tail
??????????????????? /bin/less
??????????????????? /bin/more
??????????????????? /bin/cat
????????????? 給用戶配置可以運(yùn)行/bin下面所有命令但是不能使用vi和su
??????????????????? /bin/*, !/bin/vi, !/bin/su
????????????? 給用戶配置可以運(yùn)行系統(tǒng)中所有命令并且使用sudo不需要再輸入用戶的密碼
??????????????????? NOPASSWD: ALL
$(())雙括號(hào)內(nèi)可計(jì)算
column??-t?? 過(guò)濾內(nèi)容顯示時(shí)對(duì)齊
history??-c??? 清空命令的歷史紀(jì)錄