Linux Shell學習筆記(3):關於用戶身份和能力

Linux是一個多用戶、多任務的操作系統,具有很好的穩定性與安全性。文件的所有者、所屬組以及其他人可對文件進行的讀寫執行等操作,以及如何在Linux系統中添加、刪除、修改用戶賬戶信息,都離不開Linux中用戶身份與文件權限相關知識。

一、用戶身份與能力

Linux的設計初衷之一就是爲了滿足多個用戶同時操作的需求,因此Linux必須基本很好的安全性。
因此Linux系統中必須有一個root用戶(超級管理員)擁有最高的系統所有權,能夠管理系統的各項功能。

  • 正是因爲root權限擁有整個系統中的最高權力 因此使用root權限進行操作如果執行了錯誤的命令,可能會直接毀掉整個系統。
  • 在學習的過程中可以使用root權限進行學習,但是在真正工作和實踐的時候還是要區分用戶進行操作。
  • Linux系統中的管理員就是root,其實說法不準確。用戶(root)是系統管理員,不是因爲它叫root而是因爲該用戶的身份碼(UID:User IDentification)的數值爲0。

說到多用戶與多任務(同時多個終端登錄操作系統並進行多任務操作),就不得不說一下linux操作系統和windows操作系統

windows Linux
是否多任務
是否多用戶 現在常用的Windows操作系統都是多用戶的操作系統:
win7、win10;Windows XP的多用戶切換方式

在Linux中多個用戶同時登錄,cpu是根據不同用戶的優先級來分配CPU運算資源

1. useradd

useradd命令用於創建用戶,格式:useradd [options] username

  1. 使用useradd命令創建用戶,默認將用戶家目錄放在/home目錄中,默認使用的Shell解釋器爲/bin/bash
  2. 並且同時創建一個跟這個username同名的基本用戶組
參數 作用
-d 指定用戶的家目錄(默認爲/home/username
-e 賬戶的到期時間,格式爲:YYYY-MM-DD
-u 指定賬戶的uid
-g 指定一個初始的用戶組(必須存在)
-G 指定一個或多個擴展用戶組
-N 不創建和username同名的基本用戶組
-s 指定該用戶默認的Shell解釋器

下面的一剛命令就是創建一個username爲testuser的用戶,該用戶的uid爲6666 指定路徑/home/testusername/、指定shell解釋器爲/sbin/nologin(被指定爲該解釋器的用戶無法登陸系統)

root@juzuo:/home useradd -d /home/testusername/ -u 6666 -s /sbin/nologin testuser

2. groupadd

groupadd命令用於創建用戶組, 格式:groupadd [options] groupname

  • 用戶組的概念就是一組用戶,擁有相似會或者相同權限,或者相似作用。
  • Linux中爲了更加高效的指派系統中各個用戶的權限,在工作中常常會把幾個用戶加入到用一個組裏,這樣可以方便針對同一類用戶統一安排權限。

這個命令用於創建一個用戶組,現在把剛剛創建的用戶testuser添加到這個用戶組

root@juzuodaliyu:/home groupadd test
root@juzuodaliyu:/home usermod -g test  testuser
root@juzuodaliyu:/home id testuser
uid=6666(testuser) gid=6667(test) groups=6667(test)

這裏用到了命令usermod 意思是修改用戶屬性。具體用法和含義參照3

3. usermod

usermod命令用於修改用戶的屬性
格式usermod [options] 用戶名

  • Linux系統中一切都是文件,因此在系統中創建用戶也就是修改配置文件的過程。
  • 用戶的信息保存在 /etc/passwd文件,可以直接使用vim編輯器修改用戶屬性,也可以使用usermod修改用戶屬性
# 這條命令就是修改用戶testuser的用戶組屬性
root@juzuodaliyu:/home usermod -g test  testuser
參數 作用
-c 填寫用戶的備註信息
-d -m l兩個參數連用,可以重新指定用戶的家目錄並且自動把舊的數據轉移過去
-e 賬戶的到期時間(同useradd)
-g 變更用戶所屬用戶組
-G 變更擴展用戶組
-L 鎖定用戶禁止其登錄
-U 解鎖用戶,允許其登錄系統
-s 變更默認終端
-u 修改用戶的uid

具體的用戶參照第2條,在自己的虛擬機或者是服務器上實驗吧。

4. passwd

  • passwd命令用於修改用戶密碼(口令)、過期時間、認證信息等(這個“等”我一直沒有找到其他的用法,如果小夥伴有知道的請留言
  • 一般系統管理員用這個命令更多的是用來更改密碼,格式爲 passwd [-options] [username]
passwd username 
# 然後根據提示修改密碼即可
參數 含義
-l 鎖定用戶,禁止登陸
-u 解鎖用戶,允許登陸
允許通過標準輸入修改用戶密碼,比如第一篇文章中用過的
echo "newpassword" | passwd --stdin Username
-d 使該用戶可用密碼登錄系統
-e 強制用戶在下次登錄時修改密碼
-S 顯示用戶的密碼是否被鎖定,以及密碼鎖採用的加密算法名稱

5. userdel

  • userdel命令用於刪除用戶。格式:userdel [-options] Username
  • 使用userdel刪除用戶的時候,用戶的家目錄是默認保存下來的,使用-r參數可以連帶一起刪除用戶的目錄
參數 作用
-f 強制刪除用戶
-r
root@juzuodaliyun:/home userdel -r testuser
userdel: group testuser not removed because it is not the primary group of user testuser.
userdel: testuser mail spool (/var/mail/testuser) not found
userdel: /home/testusername/ not owned by testuser, not removing
# 查看是否刪除
root@juzuodaliyun:/home id testuser
id: ‘testuser’: no such user

百度百科
微軟社區

上一篇,關於Linux中的特殊符號、重定向、環境變量

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章