Linux學習筆記——使用者管理

來源:互聯網
上載者:User

使用者管理

1、使用者管理的設定檔
使用者資訊檔 /etc/passwd

root:x:0:0:root:/root:/bin/bash
使用者名稱:密碼位:UID:GID:注釋性描述:宿主目錄:命令直譯器

man 5 passwd
每行表示一個使用者
[root@lovelock frost]# wc -l /etc/passwd
30 /etc/passwd
則使用者總數是30

Linux使用者分為三類
超級使用者 root UID=0
普通使用者 UID=500~60000
偽使用者 UID=1~499

偽使用者特點
1)偽使用者與系統和服務程式相關
bin、daemon、shutdown、halt等任何Linux系統都有這些偽使用者
mail、news、games、apache、ftp、mysql及sshd等,與Linux系統的進程有關
2)偽使用者通常不需要或無法登入系統
3)可以沒有宿主目錄
不可能有使用者不屬於任何使用者組,或者按照部門分組
[root@lovelock frost]# grep frost /etc/passwd
frost:x:500:500::/home/frost:/bin/bash

使用者組特點
每個使用者至少屬於一個使用者組
每個使用者組可以包含多個使用者
同一使用者組的使用者享有該組共有的許可權
 
Linux中使用者組不能屬於另外一個使用者組
描述資訊可描述可不描述,但建議給出
宿主目錄用來存放自己的基本資料,如果不手動建立,就會在home目錄下建立於使用者同名的目錄,為宿主目錄
使用者使用的shell,預設是bash

MD5加密是單向無法復原的,輸入位元不確定,輸出位元是一定的

密碼檔案 /etc/shadow
儲存了真正的使用者密碼

格式說明
root:$6$nqM2zfLVAMfeCClh$aaC1a/ECqrZXt6dOFH7IZRkDcM3Ex3A2jfnP5VW51j2JRCMM3RplNWK
UF0E/zM.aPmOE5zVeM1cFVhkYGv7lK1:15564:0:99999:7:::
使用者名稱:加密密碼:最後一次修改時間:最小時間間隔:最大時間間隔:警告時間:帳號閑置時間:失效時間:標識
使用者名稱:使用者登入時用的使用者名稱
密碼:加密後的密碼,如果將密碼刪除不是不能登入,而是不要求輸入密碼就能登入
最後一次修改時間:從1970年1月1日開始算起的
最小間隔時間:使用者最後一次修改密碼的時間
最大間隔時間:密碼保持有效最多天數,強迫使用者不更改密碼就不能登入
警告時間:從系統開始警告到密碼失效的天數,當還剩這個天數時系統會提醒使用者更改密碼
帳號閑置時間:使用者多少天沒有登入過了
失效時間:密碼時間失效的絕對天數,比如帳號被暫停(鎖定)
標識:一般不使用,為空白

使用者組檔案 /etc/group
使用者組密碼檔案 /etc/gshadow
使用者設定檔
/etc/login.defs
密碼長度,修改時間等的預設值
UID = 500~60000
GUID = 500~60000

/etc/default/useradd
相關的配置可以自己看懂

新使用者資訊檔 /etc/skel

登入資訊 /etc/motd
method of the day
可以改變本地的登入提示資訊,希望內部使用者看到的資訊寫到motd裡面
檔案許可權有個粘滯位
[root@lovelock ~]# ls -ld /tmp
drwxrwxrwt. 7 root root 4096 Aug 14 21:40 /tmp
如果一個目錄的許可權是777,才給它設定粘著位。這樣每個使用者都可以在這個目錄下建立檔案,但只能刪除自己是所有者的檔案。
粘著位=1,t

/etc/group
sys:x:3:bin,adm
組名:組密碼位:GID:組內使用者列表
添加組
groupadd webadmin
沒有什麼太大價值
-g用來指定組的ID
使用者管理命令
添加使用者useradd -g webadmin lovelock
常用選項:
-D 查看預設參數
-u 設定UID
-g 預設所屬使用者組ID
-G 指定使用者所屬多個組
-d 宿主目錄
-s 命令直譯器shell
-c 描述資訊
-e 指定使用者失效時間

gpasswd設定組密碼及管理組內成員
-a 添加使用者到使用者組
add
-d 從使用者組中刪除使用者
delete
-A 設定使用者組管理員
Administrator
-r 刪除使用者組密碼
remove
-R 禁止使用者切換為該組
使用者切換組可以用的命令
先切換到該使用者
newgrp 組名 
提示輸入密碼
完成

如果需要同時使兩個或兩個以上的使用者對一個目錄有寫入權限或其他特殊許可權,就需要建立一個組,使這兩個使用者都屬於這個使用者組,使該使用者組對這個目錄有相應的許可權。
Solaris和Aix中沒有gpasswd這個命令

使用者組管理命令
groupmod -n 改變組名
groupmod -g 改變組ID
如把webadmin組該名稱apache
groupmod -n ngix webadmin

使用者管理命令
pwck 檢測/etc/passwd檔案
如果多個人用vi對一個檔案進行寫操作就不能鎖定檔案,造成寫混亂
而如果用vipw就可以鎖定passwd檔案,一個使用者在編輯時其他使用者就無法再同時進行編輯,不會造成混亂
id 查看使用者ID和組資訊
su - username和su username的區別
前者會把使用者當前所在目錄和搜尋路徑切換到要目標使用者的宿主目錄和搜尋路徑,而後者不會。如下
[root@lovelock ~]# su - frost
[frost@lovelock ~]$ echo $PATH
/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/frost/bin
[frost@lovelock ~]$ exit
logout
[root@lovelock ~]# su frost
[frost@lovelock root]$ echo $PATH
/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
即su -會切換環境變數,而su不會

passwd -S username 查看使用者的密碼狀態,即對/etc/shadow/中的檔案進行的提取
[root@lovelock ~]# passwd -S frost
frost PS 2012-08-14 0 99999 7 -1 (Password set, MD5 crypt.)

鎖定使用者,因為可能一個使用者很久沒有登入了,或可能有違規操作,需要禁用。原理是MD5加密產生的255位的字串,加密後就會在前面多加兩個歎號,這時密碼就無法驗證,所以就被鎖定了。
passwd -l jack或usermod -L jack
恢複使用者鎖定
passwd -u jack或usermod -U jack
who可以查看登入的使用者,w可以看到更詳細的資訊,是用遠程登入還是直接登入,該使用者在執行的命令都可以看到
vigr可以在編輯/etc/group時鎖定該檔案
可以用find命令尋找在刪除某個使用者後隸屬於該使用者的檔案
find /home -user jack -ok rm {} \;
chage -l jack
[root@lovelock ~]# chage -l frost
Last password change                                    : Aug 14, 2012
Password expires                                        : never
Password inactive                                       : never
Account expires                                         : never
Minimum number of days between password change          : 0
Maximum number of days between password change          : 99999
Number of days of warning before password expires       : 7

啟用或停用shadow功能
pwconv/pwunconv
grpconv/grpunconv
authconfig

大量新增使用者

newusers 匯入使用者資訊檔
pwunconv 取消shadow password功能
chpasswd 匯入密碼檔案(格式:使用者名稱:密碼)
然後pwunconv
然後匯入使用者的密碼檔案比如
newuser < user.info
pwunconv
chpasswd < passwd.info
pwconv
這時redhat內建的,比較麻煩,簡單的是寫一個shell指令碼。

使用者授權
限制使用者su為root
建立一個使用者組,將/bin/su許可權中的其他人位設定為0,再將需要的使用者添加到該組。
sudo在執行sudo命令時臨時成為root
不會泄漏root口令
僅向使用者提供有限的命令使用許可權
sudo不僅可以授權使用者執行root可以執行的命令,也可以讓普通身份以root身份執行任何命令。命令可以精確化,選項可以指定。關鍵

案例
讓普通使用者完全管理apache
1、編輯Apache的設定檔
2、使用Apache的啟動指令碼
3、更新網頁
以上的許可權
1、a設定使用者為設定檔的所有者 chown
     b改變檔案的所屬組,把使用者加入該組,授予該組寫入權限
     cvisudo使用者 地址=/bin/vi /etc/httpd/conf/httpd.conf
2、start reload fullstatus configtest
3、/var/www/html 改變所有者

許可權授予可以精細化,精確到參數

useradd lisi
usr/bin/passwd有一個特殊的許可權
[root@lovelock etc]# ls -l /usr/bin/passwd
-rwsr-xr-x. 1 root root 30768 Feb 22 19:48 /usr/bin/passwd
s=set uid
當一個可執行程式具有setuid許可權的時候,使用者執行這個程式時 ,就會以這個程式的所有者執行
chmod u+s 可以授予setuid許可權
           4755
必須是可執行檔才會如此,如果不是它會是大寫的S,這是一種警告。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.