useradd
useradd 命令用來創建或更新用戶信息。
-c:加上備註文字,備註文字保存在passwd的備註欄中。
-d:指定用戶登入時的主目錄,替換系統默認值/home/<用戶名>
-D:變更預設值。
-e:指定賬號的失效日期,日期格式爲MM/DD/YY,例如06/30/12。缺省表示永久有效。
-f:指定在密碼過期後多少天即關閉該賬號。如果爲0賬號立即被停用;如果爲-1則賬號一直可用。默認值爲-1.
-g:指定用戶所屬的羣組。值可以使組名也可以是GID。用戶組必須已經存在的,期默認值爲100,即users。
-G:指定用戶所屬的附加羣組。
-m:自動建立用戶的登入目錄。
-M:不要自動建立用戶的登入目錄。
-N: 不要創建以用戶名稱爲名的羣組。
-n:取消建立以用戶名稱爲名的羣組。
-r:建立系統賬號。
-s:指定用戶登入後所使用的shell。默認值爲/bin/bash。
-u:指定用戶ID號。該值在系統中必須是唯一的。0~499默認是保留給系統用戶賬號使用的,所以該值必須大於499。
1.創建用戶
useradd tester1
2.-N 選項,即不要生成與用戶同名的羣組。查看下 /etc/passwd 文件,發現 tester2 用戶的初始羣組ID是100。這個100是哪來的?有ID爲100的羣組嗎?其實100作爲 -N 的默認值是寫在配置文件中的。不管有沒有ID爲100的羣組,都是這個值。當然我們也可以通過修改配置文件來改變這個默認值!
useradd tester2 -N
3.sudo 是一個非常有權勢的羣組, tester3 加入到這個羣組
useradd tester3 -g sudo
4.添加到非初始化組
useradd tester4 -G sudo
5.創建用戶的同時創建用戶的家目錄,必須指定 -m 選項
useradd -m tester5
6.指定家目錄,但此時不生成目錄 abc
useradd -d /home/abc tester6
7.生成目錄 abcd,並且目錄下默認存在文件
useradd -d /home/abcd -m tester7
8.創建一個帶有家目錄並且可以登錄 bash 的用戶
useradd -m -s /bin/bash tester8
9.創建一個沒有家目錄且不能登錄的用戶
useradd -s /sbin/nologin tester9
10.創建時把用戶加入不同的用戶組
useradd -m -G xxx,sudo tester4
11.建立一個新用戶賬戶testuser1,並設置UID爲544,主目錄爲/usr/testuser1,屬於users組:
useradd -u 544 -d /usr/test1 -g users -m test11
12.新創建一個oracle用戶,這初始屬於oinstall組,且同時讓他也屬於dba組。
useradd oracle -g oinstall -G dba
usermod
usermod命令用於修改用戶的基本信息。usermod命令不允許你改變正在線上的使用者帳號名稱。當usermod命令用來改變user id,必須確認這名user沒在電腦上執行任何程序。
usermod(選項)(參數)
選項
-c<備註>:修改用戶帳號的備註文字;
$ useradd -c nihao han
$ cat /etc/passwd |tail -1
han:x:2019:2019:nihao:/home/han:/bin/bash
$ usermod -c hello han
$ cat /etc/passwd |tail -1
han:x:2019:2019:hello:/home/han:/bin/bash
把han用戶的備註信息nihao改爲hello
-d<登入目錄>:修改用戶登入時的目錄;
$ usermod -d /home/qwe han
$ cat /etc/passwd |tail -1
han:x:2019:2019::/home/qwe:/bin/bash
-e<有效期限>:修改帳號的有效期限;
[root@centos6 ~]$ cat /etc/shadow |tail -1
han:!!:17549:0:99999:7:::
[root@centos6 ~]$ usermod -e 3 han
[root@centos6 ~]$ cat /etc/shadow |tail -1
han:!!:17549:0:99999:7::3:
-f<緩衝天數>:修改在密碼過期後多少天即關閉該帳號;
[root@centos6 ~]$ usermod -f 4 han
[root@centos6 ~]$ cat /etc/shadow |tail -1
han:!!:17549:0:99999:7:4:3:
-g<羣組>:修改用戶所屬的羣組;
[root@centos6 ~]$ usermod -g yingyu han
[root@centos6 ~]$ id han
uid=2019(han) gid=506(yingyu) groups=506(yingyu)
-G<羣組>;修改用戶所屬的附加羣組;
[root@centos6 ~]$ usermod -G shuxue han
[root@centos6 ~]$ id han
uid=2019(han) gid=506(yingyu) groups=506(yingyu),2020(shuxue)
-l<帳號名稱>:修改用戶帳號名稱;
[root@centos6 ~]$ usermod -l xiaoming han
[root@centos6 ~]$ cat /etc/passwd |tail -1
xiaoming:x:2019:506::/home/qwe:/bin/bash
[root@centos6 ~]$ id xiaoming
uid=2019(xiaoming) gid=506(yingyu) groups=506(yingyu),2020(shuxue)
-L:鎖定用戶密碼,使密碼無效;
[root@centos6 ~]$ usermod -L xiaoming
[root@centos6 ~]$ su lilei
[lilei@centos6 root]$ su xiaoming
Password:
su: incorrect password
-s:修改用戶登入後所使用的shell;
[root@centos6 ~]$ usermod -s /bin/sh xiaoming
[root@centos6 ~]$ cat /etc/passwd |tail -1
xiaoming:x:2019:506::/home/qwe:/bin/sh
-u:修改用戶ID;
[root@centos6 ~]$ usermod -u 1995 xiaoming
[root@centos6 ~]$ cat /etc/passwd |tail -1
xiaoming:x:1995:506::/home/qwe:/bin/sh
-U:解除密碼鎖定。
[root@centos6 /home]$ usermod -U xiaoming
[root@centos6 /home]$ su lilei
[lilei@centos6 home]$ su xiaoming
Password:
[xiaoming@centos6 home]$
userdel
userdel命令用於刪除給定的用戶,以及與用戶相關的文件。若不加選項,則僅刪除用戶帳號,而不刪除相關文件。
語法
userdel(選項)(參數)
選項
-f:強制刪除用戶,即使用戶當前已登錄;
[root@centos6 ~]$ userdel wangcai
userdel: user wangcai is currently used by process 2727
[root@centos6 ~]$ cat /etc/passwd|tail -1
wangcai:x:2019:2021::/home/wangcai:/bin/bash
[root@centos6 ~]$ userdel -f wangcai
userdel: user wangcai is currently used by process 2727
[root@centos6 ~]$ cat /etc/passwd|tail -1
han:x:2018:2018::/home/han:/bin/bash
-r:刪除用戶的同時,刪除與用戶相關的所有文件。
[root@centos6 ~]$ ls /home/
lilei wangcai
[root@centos6 ~]$ userdel -r lilei
[root@centos6 ~]$ ls /home/
wangcai
剛纔刪除wangcai這個用戶時沒有加-r參數所以還保存有它的家目錄,加-r用戶lilei家目錄就沒了
請不要輕易用-r選項;他會刪除用戶的同時刪除用戶所有的文件和目錄,切記如果用戶目錄下有重要的文件,在刪除前請備份。
其實也有最簡單的辦法,但這種辦法有點不安全,也就是直接在/etc/passwd中刪除您想要刪除用戶的記錄;但最好不要這樣做,/etc/passwd是極爲重要的文件,可能您一不小心會操作失誤。