您好,登錄后才能下訂單哦!
? 作為多用戶、多任務(Multi-Users,Multi-tasks)的服務器操作系統,Linux提供了嚴格的權限管理機制,主要從用戶身份、文件權限兩個方面對資源進行限制。Linux基于用戶身份對資源訪問進行控制。
[root@lokott ~]# head -2 /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
root?:x:?0:0:root:/root:/bin/bash——以冒號分隔 下面進行逐一解釋
[root@lokott ~]# head -2 /etc/shadow //查看頭兩行信息
root:$6$P0mVYDgJo8HZnZWl$oYlITJyv.hP.6wS/OCuAdc61QoWTkYJMcONdy9aAjRW4Cpmc5Mor40xn/RiZ9Hi1PzhVoX5Chur4VfFB8JmKO1::0:99999:7:::
bin:*:17110:0:99999:7:::
[root@lokott ~]#
root:$6$P0mVYDgJo8HZnZWl$oYlITJyv.hP.6wS/OCuAdc61QoWTkYJMcONdy9aAjRW4Cpmc5Mor40xn/RiZ9Hi1PzhVoX5Chur4VfFB8JmKO1::0:99999:7:::——以冒號分隔,下面逐一解釋
root——用戶賬號名稱
粗體部分——表示加密算法加密的密碼,登錄輸入該密碼是無效的
::——之間的內容是上次修改時間
0——密碼的最短有效天數(0表示隨時可以更改)
99999——密碼的最長有效天數
7——提前7天提醒用戶口令將過期
:::——表示的是密碼和賬號過期之后的操作處理(基本可以忽略)
選項
實例:useradd -d /opt/mike (-g mike) -G caiwu -s /sbin/nologin mike
[root@lokott ~]# useradd -d /opt/mike -G caiwu -s /sbin/nolgin mike //注意需要先有caiwu組——groupadd caiwu
[root@lokott ~]# tail -2 /etc/passwd //查看passwd文件最后兩行信息
lokott:x:1000:1000:lokott:/home/lokott:/bin/bash
mike:x:1001:1001::/opt/mike:/sbin/nolgin
[root@lokott ~]# tail -2 /etc/group
caiwu:x:1002:mike
mike:x:1001:
[root@lokott ~]# tail -2 /etc/shadow
lokott:$6$aq3AU9oDZf/ERE2D$Ol.zBTLNqbsPDdsJYE0yU3Wa7EUU1SonR3rUQ616PsgA2u.DtQ99ecTUbdw2y2RhmlaL75WlcqMsfEUNretgb0:18192:0:99999:7:::
mike:!!:18200:0:99999:7:::
[root@lokott ~]# id mike //查看mike的id信息
uid=1001(mike) gid=1001(mike) 組=1001(mike),1002(caiwu)
[root@lokott ~]# ls /home/ //因為-d 指定了用戶的宿主目錄,所以家目錄創建在了指定的/opt/mike目錄中
demo lokott
[root@lokott ~]# ls /opt/
demo01.txt mike rh test
[root@lokott ~]#
passwd 選項 .... 用戶名
[root@lokott ~]# useradd -d /opt/lisi -s /sbin/nologin lisi
[root@lokott ~]# tail -2 /etc/passwd
lokott:x:1000:1000:lokott:/home/lokott:/bin/bash
lisi:x:1001:1001::/opt/lisi:/sbin/nologin //這里/sbin/nologin是表示用戶無法登錄
[root@lokott ~]# passwd lisi
更改用戶 lisi 的密碼 。
新的 密碼: //需要你輸入密碼
無效的密碼: 密碼少于 8 個字符 //因為輸入了簡單密碼,可以繼續輸入一次也行,當然復雜密碼就沒問題
重新輸入新的 密碼:
passwd:所有的身份驗證令牌已經成功更新。
[root@lokott ~]# su - lisi
最后一次失敗的登錄:四 10月 31 18:49:45 CST 2019從 :1:1 上
最有一次成功登錄后有 1 次失敗的登錄嘗試。
This account is currently not available. // 無法登錄,因為登錄的shell是/sbin/nologin
[root@lokott ~]# pwd
/root
[root@lokott ~]# vim /etc/passwd //進入passwd文件中將該用戶的/sbin/nologin改為/bin/bash
[root@lokott ~]# su - lisi //root切換用戶時不需要輸入密碼
上一次登錄:四 10月 31 18:52:42 CST 2019pts/2 上
[lisi@lokott ~]$ pwd //登錄lisi用戶
/opt/lisi
[lisi@lokott ~]$ su //相當于su - root 下面的結果表明普通用戶切換root時需要密碼,輸入的密碼不會顯示
密碼:
[root@lokott lisi]# pwd
/opt/lisi
[root@lokott lisi]# cd
[root@lokott ~]# pwd //表明切換到root用戶
/root
[root@lokott ~]#passwd -l lisi //鎖定lisi的密碼
鎖定用戶 lisi 的密碼 。
passwd: 操作成功
[root@lokott ~]# passwd -S lisi //查看lisi用戶的密碼狀態
lisi LK 2019-10-31 0 99999 7 -1 (密碼已被鎖定。)
[root@lokott ~]# su - lisi
上一次登錄:四 10月 31 19:01:10 CST 2019pts/2 上
[lisi@lokott ~]$ pwd //可以看出雖然被鎖定了但是root可以切換登錄且無需密碼
/opt/lisi
[lisi@lokott ~]$
[root@lokott ~]# passwd -u lisi
解鎖用戶 lisi 的密碼。
passwd: 操作成功
[root@lokott ~]# passwd -S lisi
lisi PS 2019-10-31 0 99999 7 -1 (密碼已設置,使用 SHA512 算法。)
該實例可以作以下總結:
其中1-4與useradd類似,演示以下-l的操作
[root@lokott ~]# usermod -l zhangsan lisi
usermod: user lisi is currently used by process 71736
[root@lokott ~]# ps -ef | grep lisi
root 71735 71117 0 19:01 pts/2 00:00:00 su - lisi
lisi 71736 71735 0 19:01 pts/2 00:00:00 -bash
root 72433 71829 0 19:11 pts/2 00:00:00 su - lisi
lisi 72435 72433 0 19:11 pts/2 00:00:00 -bash
root 73325 72935 0 19:24 pts/2 00:00:00 grep --color=auto lisi
[root@lokott ~]# kill 71735 //也可以重啟,自動就會結束進程
[root@lokott ~]#
Session terminated, killing shell... ...已殺死。
[root@lokott ~]# exit
[root@lokott ~]# usermod -l zhangsan lisi
[root@lokott ~]# tail -2 /etc/passwd
mike:x:1001:1001::/opt/mike:/sbin/nolgin
zhangsan:x:1002:1003::/opt/lisi:/bin/bash //只是把lisi用戶名字改了但是家目錄的名字還是lisi
[root@lokott ~]#ls /opt
demo01.txt lisi mike rh test
[root@lokott ~]#
-r 宿主目錄一起刪除,下面的演示接著上面的操作
[root@lokott ~]# tail -2 /etc/passwd //顯示兩個用戶
mike:x:1001:1001::/opt/mike:/sbin/nolgin
zhangsan:x:1002:1003::/opt/lisi:/bin/bash
[root@lokott ~]# userdel -r mike //刪除mike用戶并且“抄家”
[root@lokott ~]# tail -3 /etc/passwd
tcpdump:x:72:72::/:/sbin/nologin
lokott:x:1000:1000:lokott:/home/lokott:/bin/bash
zhangsan:x:1002:1003::/opt/lisi:/bin/bash
[root@lokott ~]# ls -l /opt/mike //表明-r的作用將指定的家目錄刪除
ls: 無法訪問/opt/mike: 沒有那個文件或目錄
[root@lokott ~]# ls /opt //當前在/opt下有lisi家目錄(名字在上面改成了zhangsan)
demo01.txt lisi rh test
[root@lokott ~]# userdel -r zhangsan //刪除zhangsan用戶,同時也會將lisi目錄刪除
[root@lokott ~]# tail -3 /etc/passwd
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
tcpdump:x:72:72::/:/sbin/nologin
lokott:x:1000:1000:lokott:/home/lokott:/bin/bash
[root@lokott ~]# ls -l /opt //因刪除了zhangsan用戶且-r刪除家目錄,不加-r則不會刪除
總用量 0
-rw-r--r--. 1 root root 0 10月 31 16:19 demo01.txt
drwxr-xr-x. 2 root root 6 3月 26 2015 rh
drwx-wx-wx. 2 root root 32 10月 31 18:33 test
[root@lokott ~]# useradd wang //創建一個新的用戶
[root@lokott ~]# usermod -l sung wang //改用戶名
[root@lokott ~]# tail -2 /etc/passwd //查看passwd信息
lokott:x:1000:1000:lokott:/home/lokott:/bin/bash
sung:x:1001:1003::/home/wang:/bin/bash
[root@lokott ~]# userdel sung //刪除sung用戶但是不會刪除wang
[root@lokott ~]# ls /home/
demo lokott wang
文件來源——新建用戶賬號是從/etc/skel目錄中復制過來 (cd到家目錄中用ls -a)
groupadd 選項 組名
-g ——指定GID
[root@lokott ~]# groupadd lisi //添加lisi組
[root@lokott ~]# tail /etc/group //查看group信息
postdrop:x:90:
postfix:x:89:
stapusr:x:156:
stapsys:x:157:
stapdev:x:158:
tcpdump:x:72:
lokott:x:1000:
printadmin:x:985:
caiwu:x:1002:
lisi:x:1003:
[root@lokott ~]# groupadd -g 1005 wangwu //添加wangwu組且給其配置GID為1005
[root@lokott ~]# tail -2 /etc/group
lisi:x:1003:
wangwu:x:1005:
[root@lokott ~]#
[root@lokott ~]# tail -2 /etc/group //查看組信息
lisi:x:1003:
wangwu:x:1005:
[root@lokott ~]# tail -2 /etc/passwd //查看用戶信息
tcpdump:x:72:72::/:/sbin/nologin
lokott:x:1000:1000:lokott:/home/lokott:/bin/bash
[root@lokott ~]# useradd lisi //添加lisi用戶會失敗,因為上面顯示lisi組已經存在
useradd:lisi 組已經存在 - 如果您想將此用戶加入到該組,請使用 -g 參數。
[root@lokott ~]# useradd -g lisi lisi //將lisi用戶添加到lisi組中
[root@lokott ~]# useradd zhangsan //再添加一個zhangsan用戶
[root@lokott ~]# tail -2 /etc/passwd //查看用戶信息
lisi:x:1001:1003::/home/lisi:/bin/bash
zhangsan:x:1002:1006::/home/zhangsan:/bin/bash
[root@lokott ~]# gpasswd -a lisi wangwu //添加lisi到wangwu組中(先得有wangwu組)
正在將用戶“lisi”加入到“wangwu”組中
[root@lokott ~]# id lisi //查看lisi的UID
uid=1001(lisi) gid=1003(lisi) 組=1003(lisi),1005(wangwu)
[root@lokott ~]# gpasswd -d lisi wangwu //從wangwu組中刪除lisi
正在將用戶“lisi”從“wangwu”組中刪除
[root@lokott ~]# id lisi //查看lisi的UID,已經不屬于wnagwu組了
uid=1001(lisi) gid=1003(lisi) 組=1003(lisi)
[root@lokott ~]# tail -5 /etc/passwd //顯示用戶信息
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
tcpdump:x:72:72::/:/sbin/nologin
lokott:x:1000:1000:lokott:/home/lokott:/bin/bash
lisi:x:1001:1003::/home/lisi:/bin/bash
zhangsan:x:1002:1006::/home/zhangsan:/bin/bash
[root@lokott ~]# tail -5 /etc/group //顯示組信息
printadmin:x:985:
caiwu:x:1002:
lisi:x:1003:
wangwu:x:1005:
zhangsan:x:1006:
[root@lokott ~]# gpasswd -M lisi,zhangsan wangwu //將兩個用戶批量添加到wangwu組中
[root@lokott ~]# tail -5 /etc/group
printadmin:x:985:
caiwu:x:1002:
lisi:x:1003:
wangwu:x:1005:lisi,zhangsan //查看到信息
zhangsan:x:1006:
[root@lokott ~]# useradd hh //添加兩個新的用戶,為了驗證-M的覆蓋功能
[root@lokott ~]# useradd ww
[root@lokott ~]# gpasswd -M hh,ww wangwu
[root@lokott ~]# tail -5 /etc/group
lisi:x:1003:
wangwu:x:1005:hh,ww //原本的lisi和zhangsan都被踢出去了
zhangsan:x:1006:
hh:x:1007:
ww:x:1004:
注意!!!不能使用 groupdel 命令隨意刪除組。此命令僅適用于刪除那些 "不是任何用戶初始組(主組 )" 的組,換句話說,如果有組還是某用戶的初始組(主組),則無法使用 groupdel 命令成功刪除。例如:
[root@lokott ~]# tail -10 /etc/group
stapdev:x:158:
tcpdump:x:72:
lokott:x:1000:
printadmin:x:985:
caiwu:x:1002:
lisi:x:1003:
wangwu:x:1005:hh,ww
zhangsan:x:1006:
hh:x:1007:
ww:x:1004:
[root@lokott ~]# groupdel caiwu
[root@lokott ~]# groupdel lisi
groupdel:不能移除用戶“lisi”的主組
[root@lokott ~]# groupdel wangwu
[root@lokott ~]# groupdel zhangsan
groupdel:不能移除用戶“zhangsan”的主組
[root@lokott ~]# groupdel hh
groupdel:不能移除用戶“hh”的主組
[root@lokott ~]# groupdel ww
groupdel:不能移除用戶“ww”的主組
[root@lokott ~]#
如果真的要刪除,可以將創建該組的初始成員刪除后再刪除
[root@lokott note]# tail -1 /etc/passwd
ww:x:10000:10000::/home/ww:/bin/bash
[root@lokott note]# groupdel ww
groupdel:不能移除用戶“ww”的主組
[root@lokott note]# userdel ww
[root@lokott note]# tail -1 /etc/group
zhangsan:x:1006:
[root@lokott note]#
[root@lokott ~]# lastb
lisi :1 :1 Thu Oct 31 18:49 - 18:49 (00:00)
root pts/1 Thu Oct 31 17:07 - 17:07 (00:00)
root :0 :0 Thu Oct 24 14:43 - 14:43 (00:00)
root :0 :0 Thu Oct 24 14:43 - 14:43 (00:00)
root :0 :0 Thu Oct 24 14:43 - 14:43 (00:00)
btmp begins Thu Oct 24 14:43:01 2019
[root@lokott ~]#
讀取r:允許查看文件內容、顯示目錄列表
寫入w:允許修改文件內容,允許在目錄中新建、移動、刪除文件或子目錄
可執行x: 允許運行程序、切換目錄
屬主:用于該文件或目錄的用戶賬號
屬組:用于該文件或目錄的組賬號
[root@lokott ~]# ls -l
總用量 8
-rw-------. 1 root root 1785 10月 23 12:21 anaconda-ks.cfg
-rw-r--r--. 1 root root 1833 10月 23 12:24 initial-setup-ks.cfg
drwxr-xr-x. 4 root root 73 10月 30 22:03 note //以此為例介紹
下面對drwxr-xr-x. 4 root root 73 10月 30 22:03 note 進行解釋
//下面是對文件的權限操作
[root@lokott note]# touch 2.sh
[root@lokott note]# ls -l 2.sh //2.sh權限是644
-rw-r--r--. 1 root root 0 10月 31 21:41 2.sh
[root@lokott note]# chmod u+x 2.sh
[root@lokott note]# ls -l 2.sh
-rwxr--r--. 1 root root 0 10月 31 21:41 2.sh
[root@lokott note]# chmod ugo+w 2.sh
[root@lokott note]# ls -l 2.sh
-rwxrw-rw-. 1 root root 0 10月 31 21:41 2.sh
[root@lokott note]# chmod 655 2.sh
[root@lokott note]# ls -l 2.sh
-rw-r-xr-x. 1 root root 0 10月 31 21:41 2.sh
//下面是對目錄的權限操作
[root@lokott note]# ll //ll是ls -l --color 的別名
總用量 8
-rwxrwxrwx. 1 root root 0 10月 31 21:40 1.txt
-rw-r-xr-x. 1 root root 0 10月 31 21:41 2.sh
-rwxrwxrwx. 1 root root 286 10月 30 22:03 ifcfg-ens33
drwxrwxrwx. 2 root root 26 10月 23 13:20 linux-cmd
-rwxr-xr-x. 1 root root 30 10月 30 22:02 readme.txt
drwxrwxrwx. 2 root root 173 10月 30 21:56 shell
drwxr-xr-x. 2 root root 6 10月 31 21:38 test
[root@lokott note]# which ll
alias ll='ls -l --color=auto'
/usr/bin/ls
[root@lokott note]# chmod 777 test/ 更改權限為777
[root@lokott note]# ll
總用量 8
-rwxrwxrwx. 1 root root 0 10月 31 21:40 1.txt
-rw-r-xr-x. 1 root root 0 10月 31 21:41 2.sh
-rwxrwxrwx. 1 root root 286 10月 30 22:03 ifcfg-ens33
drwxrwxrwx. 2 root root 26 10月 23 13:20 linux-cmd
-rwxr-xr-x. 1 root root 30 10月 30 22:02 readme.txt
drwxrwxrwx. 2 root root 173 10月 30 21:56 shell
drwxrwxrwx. 2 root root 6 10月 31 21:38 test
[root@lokott note]# touch test/1.sh
[root@lokott note]# ls -l test/1.sh
-rw-r--r--. 1 root root 0 10月 31 21:50 test/1.sh //目錄的權限與其子目錄與文件權限無關除非遞歸—R
[root@lokott note]# chmod 777 -R test/ //遞歸更改權限 即test和其子目錄的所有文件權限都是777
[root@lokott note]# ls -l test/1.sh
-rwxrwxrwx. 1 root root 0 10月 31 21:50 test/1.sh
如果給予屬組和其他用戶只有寫權限(622),可以強制寫入,但會覆蓋原本的內容!
[root@lokott test]# pwd //當前所在目錄的絕對路徑
/opt/test
[root@lokott test]# ll //顯示詳細信息
總用量 8
-rw-r--r--. 1 root root 13 10月 31 16:33 1.txt //除了root的其余用戶權限為只讀
-rw--w--w-. 1 root root 18 10月 31 18:33 2.txt //除了root的其余用戶權限為只寫
[root@lokott test]# cat 1.txt
tehsda
hello
[root@lokott test]# cat 2.txt //這邊原本的2.txt的內容如下
231354
2222244878
[root@lokott lisi]# su - lisi //切換到lisi用戶
上一次登錄:四 10月 31 22:36:45 CST 2019pts/1 上
[lisi@lokott ~]$ cd /opt/test/
[lisi@lokott test]$ ll //沒有ls的權限
ls: 無法打開目錄.: 權限不夠
[lisi@lokott test]$ cat 1.txt //表示可以查看1.txt內容
tehsda
hello
[lisi@lokott test]$ vim 1.txt //嘗試寫入數據
[lisi@lokott test]$ cat 1.txt //可以wq!強制保存退出,結果是可以寫入數據的
tehsda
hello
dada
asdaadas
[lisi@lokott test]$ cat 2.txt
cat: 2.txt: 權限不夠
[lisi@lokott test]$ vim 2.txt
[lisi@lokott test]$ cat 2.txt //似乎強制寫入數據之后就可以查看,因為屬主是lisi,但如果 //屬主是root用戶在lisi用戶登錄時就無法查看
ssdad
dsawdad
[lisi@lokott test]$ ls -l 2.txt
-rw--w--w-. 1 lisi lisi 14 10月 31 22:45 2.txt
//使用echo命令重定向和追加形式寫入數據到文本中
[lisi@lokott test]$ echo "123123" > 2.txt
[lisi@lokott test]$ cat 2.txt
123123
[lisi@lokott test]$ echo "123456" >> 2.txt
[lisi@lokott test]$ cat 2.txt
123123
123456
[lisi@lokott test]$ su
密碼:
[root@lokott test]# ls -l
總用量 8
-rw-r--r--. 1 lisi lisi 27 10月 31 22:43 1.txt
-rw--w--w-. 1 lisi lisi 14 10月 31 22:47 2.txt
[root@lokott test]# cat 2.txt
123123
123456
[root@lokott test]#
[root@lokott opt]# ls -l
總用量 0
-rw-r--r--. 1 root root 0 10月 31 16:19 demo01.txt
drwxr-xr-x. 2 root root 6 3月 26 2015 rh
drwx-wx-wx. 2 root root 32 10月 31 22:45 test
[root@lokott opt]# chown lisi test
[root@lokott opt]# ls -l
總用量 0
-rw-r--r--. 1 root root 0 10月 31 16:19 demo01.txt
drwxr-xr-x. 2 root root 6 3月 26 2015 rh
drwx-wx-wx. 2 lisi root 32 10月 31 22:45 test //test目錄自身屬主變成lisi而屬組未發生改變
[root@lokott opt]# chown root:lisi test
[root@lokott opt]# ls -l
總用量 0
-rw-r--r--. 1 root root 0 10月 31 16:19 demo01.txt
drwxr-xr-x. 2 root root 6 3月 26 2015 rh
drwx-wx-wx. 2 root lisi 32 10月 31 22:45 test //test目錄自身屬主變成root而屬組變為lisi
[root@lokott opt]# chown :root test
[root@lokott opt]# ls -l
總用量 0
-rw-r--r--. 1 root root 0 10月 31 16:19 demo01.txt
drwxr-xr-x. 2 root root 6 3月 26 2015 rh
drwx-wx-wx. 2 root root 32 10月 31 22:45 test //test目錄自身屬組變為root
作用:控制新建的文件或者目錄的權限——注意只是對新建的有效
默認權限去除umask的權限為
[root@lokott opt]# mkdir umasktest
[root@lokott opt]# umask 000 umasktest/
[root@lokott opt]# ll
總用量 0
-rw-r--r--. 1 root root 0 10月 31 16:19 demo01.txt
drwxr-xr-x. 2 root root 6 3月 26 2015 rh
drwx-wx-wx. 2 root lisi 32 10月 31 22:45 test
drwxrwxrwx. 2 root root 6 10月 31 23:26 umasktest
[root@lokott opt]# cd umasktest/
[root@lokott umasktest]# mkdir 2019
[root@lokott umasktest]# touch 1.txt
[root@lokott umasktest]# ll
總用量 0
-rw-rw-rw-. 1 root root 0 10月 31 23:26 1.txt //文件權限為666
drwxrwxrwx. 2 root root 6 10月 31 23:26 2019 //目錄權限為777
[root@lokott umasktest]# cd ..
[root@lokott opt]# umask 111 umasktest/ //原本的1.txt和2019權限沒有發生變化!
[root@lokott opt]# cd umasktest/
[root@lokott umasktest]# mkdir 2018
[root@lokott umasktest]# touch 2.txt
[root@lokott umasktest]# ll
總用量 0
-rw-rw-rw-. 1 root root 0 10月 31 23:26 1.txt
drw-rw-rw-. 2 root root 6 10月 31 23:28 2018 //目錄權限為666
drwxrwxrwx. 2 root root 6 10月 31 23:26 2019
-rw-rw-rw-. 1 root root 0 10月 31 23:28 2.txt // 2.txt權限為666
[root@lokott umasktest]# cd ..
[root@lokott opt]# umask 666 umasktest/
[root@lokott opt]# cd umasktest/
[root@lokott umasktest]# mkdir 2017
[root@lokott umasktest]# touch 3.txt
[root@lokott umasktest]# ll
總用量 0
-rw-rw-rw-. 1 root root 0 10月 31 23:26 1.txt
d--x--x--x. 2 root root 6 10月 31 23:29 2017 //目錄權限為111
drw-rw-rw-. 2 root root 6 10月 31 23:28 2018
drwxrwxrwx. 2 root root 6 10月 31 23:26 2019
-rw-rw-rw-. 1 root root 0 10月 31 23:28 2.txt
----------. 1 root root 0 10月 31 23:29 3.txt //文件3.txt權限全為0
[root@lokott umasktest]# umask //查看umask值
0666
主要是對Linux/Centos7中賬號與權限管理的介紹,主要是命令的選項結合操作對象的演示案例需要注意許多與正常思維不一致的地方,需要自己多試驗多嘗試!
謝謝閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。