參考資料:
http://www.linuxidc.com/Linux/2014-07/104445.htm Linux入門教程:如何手動創建一個Linux用戶
http://www.linuxidc.com/Linux/2012-05/60754.htm Linux用戶管理命令
前言:
所有用戶名會在/etc/passwd文件中保存
cat /etc/passwd 可以查看所有用戶的信息,比如剛才創建的linuxidc用戶 linuxidc:x:1002:1002:linuxidc,101,186525810**,186525810**:/home/linuxidc:/bin/bash 基本格式: 用戶名:口令:用戶標識號:組標識號:注釋性描述:主目錄:登錄Shell,中間用:隔開 注意: 1.口令 這里用x 表示 真正的密碼放在了/etc/shadow文件,這是shadow文件里面linuxidc的密碼: linuxidc:$6$v7uh0ctV$borVraMjOPhMjYV8YCVcmwylKb84djRm5yVWNbKYHxrcFLLqlSsx.hbcW.Ouk2A05CyChx7zZlRV3wZMuH0hE0:15480:0:99999:7::: 已經被加密了,所以比較安全。 2.組標識號對應/etc/group中一行 linuxidc:x:1002: group文件格式參考: /etc/group 文件文件的格式和 /etc/passwd 文件格式類似,它也是一個純文本文件,定義了每個組中的用戶。每行的格式是: group_name:passwd:GID:user_list 它們的含義如下: password:組口令。此域中的口令是加密的。如果此域為空,表明該組不需要口令。
/home/username ==>用戶主目錄。一個用戶會在/home/目錄下存在一個用戶名為文件名的文件夾
/etc/group (用戶組)
/etc/shadow (密鑰文件)(為每個用戶的密碼使用不同加密方式)
使用命令創建用用戶就是會在
1、passwd文件創建含用戶名的相關配置
2、為用戶生成主目錄,主目錄中當然也存在一些必要文件
3、為用戶指定用戶組(使用adduser會自動創建username組並將username用戶加入到username組中)
4、就是設置密碼還有指定登錄的shell版本
-------如果沒有指定shell版本,在登陸時候不會顯示前綴,只會以$開頭(對於強迫症影響很大)

正常版本 用戶名@服務器名:

創建/刪除用戶的方式
adduser: 會自動為創建的用戶指定主目錄、系統shell版本,會在創建時輸入用戶密碼。(屬於傻瓜式操作,輸入用戶名密碼系統會自動為你創建用戶,用戶組等)
useradd:需要使用參數選項指定上述基本設置,如果不使用任何參數,則創建的用戶無密碼、無主目錄、沒有指定shell版本。
useradd創建用戶
常用參數: -d 指定用戶主目錄,一般在/home/目錄下創建主目錄
-m 為用戶創建主目錄,需要和-d一起使用
-s 指定登陸時的shell版本
一般切換為root用戶,再創建用戶
useradd abc 創建用戶
passwd abc 為用戶設置密碼
上面只創建用戶和設置密碼,useradd abc 會自動會為用戶創建主目錄。
接下來看帶參數創建用戶
useradd -md /home/abc -s /bin/bash abc 指定主目錄,指定shell版本
passwd abc
userdel abc //刪除用戶 這只是簡單刪除命令
userdel刪除用戶
userdel:
功能:刪除用戶
選項:
-r:刪除用戶的同時、home目錄的用戶文件一並刪除
-f: 強制刪除用戶 ,這個不會刪除用戶的家目錄,但家目錄的所有者只會顯示為數字id,而不是用戶名(這個會導致系統不一致,
這個選項不會斷開 該用戶已有的 SSH 鏈接。因此,即使用戶已經不存在,
但實際上仍是登錄狀態,並且是活躍用戶。但是當用戶登出后不可再登錄,因為用戶已經被刪除。)
刪除用戶之前不需要將用戶從用戶組中移除出去
For example
刪除tom用戶並將其家目錄一並刪除:
# userdel -r tom
有些時候用戶已登錄,會提示刪除不了
將用戶加入/移除到用戶組
使用usermod命令
usermod -a -G root abc 將用戶abc加入到root用戶組中,這樣abc用戶就具有的該組的用戶所具有的權限
usermod -g root abc 將abc的主要用戶組改為root用戶組
gpasswd -d user group 將一個用戶從某個組中刪除,這個時候需要保證 group 不是 user 的主組。
注意:
usermod -G groupname username(這個會把用戶從其他組中去掉)
usermod -a -G groupname username(加參數a不會移除用戶以加入的用戶組)
從組中刪除用戶
編輯/etc/group 找到GROUP1那一行,刪除 A
或者用命令
gpasswd -d A GROUP
創建/刪除用戶組
也可以在新建用戶時候新建用戶組
useradd -g 新用戶組名 用戶名 //使用-g參數來創建用戶組
直接創建/刪除用戶組
groupadd 用戶組名 //增加用戶組
groupdel 用戶組名 //刪除用戶組
權限:
-rw-rw-r-- 1 zwh zwh 1910 Jan 4 03:09 client.py
1-3位數字代表文件所有者的權限,4-6位數字代表同組用戶的權限,7-9數字代表其他用戶的權限。
權限:r, w, x 對應 讀、寫、可執行
r對應數字4,w對應2,x對應1
通過4、2、1的組合,得到以下幾種權限:0(沒有權限);4(讀取權限);5(4+1 | 讀取+執行);6(4+2 | 讀取+寫入);7(4+2+1 | 讀取+寫入+執行)
rwx:可讀可學可執行
r--:只讀
r-x:讀和執行
---:無權限
八進制表示:(可忽略。。)
0 000 ---:無權限
1 001 --x: 執行
2 010 -w-: 寫
3 011 -wx: 寫和執行
4 100 r--: 只讀
5 101 r-x: 讀和執行
6 110 rw-: 讀寫
7 111 rwx: 讀寫執行
給文件設置權限 chmod 權限 文件名
chmod也可以用數字來表示權限如 chmod 777 file
語法為:chmod abc file
其中a,b,c各為一個數字,分別表示User、Group、及Other的權限。
r=4,w=2,x=1
若要rwx屬性則4+2+1=7;
若要rw-屬性則4+2=6;
若要r-x屬性則4+1=7。
范例:
chmod a=rwx file
和
chmod 777 file
效果相同
chmod ug=rwx,o=x file
和
chmod 771 file
效果相同
若用chmod 4755 filename可使此程序具有root的權限
chmod命令詳細用法
總結
用戶管理命令:useradd, userdel, usermod, passwd, chsh, chfn, finger, id, chage
- finger: 查看用戶帳號信息
- usermod:修改用戶帳號屬性
- chsh: 修改用戶的默認shell
- chfn:修改注釋信息
- passwd:密碼管理
組管理命令:groupadd, groupdel, groupmod, gpasswd
- gpasswd:為組設定密碼
權限管理:chown, chgrp, chmod, umask
- chown: 改變文件屬主
- chgrp:改變文件屬組
- chmod: 修改文件的權限
useradd命令參數說明
Usage: useradd [options] LOGIN useradd -D useradd -D [options] Options: -b, --base-dir BASE_DIR base directory for the home directory of the new account -c, --comment COMMENT GECOS field of the new account -d, --home-dir HOME_DIR home directory of the new account -D, --defaults print or change default useradd configuration -e, --expiredate EXPIRE_DATE expiration date of the new account -f, --inactive INACTIVE password inactivity period of the new account -g, --gid GROUP name or ID of the primary group of the new account -G, --groups GROUPS list of supplementary groups of the new account -h, --help display this help message and exit -k, --skel SKEL_DIR use this alternative skeleton directory -K, --key KEY=VALUE override /etc/login.defs defaults -l, --no-log-init do not add the user to the lastlog and faillog databases -m, --create-home create the user's home directory -M, --no-create-home do not create the user's home directory -N, --no-user-group do not create a group with the same name as the user -o, --non-unique allow to create users with duplicate (non-unique) UID -p, --password PASSWORD encrypted password of the new account -r, --system create a system account -R, --root CHROOT_DIR directory to chroot into -s, --shell SHELL login shell of the new account -u, --uid UID user ID of the new account -U, --user-group create a group with the same name as the user -Z, --selinux-user SEUSER use a specific SEUSER for the SELinux user mapping
