一.linux用戶與組的概念
linux是多用戶多任務的操作系統,在同一時間內多個用戶可以同時登陸系統,使用服務器所提供的計算能力,這篇文章就簡單講述一下linux下用戶相關的操作。
二.linux用戶與組相關的配置文件詳細講解
linux使用純文本文件記錄系統的配置信息,用戶相關的信息主要記錄在以下幾個文件中:
/etc/passwd 用戶登錄名,uid等信息
/etc/shadow 用戶密碼相關
/etc/group 用戶組名,gid等信息
/etc/gshadow 用戶組密碼相關信息
1.passwd文件說明
使用more命令可以查看passwd文件中的內容,取出其中的幾行,如下:
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
.
.
.
hex:x:500:500:rhel5.8:/home/hex:/bin/bash
可以看到每一行都由:分隔出7列,每一列的含義可以使用man命令進行查看:
# man 5 passwd
現在取最后一行為例進行簡單的說明:
hex:x:500:500:rhel5.8:/home/hex:/bin/bash
1.登陸名
此處的用戶名為hex
2.密碼
x 表示密碼記錄在/etc/shadow文件中,如果為空或!!表示不允許登陸;
3.用戶ID
此處這個hex用戶的uid為500,為一般用戶;
在linux系統中,uid為0的是管理員用戶(管理員唯一),默認登陸名為root,管理員在系統中,是神一般的存在,擁有任何操作的權力,不使用root登陸系統是一個很好的習慣,畢竟你是一個凡人,凡人難免會犯錯。
1--499為系統用戶,系統用戶是為服務或系統進程所指定的用戶,一般不能登陸系統。
500--60000為一般用戶,就是平常操作使用的用戶,例如hex
4.組ID
一般情況下,在新建一個用戶時,如非特殊指定,系統會自動創建一個組作為該用戶的基本組,組ID與用戶ID值相同。
5.用戶的備注信息(comment)
6.用戶的家目錄
root的家目錄為/root,一般用戶的家目錄在/home路徑下
7.用戶的shell
用戶所有可選的shell在/etc/shells文件中可以找到,注意/sbin/nologin表示不允許登陸,一般情況下可以使用/bin/bash
2.shadow文件簡要說明
從以上可以看出,passwd文件中記錄的第2的密碼字段絕大多數為x,表示用戶的密碼在shadow文件中,使用more查看shadow文件中的內容:
root:$1$DimMnyB4$4idLBpzEbC0seqCaQc7tS.:16456:0:99999:7:::
bin:*:16456:0:99999:7:::
.
.
.
hex:$1$DimMnyB4$4idLBpzEbC0seqCaQc7tS.:16456:0:99999:7:::
同樣使用man 5 shadow
命令可以查看每個字段的具體信息,現在做一個簡單的說明:
1.登陸名
2.加密后的密碼
3.從1970-1-1到上次密碼修過所經過的天數,(就是指上次修改密碼的日期)
4.密碼將被允許修改之前的天數 (0 表示“可在任何時間修改” )
指從設置或修改密碼那天起,密碼在多少天內不允許被改變;例如我是root用戶,在今天給hex用戶設置了一個密碼,并且想讓這個密碼在其后的7天內都不允許修改,那么可以把這個字段的值設置為7,一般很少使用。
5.兩次修改口令間隔最多的天數;
這個能增強管理員管理用戶口令的時效性,應該說在增強了系統的安全性;如果是系統默認值,是在添加用戶時由/etc/login.defs文件定義中獲取,在PASS_MAX_DAYS 中定義;
6.提前多少天警告用戶口令將過期
當用戶登錄系統后,系統登錄程序提醒用戶口令將要作廢;如果是系統默認值,是在添加用戶時由/etc/login.defs文件定義中獲取,在PASS_WARN_AGE 中定義;
7.在口令過期之后多少天禁用此用戶
此字段表示用戶口令作廢多少天后,系統會禁用此用戶,也就是說系統會不能再讓此用戶登錄,也不會提示用戶過期,是完全禁用;
8.用戶過期日期
此字段指定了用戶作廢的天數(從1970年的1月1日開始的天數),如果這個字段的值為空,帳號永久可用;
9.保留字段,目前為空,以備將來Linux發展之用
以上信息不需要記憶,只需要了解有哪幾個文件與系統管理相關,實際過程中,可以隨時通過man命令來查看具體細節。