Linux賬號管理

用戶在計算機中識別并不是通過名字,而是通過ID進行識別。
每個登錄的用戶都至少兩個ID,一個用戶ID稱UID,一個為用戶組ID為GID

關于修改用戶UID GID等可以在/etc/passwd中修改,但是注意若不修改回來,就會導致很多文件的歸屬問題,因為文件不會跟隨用戶UID改變而更改所屬ID,這樣會導致修改的用戶失去之前文件的所有權。甚至連自己的目錄也無法訪問

/etc/passwd 并沒有關于賬戶密碼的信息,實際密碼其實是放在/etc/shadow,但我并沒看到。。。
可能是加密的原因吧

一般UID有講究

  • 0為系統(tǒng)管理員
  • 1-499為系統(tǒng)賬號(1-99為系統(tǒng)自帶的賬號,100-499為用戶有需要可自建)通常是不可登錄的
  • 500-65535 為用戶可登錄賬號

同理對于組也有 /etc/group /etc/gshadow對應GID信息和密碼信息,其實和上面兩個大同小異

特別的,如果想一個用戶組加入其他用戶可在最后第四字段加上 “用戶1,用戶2....”

一旦一個用戶是用戶組A和B 這樣它能獲得權限的并集

查看當前賬戶的用戶組 groups

groups出現(xiàn)的第一個用戶組就是你的有效用戶組,你創(chuàng)建的文件都是屬于這個用戶組的,而不屬于另一個。你可以通過newgrp +用戶組切換賬戶的有效用戶組

其實newgrp切換有效用戶組,其實就是換了一個新的shell環(huán)境,如果退出用exit

創(chuàng)建賬戶 useradd .... 用戶賬戶名
-u UID -g 初始用戶組 -G 次要用戶組 ...

一般來說用戶賬戶會創(chuàng)建主文件夾,而系統(tǒng)賬號(1-499)是不會的

Centos還會讓用戶創(chuàng)建一個用戶組,但也有系統(tǒng)如SuSE會讓新創(chuàng)建的用戶隸屬于一個默認用戶組

關于useradd中的默認值在/etc/default/useradd文件中,也可通過useradd -D 中查看

/etc/login.defs是關于賬戶密碼管理等配置

添加密碼就是
passwd 用戶名 //若沒說就是修改自己密碼

passwd還能讓賬戶密碼失效,不讓用戶登錄 (根本原因是改變了/etc/shadow中密碼的長度)

更詳細管理密碼的期限,過期時期,警告時期,失效時期什么的就用chage命令

對帳戶進行修改則使用usermod 這是關系到/etc/passwd /etc/shadow等文件的修改

userdel 刪除用戶 參數-r 將主文件夾也刪除

chfn 賬號名 修改賬戶的個人信息,是真的個人信息比如說真名,電話什么的。(在/etc/passwd可找到沒什么用)

chsh 修改賬戶的使用shell
-l 當前可用的shell
-s shell地址 修改shell

id 查詢自己賬戶的UID GID 等ID信息

新增刪除用戶組

新建用戶組
groupadd -g gid /-r(新建的用戶組是系統(tǒng)用戶組) 用戶組

修改用戶組
groupmod -g gid -n group_name 用戶組

刪除用戶組(有用戶關聯(lián)(作為初始用戶組)的話不能刪除)
groupdel 用戶組

用戶管理員
gpasswd -A user1,user2...... -M user4 groupname
代表將user1,user2....作為groupname的group管理員
而將user4作為成員添加進組中 (注意管理員并不意味著已經進入組中,不過它可以自己添加自己進去)

g'passwd groupname 為這個組添加密碼

對于組管理員來說可進行這個操作

gpasswd [-ad] user groupname a為添加,d為刪除

ACL

更加精確地控制用戶權限

針對用戶,用戶組設置權限
可以新建的文件目錄設置默認的權限

賬號切換

切換身份 su
主要參數 - 用戶名 代表以login-shell登錄系統(tǒng) 如果后面沒有加用戶名就代表為root身份
-l 和上面類似

注意su 有沒有加-差別很大,沒有加-的話no-login狀態(tài)登錄,雖然的確是變了身份,但其實很多變量還是不會改變身份。

所以如果是徹底轉換身份 應該是 su - 用戶

如果只是想執(zhí)行一個命令則可以用sudo (雖然su -c也可以)

sudo [-b] [-u 新用戶賬號] +命令 (-b 讓后續(xù)命令讓系統(tǒng)自動執(zhí)行,而不與當前的 shell產生影響

但實際上能否使用sudo 要看 /etc/sudoers中有沒有這個賬號但是我們不用vim去修改這個文件(有語法規(guī)定)

采用visudo,然后進入一個文件也是一堆文字注釋

然后你在 root ALL=(ALL) ALL 下添加 用戶名 ALL=(ALL) ALL 就可

什么意思呢? 其實是 用戶賬號 登陸者來源主機名=(可切換的身份) 可執(zhí)行的命令

也可設置為組支持 就是同樣的操作,只不過在組名左邊加上%
這樣只要在這個組中的用戶都可以進行用戶轉換

命令可以指定 但是要用絕對路徑 不過我們可以在里面設置別名 比如User_Alias 注意別名要全大寫

用戶信息傳遞

last 可以查詢該主機登錄信息
w who 顯示當前登錄的賬號
lastlog 表示各個用戶上次登錄的日期 (其實是在查詢文件 /var/log/lastlog)

用戶聊天

我們可以和其他用戶進行在線交流
write 賬號 [用戶所在終端接口] (我們可通過who進行查詢,接下來輸入文字內容,然后ctrl+d 輸入完畢)
這時候另一方就會無條件地收到信息,如果不想接收信息則 mesg n ,可以直接mesg查看狀態(tài)
但是root老大的信息還是會被收到

我們也可以發(fā)送廣播 wall + 信息 這樣所有人都會接收到(除了mesg n的賬戶)

上述聊天是針對在線的用戶進行交流,如果想離線交流就要采用郵箱的方式,我們郵箱都會放在/var/spool/mail/用戶

mail 賬戶
subject: 標題
正文
. //這個點很關鍵,代表結束

然后接收方就可以用mail,進入郵箱界面
這是常見命令 數字代表第幾個郵件,enter則讀取信息
然后 d+數字代表刪除信,h+數字則列出信件清單,同時將準備讀取該序號的信件
x 不操作則離開,之前刪除的信件操作都為無效
q 則代表保存離開,將剛才刪除的信件移除,或者將閱讀過的信件存入~/mbox當中 如果之后想讀取未刪除但已讀的信件,就要 mail -f ~/mbox 可能~要用絕對路徑表示

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容