您好,登錄后才能下訂單哦!
用戶是必須的嗎?
用戶:標識計算機上的資源的歸屬
密碼:對用戶的身份做驗證
登錄的時候計算機如何做身份驗證?
在計算機內部預先有一個數據庫,在數據庫中保存用戶名和對應的密碼,用戶登錄時候通過比對數據庫來檢查用戶和密碼是否正確
什么是數據庫?
用來保存數據的文件,數據庫管理軟件(oracle mysql sqlserver db2)
保存賬號和密碼的數據庫文件
/etc/passwd <<<< 保存系統中的全部的用戶名
/etc/shadow <<<< 保存各個用戶的密碼
/etc/group <<<< 保存系統中的全部用戶組名
/etc/gpasswd <<<< 保存各個用戶組的密碼
windows下新建用戶
計算機-管理-本地用戶和組-用戶-新建 (用戶名 密碼)
計算機-管理-本地用戶和組-組-新建(用戶組)添加用戶
windows下有用戶和組,linux中同樣有用戶和,linux中一個用戶也可以同屬多個組,100個用戶授權的話需要授權100次,直接把用戶加到組中,直接授權組
用戶和用戶組
用戶:登錄系統的用戶名
用戶組:多個用戶的合集
用戶組的作用
方便為多個用戶批量授權
用戶身份標識
計算機為每一個用戶設置一個唯一的數字,當計算機識別用戶的時候,通過
該數字來識別的,數字就是UID(User IDentifier)
用戶組身份標識
GID
注意:為用戶賦權的時候,其實是針對uid賦權的
例子:zs--uid=601
賦權:zs可以訪問文件a.txt
本質:讓uid為601的用戶可以訪問a.txt
/etc/passwd文件詳解
cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
文件的作用
這個文件中保存了系統中的全部用戶,每行是一個用戶
每個用戶的信息包括7部分,如下
第一段:用戶名
第二段:用戶密碼占位符,為了安全將密碼放在另外一個文件中
(/etc/shadow)
第三段:用戶的UID
第四段: 用戶所在組的GID(該組是用戶的基本組)
第五段:用戶的描述信息(可以隨便寫)
第六段:用戶的家目錄
第七段:用戶的shell類型
常見的shell類型
1:/bin/bash <<<< 默認是該shell的時候,可以登錄系統
2:/sbin/nologin <<<該shell的用戶是無法登錄系統的
例子:統計有多少用戶
[root@localhost ~]# cat /etc/passwd | wc -l
例子:統計當前系統中有多少用戶可以登錄系統
[root@localhost ~]# grep "/bin/bash$" /etc/passwd
root:x:0:0:root:/root:/bin/bash
zhangsan:x:500:500::/home/zhangsan:/bin/bash
lisi:x:502:502::/home/lisi:/bin/bash
zs:x:503:503::/home/zs:/bin/bash
[root@localhost ~]# grep "/bin/bash$" /etc/passwd |wc -l
4
用戶的分類
管理員
UID 0
特點:默認只有一個,就是root root不受任何權限的約束
系統用戶
UID 1-499
特點:在安裝完成linux之后或者安裝了某個程序執行自動生成
的用戶,這類用戶是默認情況不能登錄系統的,這類用戶存在的
目的是為了運行特定的服務(程序、進程)
默認系統用戶也沒有家目錄
普通用戶
UID 500+
特點:需要運行命令 useradd來創建
普通用戶的權限非常小,通常僅僅能在自己的家目錄下進行操作
該類用戶的家目錄/home下和用戶同名的目錄
用戶組的分類
用戶的基本組(用戶的主組)
在/etc/passwd中第四個字段(GID)所指向的組就是用戶的基本組
用戶的附件組
注意:一個用戶可以屬于多個組。同一時間,只能有一個是主組,其他的就是附加組,除了主組之外的其他組就是該用戶的附加組
補充:在用useradd創建普通用戶的時候,默認情況下,會創建一個組,組名和用戶名
相同,該組默認就是該用戶的基本組(主組)
useradd bajie
tail /etc/passwd
cat /etc/group
補充:linux的文件屬性
屬主:文件的屬主(誰創建的文件,文件的屬主就是誰)
屬組:設置文件對于一個特定用戶組所具有的權限,這個組就是該文件的屬組
注意:屬組、屬主默認都只有一個
如果一個用戶既不是屬主,也不是屬組的組內用戶,那么該用戶就是"其他用戶"
三類用戶
屬主
屬組的組內用戶
其他用戶
創建用戶
useradd命令
作用:新建用戶
格式:useradd [options]用戶名
選項:
-c "string" 設置新用戶的描述信息
-d "/path/to/dir" 設置用戶的家目錄
-e 月月/日日/年年:指定賬號的過期日期
-g GID:指定用戶的主組ID號或名稱
-G GID,GID,GID:指定用戶的附加組的ID號或名稱
-m 在創建用戶的時候,如果用戶家目錄不存在,則自動創建(該選項
自動使用)
-M 不自動創建用戶家目錄
-r 創建系統用戶
用此選項創建的用戶有以下特點
1、默認用戶無家目錄
2、默認用戶uid<500
3、默認用戶的shell是bash
4、用戶可以登錄系統
-s shType:指定用戶的shell類型
常用的shell
/bin/bash
/sbin/nologin
-u UID 指定用戶的uid
-u UID -o 指定讓新用戶使用一個現有的ID
[root@localhost ~]# useradd -c "i am tom" tom
[root@localhost ~]# tail /etc/passwd
tom:x:505:505:i am tom:/home/tom:/bin/bash
useradd zhangsan 創建用戶zhangsan
tail /etc/passwd 查看用戶是否存在
id 用戶名 可以查看用戶是否存在
例子:新建用戶jerry,要求主組為gp01,附加組為gp02 和gp03
[root@localhost ~]# useradd -g gp01 -G gp02,gp03 jerry
[root@localhost ~]# tail /etc/passwd
[root@localhost ~]# tail /etc/group
例子:創建一個用戶kity,要求將其創建為系統用戶(無家目錄,uid<500,不能登錄系統)
useradd -r -s /sbin/nologin kity
例子:新建用戶2222并指定UID為600
useradd -u 600 2222
tail /etc/passwd
lll:x:507:509::/home/lll:/bin/bash
2222:x:600:600::/home/2222:/bin/bash
例子:新建用戶dog,要求其uid為660,主組為gp02,附加組為gp01,gp03,家目錄在/tmp/dog,指定shell類型為bin/bash
useradd -u 660 -g gp02 -G gp01,gp03 -d /tmp/dog -s /bin/bash dog
groupadd命令
作用:新建用戶組
格式:groupadd [選項]組名
選項:-g:指定用戶組的組id
[root@localhost ~]# groupadd gp01
[root@localhost ~]# groupadd gp02
[root@localhost ~]# groupadd gp03
[root@localhost ~]# tail /etc/group
gp01:x:506:
gp02:x:507:
gp03:x:508:
id命令
作用:顯示指定用戶的id信息
格式:id[選項]用戶名
選項:
-u:顯示用戶的UID
-g:顯示用戶的主組的ID
-G:顯示用戶的全部租的ID列表
id -g hhhhh
useradd
[root@localhost ~]# useradd -u 670 -g gp01 -Ggp02,gp03 hhhhh
[root@localhost ~]# id hhhhh
uid=670(hhhhh) gid=506(gp01) groups=506(gp01),507(gp02),508(gp03)
[root@localhost ~]# id -G hhhhh
506 507 508
[root@localhost ~]# id -g hhhhh
506
[root@localhost ~]# id -u hhhhh
670
passwd命令
作用:修改用戶的密碼(給用戶設置密碼)
格式:passwd[選項]用戶名
注意:
1:passwd 用戶 修改指定用戶的密碼
2:passwd 修改當前用戶的密碼
3:默認情況只有root用戶,才能修改其他用戶的密碼,普通用戶只能修改自己的密碼
選項:
-l:鎖定用戶(只有root才能進行鎖定操作)
-u:解鎖用戶
--stdin:從表示輸出來讀取內容,為用戶設置密碼(shell腳本中使用)
影子文件 /etc/shadow
作用:保存密碼
root:$6$HhL6V5BM$f29xu.FUgGnQqNtmqLGAyOy/fLMlF/JepDTfgoaqvC4.b7wiVmMc7i3HRDMVNdYQACOK9d3.wsgbZi1hPAEoj/:17997:0:99999:7:::
第一個字段:login name :系統中存在的用戶名
第二個字段:encrypted password :這里存放的是加密后的密碼(單向加密)
1:如果密碼段中出現!或*,那么就不能用此密碼登錄系統
2:如果密碼段為空,則表示空密碼,但是系統往往禁止使用空密碼登錄
3:如果密碼開頭是*,表示密碼被鎖定了
第三個字段:date of last password change:密碼上次修改的日期,這里所寫的是舉例
1970-1-1所經過的天數。
(1)如果該字段為0,會要求用戶在下次登錄的時候修改密碼
(2)該文件不能為空
第四個字段:minimum password age ,兩次修改密碼的最短時間
1、為空或者為0,表示沒有最短時間限制
第五個字段:maximum password age:密碼的最長有效期
1、如果字段為空或者99999,表示不限制最長有效期
2、如果最長時間小于最短時間,則禁止該用戶修改密碼
第六個字段:password warning period
指定在密碼到期前N天發送報警信息
1、如果為0,表示不會自動發送報警信息
2、在此期間內,用戶可以正常登陸系統
第七個字段:password inactivity period:密碼的非活動時間
1、在此期間登陸系統的時候,必須先修改密碼才能登陸系統。
2、如果在此階段仍然沒有修改密碼,那么就真的登陸不上了(找管理員處理)
第八個字段:account expiration date:用戶的過期日期
1、表示方式也是用距離1970.1.1所經過的天數
2、該字段為空,表示該字段永不過期
3、0表示用戶被禁用
第九個字段:reserved field :尚未使用
注意:
密碼過期:修改密碼可以繼續使用
賬戶過期:賬戶再也不能登錄系統
/etc/passwd <<<用戶基本信息 ,useradd新建用戶,用戶的信息保存在這里
/etc/group <<<用戶組信息,groupadd新建用戶組,用戶組的信息保存在這里。
/etc/shadow <<<用戶的密碼文件,passwd的時候,其實就是修改這個文件中的內容
userdel命令
作用:刪除用戶
格式: userdel [options] 用戶名
選項:
-r :在刪除用戶的同時,刪除用戶的家目錄
chsh命令
作用:修改用戶的shell類型
格式:chsh[-s type]username
(本質上就是修改/etc/passwd中的內容)
chfn命令
作用:修改用戶的注釋信息
usermod命令
作用:修改用戶的基本信息(/etc/passwd)
格式:usermod [options]username
選項:
-g GID:修改基本組
-G GID: 修改附加組
-u UID:修改uid值
-C string:修改用戶的描述
-d /path/dir:修改用戶的家目錄
-s SHELL:修改用戶的shell類型
-l newName:修改用戶的名稱
-L 鎖定用戶
-U 解鎖用戶
su命令
作用:切換用戶
格式:[options]用戶
選項
-[l]:切換用戶,并且繼承用戶的環境變量
-c 命令:在不切換用戶情況下,以指定用戶的身份來執行命令
注意:
su切換用戶后返回,需要執行命令exit
例子:以root身份執行mkdir命令
$ su - -c "mkdir /abc1" root
生產環境的注意事項:
在生產環境中,如果員工離職,通常是禁用用戶,在短時間內是不會刪除用戶的,更不會刪除用戶的家目錄以及家目錄中的文件。
禁用用戶
修改shell類型/sbin/nologin
在密碼前加上!
設置賬戶的過期時間為0(密碼文件的第八段)
權限
r:讀 可以執行cat、head、more、less等命令讀取文件中的內容,也可以用vi打開并讀取文件中的內容
w:寫 可以用vi或者重定向等操作文件中寫入內容或者修改其中的內容
x:執行 可以執行文件(把程序轉換成進程)
目錄的權限
r:可以執行ls命令來查看目錄下的文件有哪些
w:可以在目錄下執行文件的創建和刪除等操作
x:可以執行cd命令
用戶的角色有三類
屬主用戶(u)user
屬組用戶(g)group
其他用戶(o)other
全部用戶(a)all
文件的權限位一共有10位
第一位:表示文件的類型
-:一般文件
d:目錄
l:鏈接文件
s:套接字文件
第二到第四位:表示文件的屬主所具有的權限
第五到第七位:表示文件的屬組的組內用戶所具有的權限
第八到第十位,表示系統中的其他用戶所具有的權限
注意:
1、每一類用戶的權限的順序都是:讀權限、寫權限、執行權限
2、如果用戶有對應的權限,就出現字符,如果沒有對應的權限就用-表示。
例子:[root@localhost tmp]# ls -l 1.txt
-rw-r--r-- 1 root bin 149 Apr 16 18:22 1.txt
文件的屬主權限:可讀可寫
文件的屬組用戶權限:只讀權限
其他用戶的權限:只讀權限
chown命令
作用:修改文件的屬主
格式:chown userName [-R]fileNAme
選項: -R 在修改目錄的時候,將目錄和目錄中的文件都一并修改
例子:將文件a.txt的屬主改為zhangsan
chown zhangsan a.txt
例子:將目錄yunwei和yunwei中的文件的屬主都修改為zhangsan
chown -R zhangsan yunwei
chgrp命令
作用:修改文件的屬組
例子:將文件a.txt的屬組改為tom
chgrp tom a.txt
例子:將文件a.txt的屬主改為zhangsan ,屬組改為tom
chown zhangsan.tom a.txt
或者
chown zhangsan:tom a.txt
注意:
修改屬主或者屬組的時候,那個用戶名和組名是存在的,否則報錯。
chmod命令
作用:修改文件的權限
格式:chmod 權限 -R fileName
選項:-R
方式:
+:增價某項權限
-:去除權限
=:將權限修改為指定的類型(和原來的權限無關)
例子:修改文件a.txt的權限
去除屬主的寫權限
將屬組的權限設置為讀和寫
給其他用戶添加寫權限
chmod u-w,g=rw,0+w a.txt
例子:給全部用戶都添加上執行權限
chmod ugo+x a.txt
或者
chmod a+x a.txt
或者
chmod +x a.txt
例子:去除其他用戶的全部權限
chmod o= a.txt
chmod o-rwx a.txt
基于數字表示文件的權限
r:4
w:2
x:1
--- 000 0
--x 001 1
-w- 010 2
-rx 011 3
r-- 100 4
r-w 101 5
rw- 110 6
rwx 111 7
例子:將文件a.txt的屬主改為可讀可寫,屬組改為可讀,其他用戶沒有任何權限
#chmod 640 a.txt
創建用戶的原理
和用戶相關的文件
1、/etc/passwd
2、/etc/shadow
3、/etc/group
4、/etc/skel <<<<用戶家目錄的模版
5、/etc/login.defs <<<<控制新建用戶的默認屬性
6、/etc/defaults/useradd <<<<控制新建用戶的默認屬性
7、/var/spool/mail/用戶名
新用戶的家目錄如果生成
1、將/etc/skel目錄復制home下,改名為和用戶名相同
2、將該目錄的屬主和屬組改為用戶名
3、將該目錄的權限設改為700
假設新建一個用戶laosun
#cp r /etc/skel /home/laosun
#chown -R laosun.laosun /home/laosun
#chmod -R 700 /home/laosun
MAIL_DIR /var/spool/mail 指定新建用戶的郵件文件的默認位置
(默認郵件文件的名稱和用戶名相同)
PASS_MAX_DAYS 99999
新用戶的密碼最長有效期
PASS_MIN_DAYS 0
修改密碼最短間隔時間
PASS_MIN_LEN 5
普通用戶密碼的最短長度
PASS_WARN_AGE 7
密碼到期前警告時間
UID_MIN 500
新建普通用戶的默認UID最小值
UID_MAX 60000
新建普通用戶的默認UID最大值
GID_MIN 500
新建普通用戶的默認GID最小值
GID_MAX 60000
新建普通用戶的默認GID最大值
CREATE_HOME yes
是否默認創建用戶家目錄
UMASK 077
反向掩碼值(用來控制新建文件和目錄的默認權限值)
USERGROUPS_ENAB yes
當用戶組中沒有用戶了,是否刪除用戶組
ENCRYPT_METHOD SHA512
指定加密算法
SHA512
MD5
加密后的密碼由三部分構成
$6$qSBbNTqA$ESH1UDekytAKPw4olQNulWQv/uZxOJETUQOcB
$加密算法$隨機字符串$加密后的數據
說明:
加密算法:
1、表示MD5加密
6、SHA512加密
vim /etc/default/useradd
# useradd defaults file
GROUP=100
HOME=/home <<<<<默認普通用戶的家目錄的位置
INACTIVE=-1 <<<<<設置新用戶賬號是否過期。-1表示不啟用
EXPIRE= <<<<<設置新建賬戶的過期日期,空白表示不啟用
SHELL=/bin/bash <<<<<設置新建用戶的默認shell類型
SKEL=/etc/skel <<<<<指定新建用戶的家目錄模版目錄
CREATE_MAIL_SPOOL=yes <<<<<設置是否給新建的用戶創建用戶郵件
新建用戶
useradd
passwd
完成的操作
1、/etc/passwd 添加一行
2、/etc/shadow 添加一行
3、/etc/group 添加一行
4、創建用戶家目錄
5、創建用戶郵件文件
例子:創建用戶timi,要求uid 777,主組hadoop (800)
附加組 python (850) hbase(860) 家目錄 /home/timi
描述 i am timi
密碼設置為123 最少使用3天才能修改,最長使用30天,到期
前5天發送報警,非活動時間2天。
實現步驟:
1、創建用戶基本信息(/etc/passwd)
vim /etc/passwd
timi:x:777:800:i am timi:/home/timi:/bin/bash
2、檢查用戶
id timi
3、使用openssl來生成密碼
格式:openssl -1 --salt "string"
說明:
-1 表示md5加密算法
--salt表示在加密的時候摻入雜志(提升安全性)
[root@localhost ~]# openssl passwd -1 -salt "abc123"
Password:
$1$abc123$uE7.dLhrmG/qKHqAIlwPi.
4、修改密碼文件
timi:$1$abc123$uE7.dLhrmG/qKHqAIlwPi.:18005:3:30:5:2::
5、創建用戶組
vim /etc/group
hadoop:x:800:
python:x:850:timi
habse:x:860:timi
6、創建用戶家目錄
# cp -r /etc/skel /home/timi
# cd /home/
# chown -R timi.hadoop /home/timi/
# chmod -R --reference=*** timi ***已經存在于/home中
(把timi的權限參照改為***的權限)
7、創建用戶郵件
cd /var/spool/mail/
ls
touch timi
chmod 660 timi
chown timi.mail timi
8、測試用戶是否可以正常使用
補充:
#useradd guizi
useradd 警告:此主目錄已經存在。
不從sekl目錄里向其中復制任何文件。 <<<<<1
正在創建信箱文件,文件已存在 <<<<<2
新建用戶出現這個錯誤信息,就表示
1、表示用戶的家目錄已經存在
2、表示用戶的郵件文件已經存在
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。