linux学习笔记-第六课-/etc/passwd,/etc/shadow,useradd,su,sudo等
一、查看用戶
??? /etc/passwd
[root@mylinux?~]#?cat?/etc/passwd|head?-5 root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin adm:x:3:4:adm:/var/adm:/sbin/nologin lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin [root@mylinux?~]#????文件的每一行代表一個用戶,
????每一行由冒號“:”分成7個字段,
????結構都是一樣的,結構如下:
????用戶名:密碼:UID:GID:用戶標簽:home目錄:shell
????①用戶名:大小寫字母、數字、減號(不能出現在首位)、點以及下劃線,其他字符不合法。
????②密碼:以“x”字母占位,實際上密碼是儲存在“/etc/shadow”里。
[root@mylinux?~]#?head?-5?/etc/shadow? root:$6$Zj4RYp1LFptznzDm$jZbdsgce0pNZE6pEv9l8ncOXMOhr90cfzUbXIkL2oOKjHVeeUP/uyDG6UnNiNKvqMIzd6Dsan5pwuDNXNG.qe0:16496:0:99999:7::: bin:*:15980:0:99999:7::: daemon:*:15980:0:99999:7::: adm:*:15980:0:99999:7::: lp:*:15980:0:99999:7::: [root@mylinux?~]#???? ③UID:User ID?用戶識別碼,特殊值“0”是保存給“root”,1~499是屬于系統用戶的;500~4294967294(2^32-2)是分配給普通用戶的。
?????④GID:Group ID?用戶組識別碼,來自“/etc/group”。
[root@mylinux?~]#?head?-5?/etc/group? root:x:0: bin:x:1:bin,daemon daemon:x:2:bin,daemon sys:x:3:bin,adm adm:x:4:adm,daemon [root@mylinux?~]#????⑤用戶標簽:該字段沒有實際意義,通常記錄該用戶的一些屬性,例如姓名、電話、地址等等,用 chfn 更改?
[root@mylinux?~]#?grep?"mylinux"?/etc/passwd mylinux:x:1000:1000::/home/mylinux:/bin/bash?????????????#?用戶mylinux第五段為空; [root@mylinux?~]#?chfn?-f?mylinux?-p?13800138000?mylinux?#?用chfn增加描述-f?full-name; Changing?finger?information?for?mylinux.???????????????????-p?office-phone; Finger?information?changed. [root@mylinux?~]#?!grep??????????????????????????????????#?第五段已經增加剛才的信息 grep?"mylinux"?/etc/passwd mylinux:x:1000:1000:mylinux,,13800138000:/home/mylinux:/bin/bash [root@mylinux?~]#????⑥home目錄:用戶家目錄位置
????⑦shell:標識用戶shell類型:/bin/bash ;/sbin/nologin;/sbin/shutdown等
二、用戶密碼
??? /etc/shadow ?
[root@mylinux?~]#?head?-5?/etc/shadow root:$6$Zj4RYp1LFptznzDm$jZbdsgce0pNZE6pEv9l8ncOXMOhr90cfzUbXIkL2oOKjHVeeUP/uyDG6UnNiNKvqMIzd6Dsan5pwuDNXNG.qe0:16496:0:99999:7::: bin:*:15980:0:99999:7::: daemon:*:15980:0:99999:7::: adm:*:15980:0:99999:7::: lp:*:15980:0:99999:7::: [root@mylinux?~]#??? 文件的每一行代表一個用戶,
????每一行由冒號“:”分成9個字段,
?? 用戶名:
?? 密碼:經過SHA加密,不可逆
?? 修改密碼時間:距第一次更改密碼的時間,已經多少天了
?? 修改密碼期限:要過多少天才可以進行修改密碼,默認值“0”,無限制
?? 密碼到期時間:密碼多少天后到期,默認值“99999”
?? 密碼期限:密碼到期提醒,默認值“7”即密碼到期的前7天開始提醒
?? 鎖定期限:密碼到期后,賬號多少天后鎖定,默認值空
?? 生命周期:賬號生命周期,默認值空
?? 保留位
三、用戶和組
???①用戶的創(chuàng)建/刪除
???用戶創(chuàng)建
???格式:useradd [選項] [用戶名]
[root@mylinux?~]#?useradd?linux [root@mylinux?~]#?tail?-1?/etc/passwd linux:x:1002:1003::/home/linux:/bin/bash [root@mylinux?~]#?? 選項:-u?指定用戶UID
???????? -U?指定用戶群
???????? -g?指定用戶GID(passwd中要含有這個ID)
???????? -G?指定用戶組群GID
???????? -m?創(chuàng)建用戶家目錄
???????? -M?不創(chuàng)建用戶家目錄
???????? -d?用戶家目錄
???????? -D?打印或者更改useradd默認配置
???????? -s?指定shell類型
??? 用戶刪除
????格式 :userdel [選項] [用戶名]
[root@mylinux?~]#?tail?-5?/etc/passwd nfsnobody:x:65534:65534:Anonymous?NFS?User:/var/lib/nfs:/sbin/nologin anon:x:600:600:anonymous,,13800138000:/home/anon:/bin/bash www:x:1001:1001::/home/www:/bin/bash anonymous:x:501:501::/home/anonymous:/bin/bash linux:x:1002:1003::/home/linux:/bin/bash [root@mylinux?~]#?userdel?linux [root@mylinux?~]#?!tail tail?-5?/etc/passwd rpcuser:x:29:29:RPC?Service?User:/var/lib/nfs:/sbin/nologin nfsnobody:x:65534:65534:Anonymous?NFS?User:/var/lib/nfs:/sbin/nologin anon:x:600:600:anonymous,,13800138000:/home/anon:/bin/bash www:x:1001:1001::/home/www:/bin/bash anonymous:x:501:501::/home/anonymous:/bin/bash [root@mylinux?~]#????選項 : -f?強制刪除
?????????? -r 刪除用戶家目錄及郵件緩沖
????②組的創(chuàng)建及刪除
????組的創(chuàng)建
????格式 :?groupadd [選項] [組名]
[root@mylinux?~]#?groupadd?linux [root@mylinux?~]#?tail?-5?/etc/group anon:x:600: www:x:1001: anonymous:x:1002: test:x:501: linux:x:1003: [root@mylinux?~]#???? 選項 :-g?為創(chuàng)建的組指定GID
??????????? -P?為創(chuàng)建的組加密
??????????? -r?創(chuàng)建一個系統賬戶
?????組的刪除
?????格式 :groupdel [選項] [組名]
[root@mylinux?~]#?groupdel?linux [root@mylinux?~]#?tail?-5?/etc/group nfsnobody:x:65534: anon:x:600: www:x:1001: anonymous:x:1002: test:x:501: [root@mylinux?~]#? ? ?③usermod 對用戶信息進行修改
? ? ?格式 :usermod [選項] [用戶名]
[root@mylinux?~]#?tail?-5?/etc/passwd nfsnobody:x:65534:65534:Anonymous?NFS?User:/var/lib/nfs:/sbin/nologin anon:x:600:600:anonymous,,13800138000:/home/anon:/bin/bash www:x:1001:1001::/home/www:/bin/bash anonymous:x:501:501::/home/anonymous:/bin/bash linux:x:1002:1003::/home/linux:/bin/bash [root@mylinux?~]#?usermod?-g?501?linux??????????#?更改用戶GID信息 [root@mylinux?~]#?!tail tail?-5?/etc/passwd nfsnobody:x:65534:65534:Anonymous?NFS?User:/var/lib/nfs:/sbin/nologin anon:x:600:600:anonymous,,13800138000:/home/anon:/bin/bash www:x:1001:1001::/home/www:/bin/bash anonymous:x:501:501::/home/anonymous:/bin/bash linux:x:1002:501::/home/linux:/bin/bash [root@mylinux?~]#????
?????選項 :-l?變更使用者登陸的名字
??????????? -a?對-G選項進行追加
??????????? -c?更新用戶passwd中注釋欄信息
??????????? -d?指定新的用戶家目錄
??????????? -g?指定新的GID
??????????? -G?指定新的組群GID
??????????? -u?指定新的用戶UID
??????????? -m?移動家目錄到新的位置
??????????? -P?使用新的加密密碼
??????????? -s?使用新的shell類型
??????????? -L?鎖定用戶賬戶
??????????? -U?解鎖用戶賬戶
???????????
???
四、創(chuàng)建/修改用戶密碼
????創(chuàng)建用戶密碼
????對于新建的用戶,沒有設置密碼,密碼是需要創(chuàng)建的,命令如下:
[root@mylinux?~]#?passwd?linux?????????????????#?格式passwd?[用戶名] 更改用戶?linux?的密碼?。 新的?密碼: 重新輸入新的?密碼: passwd:?所有的身份驗證令牌已經成功更新。 [root@mylinux?~]#??? 選項: -d?刪除已命名賬戶密碼
????????? -k?密碼不過期
????????? --stdin?從標準輸入獲取密碼
[root@mylinux?~]#?passwd?linux?--stdin 更改用戶?linux?的密碼?。 123456789 passwd:?所有的身份驗證令牌已經成功更新。 [root@mylinux?~]#??
? ? mkpaswd 密碼生成命令
????沒有此命令的需要執(zhí)行?yum install -y expect
????選項 : -l?密碼的長度,默認值為“9”
??????????? -d?密碼中含有幾個數字,默認值為“2”
??????????? -c?密碼中含有幾個小寫字母,默認值為“2”
??????????? -C 密碼中含有幾個大寫字母,默認值為“2”
??????????? -s?密碼中含有幾個特殊字符,默認值為“1”
??????????? -p?對程序進行加密
[root@mylinux?~]#?mkpasswd?-l?12?-c?3?-C?3?-d?3?-s?3 xVY[1.2zOl}8?????????????????????????#?長度為12,含有小字母3個大字母3個數字3個特殊字符3個 [root@mylinux?~]#?mkpasswd?-l?12?-c?3?-C?3?-d?3?-s?3 E\605nH&-Riu [root@mylinux?~]#?mkpasswd?-l?12?-c?3?-C?3?-d?3?-s?3 AxOgm8,^9J5*?????????????????????????#?每次生產的密碼是不同的 [root@mylinux?~]#五、用戶身份的切換
????su [user]或?su -m [user]或su -p [user]直接使用命令切換用戶的環(huán)境變量,不會隨著新用戶一起轉換過去,但是會保持當前用戶環(huán)境配置的狀態(tài)。
[mylinux@mylinux?tmp]$?su 密碼:??????????????????????????????????????#?輸入root密碼 [root@mylinux?tmp]#?pwd /tmp [root@mylinux?tmp]#?env?|grep?'mylinux'?????#?當前的用戶環(huán)境變量還是mylinux的 HOSTNAME=mylinux?????? USER=mylinux PATH=/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/mylinux/bin MAIL=/var/spool/mail/mylinux LOGNAME=mylinux [root@mylinux?tmp]#????所以需要一些選項
????su -?或者?su -l?環(huán)境變量會隨著用戶的切換,一切切換過去
??? 單獨的"-"選項隱含了-l。如果不指定用戶,則假設其為root。
[mylinux@mylinux?tmp]$?su?- 密碼:????????????????????????????????????#?root [root@mylinux?~]#?pwd /root [root@mylinux?~]#?env?|grep?'root'????????#?這時的環(huán)境變量隨著用戶的切換一同轉換了 USER=root MAIL=/var/spool/mail/root PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin PWD=/root HOME=/root LOGNAME=root [root@mylinux?~]#???
??? 因為su的每一次切換都需要輸入root密碼,所以就需要用到sudo,使用他的時候輸入的是他用戶本身的密碼。
? ? sudo的選項 :
? -a type?????? 使用指定的 BSD 認證類型
? -b??????????? 在后臺運行命令
? -C fd???????? 關閉所有 >= fd 的文件描述符
? -E??????????? 在執(zhí)行命令時保留用戶環(huán)境
? -e??????????? 編輯文件而非執(zhí)行命令
? -g group????? 以指定的用戶組執(zhí)行命令
? -H??????????? 將 HOME 變量設為目標用戶的主目錄。
? -h??????????? 顯示幫助消息并退出
? -i [command]? 以目標用戶身份運行一個登錄 shell
? -K??????????? 完全移除時間戳文件
? -k??????????? 無效的時間戳文件
? -l[l] command 列出用戶能執(zhí)行的命令
? -n??????????? 非交互模式,將不提示用戶
? -P??????????? 保留組向量,而非設置為目標的組向量
? -p prompt???? 使用指定的密碼提示
? -r role?????? 以指定的角色創(chuàng)建 SELinux 安全環(huán)境
? -S??????????? 從標準輸入讀取密碼
? -s [command]? 以目標用戶身份運行 shell
? -t type?????? 以指定的角色創(chuàng)建 SELinux 安全環(huán)境
? -U user?????? 在列表時,列出指定用戶的權限
? -u user?????? 以指定用戶身份運行命令(或編輯文件)
? -V??????????? 顯示版本信息并退出
? -v??????????? 更新用戶的時間戳而不執(zhí)行命令
? --??????????? 停止處理命令行參數
????sudo不是任何人都可以運行的,是需要root授權的,也就是需要配置,但是需要用root來進行編輯/etc/suders,但是不是vi,而是visudo
[root@mylinux?~]#?visudo ...........前面省略.........##?The?COMMANDS?section?may?have?other?options?added?to?it.####?Allow?root?to?run?any?commands?anywhereroot????ALL=(ALL)???????ALL?????????????????#?這行在配置的第98行mylinux?ALL=(ALL)???????ALL?????????????????#?這行是新增的##?Allows?members?of?the?'sys'?group?to?run?networking,?software,##?service?management?apps?and?more.#?%sys?ALL?=?NETWORKING,?SOFTWARE,?SERVICES,?STORAGE,?DELEGATING,?PROCES????????SES,?LOCATE,?DRIVERS ...........后面勝利???書寫的格式:
?? 賬戶????來源主機名=(可切換的賬戶)???可以執(zhí)行的命令
????
?
? ? 但是當有多個用戶來管理這個主機,那豈不是要一行一行的增加,其實可以通過組來進行管理
? ? visudo打開進行編輯?
????用usermod將用戶加入wheel組
[root@mylinux?~]#?usermod?-a?-G?wheel?su1 [root@mylinux?~]#?su?-?su1 [su1@mylinux?~]$?id uid=502(su1)?gid=502(su1)?組=502(su1),10(wheel)????來測試看看吧!
[su1@mylinux?~]$?sudo?tail?-3?/etc/shadow [sudo]?password?for?su1: su1:$6$NphVy42w$03uQ.oVSkupkEsx/imypw2zQSGCC2Yw2VpeSG0OM2oOzSJHrsE.Gna3jEp1o0YgXt3EGU5Npd.oCf1SimHy7O.:16514:0:99999:7::: su2:$6$Ugvncf5s$cVZxix4.BcRe.WZq1D/QLJJOFgcAjJqfG2Zrn8pJ5/QlHjJWkdzPF./XKIxQl3uept4fY3i5YhfP0MmOBB8h4.:16514:0:99999:7::: su3:$6$lA8YAIF3$m9CjNBggvPyQXsqMday1P92db3m.A.16ii5nYwFFeVsbdeZFrMwxq7mdvVm174j2lQhtv91BaJZ9ad.oYBZgb0:16514:0:99999:7::: [su1@mylinux?~]$???測試成功!但是怎么每次都要密碼,可以不要密碼嗎?答案是可以的
?? 還是在/etc/sudoers中進行編輯,找到下面的信息,去掉“#”注釋,保存退出
???我再試一下
[root@mylinux?~]#?su?-?su1 [su1@mylinux?~]$?sudo?tail?-3?/etc/shadow su1:$6$NphVy42w$03uQ.oVSkupkEsx/imypw2zQSGCC2Yw2VpeSG0OM2oOzSJHrsE.Gna3jEp1o0YgXt3EGU5Npd.oCf1SimHy7O.:16514:0:99999:7::: su2:$6$Ugvncf5s$cVZxix4.BcRe.WZq1D/QLJJOFgcAjJqfG2Zrn8pJ5/QlHjJWkdzPF./XKIxQl3uept4fY3i5YhfP0MmOBB8h4.:16514:0:99999:7::: su3:$6$lA8YAIF3$m9CjNBggvPyQXsqMday1P92db3m.A.16ii5nYwFFeVsbdeZFrMwxq7mdvVm174j2lQhtv91BaJZ9ad.oYBZgb0:16514:0:99999:7::: [su1@mylinux?~]$???測試成功不需要密碼了,只要對用戶進行組的控制就可以實現了,不需要的時候移除組
???當然也可以讓每個用戶負責不同的權限與執(zhí)行命令
本內容由導師:阿銘提供技術支持:跟阿銘學linux 點這里
??????
更新中。。。
轉載于:https://blog.51cto.com/maocong/1622655
總結
以上是生活随笔為你收集整理的linux学习笔记-第六课-/etc/passwd,/etc/shadow,useradd,su,sudo等的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Tasker 正则表达式测试器
- 下一篇: MyEclipse远程调试Tomcat