一、用戶名文件。
root:x:0:0:root:/root:/bin/bash
共7部分。
1,用戶名。
2,存放的是該帳號的口令,(密碼)現存於/etc/shadpw/,所以現在用X表示。
3,代表用戶標示號, uid
4,組 標示號,gid
5,註釋說明。沒有實際意義
6,用戶的加目錄。
7,用戶的shell。
二、密碼文件
user1:$6$X/dAMmCG$uLvF2l/Df/TgldEWVc7lL93bVxjKDpLStDWYcMD0DdN7a/VUwdl1PcEhYBOjTwOQd4JynfS/Vo53gwRJULW/j0:17090:0:99999:7:::
共9個字段
1,用戶名。
2,用戶密碼。(加密了)
3,從1970年1月1日 到 上次更改密碼的時間。 17090天
4,要過多少天纔可以更改密碼。默認是0.即不限制,
5,密碼多少天后到期。即 在多少天內必須更改密碼。默認9999
6,密碼到期前的預警。設置爲7,即密碼到期前7天時發出警告。
7,賬戶失效期限。
8,賬號的生命週期。
9,作爲保留,沒什麼意義。
三、增加和刪除用戶以及組
#groupadd 組名
#groupadd -g 組名 設定改組的gid
#groupdel 組名 刪除改組
#useradd 用戶名
#useradd -u 自定義 UID
#useradd -g 使其屬於某個已存在的某個組,後面也可以跟組id,也可跟組名。
#useradd -d 自定義用戶的家目錄
#useradd -M 不建立家目錄
#例如
#useradd -u510 -g 513 -M -s /sbin/nologin user11 (/sbin/noloogin ,這個賬戶不能登錄)
#userdel 用戶 刪除用戶。
#userdel -r 用戶 刪除賬戶時,連同家目錄一起刪除。
四、usermod 修改用戶屬性
#usermod -u 用戶 修改uid
-g 修改gid
-G 添加擴展組(使某個用戶屬於多個組)
-d 更改家目錄
-s 修改shell
-L 鎖定 -U 解鎖
五、passwd修改用戶密碼。
#passwd 直接修改root用戶的密碼
#passwd user1 更改user1的密碼
mapasswd 自動生成密碼命令
安裝;
#yum install -y expect
#mkpasswd 直接自動生成密碼
#mkpasswd -l 12 -s 0 -d 3
-l 12 ,表示長度12位。-s 指定特殊字符個數。 -d 指定數字的個數。
一條命令修改用戶密碼,比較適合用在shell腳本中。
#echo -e "密碼"|passwd --stdin user1
六、su 切換用戶
root用戶登錄時
#su user1 切換到user1
#su - user1 -c "touch /tmp/1.txt" 直接以某個用戶的身份去執行一條命令,在腳本中比較合適。
user1登錄時
#su 直接切換到 root用戶。此時root用戶的家目錄與user1 一樣。
#su - ,切換到 root 用戶,此時目錄爲root賬戶的家目錄。、
七、sudo詳解。
使普通用戶,利用sudo這個命,令去執行一個只有root用戶才能執行的命令,只需要普通用戶的密碼。
安裝命令。
#yum install -y visudo
#visudo
找到,root ALL=(ALL) ALL
設置 user1 ALL=(root) NOPASSWD: /bin/ls,/bin/cat
三部分,
最左邊,爲用戶名,指定哪個用戶擁有sudo權利,
中間,等號左邊是用戶名,即普通用戶可以切換到哪個用戶的身份,比如,user1 切換到 root
等號右邊括號內,指定用戶名或主機IP
最右邊,設定可使用的命令,寫入命令的絕對路徑,多個命令用分號隔開。
多個用戶組設定
#visudo
找到
## Allows people in group wheel to run all commands
# %wheel ALL=(ALL) ALL
把#去掉,(前面加# 號,表示失效)。
然後在最後面輸入
User_Alias USER_SU=user1,user2,user3
Cmnd_Alias SU=/bin/su
USER_SU ALL=(ALL) NOPASSWD: SU
保存退出。
此時可使用user1,2,3 這3個賬戶登錄Linux,執行命令"sudo su -" ,切換到root,獲取root賬戶的所有權利,且不需要輸入user的密碼。