linux中useradd命令用法

來源:互聯網
上載者:User


命令:
useradd 添加使用者
adduser 添加使用者
passwd 添加密碼
usermode 修改使用者資訊
chsh 修改使用者shell
chage 修改帳號日期
chfn 修改使用者資訊
userdel 刪除使用者
groupadd 添加組
groupmde 修改組
groupdel 刪除群組
newgrp 切換基本組

systemd-network:!!:16982::::::
使用者名稱:密碼預留位置:UID:基本組ID:使用者備忘資訊:使用者家目錄:預設shell

當一個使用者建立完成後會將/etc/skel/下的檔案全部複製一份到/home/使用者目錄/下

[root@docker-node1 ~]# cat /etc/default/useradd
# useradd defaults file
GROUP=100 
HOME=/home
INACTIVE=-1 使用者建立非使用中
EXPIRE= 使用者到期期限
SHELL=/bin/bash   使用者bash
SKEL=/etc/skel  建立家目錄
CREATE_MAIL_SPOOL=yes  建立郵件緩衝池。(/var/mail會有相應使用者的緩衝池)
adduser:在centos中adduser是連結到useradd的

[root@docker-node1 ~]# which adduser
/usr/sbin/adduser
[root@docker-node1 ~]#

[root@docker-node1 ~]# ll /usr/sbin/adduser
lrwxrwxrwx. 1 root root 7 Jun 30 13:17 /usr/sbin/adduser -> useradd
[root@docker-node1 ~]#
指定UID: 前提是未重複使用的UID

useradd -u 1010 mark
[root@docker-node1 ~]# tail -1 /etc/passwd
mark:x:1010:1010::/home/mark:/bin/bash
[root@docker-node1 ~]#
如果指定了UID,且在下個使用者建立是,預設UID加1
-u:指定UID
-g:指定GID,既指定使用者的基本組,擔GID要事先存在

指定GID:前提是組ID必須建立或者存在
-g :建立並為其指定GID
-G :指定使用者附加組,組需事先存在
首先建立組,才能添加到組
groupadd linuxea

[root@docker-node1 ~]# groupadd linuxea
[root@docker-node1 ~]# tail -2 /etc/group
mark:x:1010:
linuxea:x:1011:
指定使用者到組

[root@docker-node1 ~]# useradd -g linuxea linuxea1
[root@docker-node1 ~]# tail -1 /etc/passwd
linuxea1:x:1012:1011::/home/linuxea1:/bin/bash
[root@docker-node1 ~]# tail -2 /etc/group
mark:x:1010:
linuxea:x:1011:
[root@docker-node1 ~]#
[root@docker-node1 ~]# id linuxea
uid=1011(linuxea) gid=1011(linuxea) groups=1011(linuxea)
[root@docker-node1 ~]# id linuxea1
uid=1012(linuxea1) gid=1011(linuxea) groups=1011(linuxea)
[root@docker-node1 ~]#
使用者類型分為管理員和普通使用者,在普通使用者中分為系統使用者和登入使用者,管理員為0,普通使用者從1-65535,而系統使用者:1-499,登入使用者500+

組:
基本組:顯示在/etc/passwd中的GID欄位組,為使用者的基本組
額外組:附加組:/etc/group

[root@docker-node1 ~]# useradd -G linuxea linuxea2
[root@docker-node1 ~]# tail -1 /etc/passwd
linuxea2:x:1013:1013::/home/linuxea2:/bin/bash
[root@docker-node1 ~]# tail -1 /etc/group
linuxea2:x:1013:
[root@docker-node1 ~]#
使用id則可以看出

[root@docker-node1 ~]# id linuxea2
uid=1013(linuxea2) gid=1013(linuxea2) groups=1013(linuxea2),1011(linuxea)
[root@docker-node1 ~]#
group中也可以看出附加組,當然,你也可以直接在檔案中添加附加組

[root@docker-node1 ~]# tail -3 /etc/group
linuxea:x:1011:linuxea2
linuxea2:x:1013:
[root@docker-node1 ~]#
-d:使用者目錄
使用者指定的目錄不能事先存在
指定家目錄和使用者名稱不一樣

[root@docker-node1 ~]# useradd -d /home/xiaoming xiaohong
[root@docker-node1 ~]# tail -1 /etc/passwd
xiaohong:x:1015:1015::/home/xiaoming:/bin/bash
[root@docker-node1 ~]#
指定家目錄位置
通常在home下,當然你也可自訂

[root@docker-node1 ~]# useradd -d /tmp/daxiong xiaoxiong
[root@docker-node1 ~]# tail -1 /etc/passwd
xiaoxiong:x:1016:1016::/tmp/daxiong:/bin/bash
[root@docker-node1 ~]#
-c指定備忘資訊

[root@docker-node1 ~]# useradd -c "linuxea" -d /tmp/user1 user1
[root@docker-node1 ~]# tail -1 /etc/passwd
user1:x:1017:1017:linuxea:/tmp/user1:/bin/bash
[root@docker-node1 ~]#
-s指定shell

[root@docker-node1 ~]# useradd -c "linuxea1" -d /tmp/user2 user2 -s /sbin/nologin
[root@docker-node1 ~]# tail -1 /etc/passwd
user2:x:1018:1018:linuxea1:/tmp/user2:/sbin/nologin
[root@docker-node1 ~]#
如果是nologin是無法登陸的,不會建立家目錄,系統使用者通常會使用
-g指定組

[root@docker-node1 ~]# useradd -g linuxea -d /home/user8 -s /sbin/nologin user8
[root@docker-node1 ~]# id user8
uid=1024(user8) gid=1011(linuxea) groups=1011(linuxea)
建立使用者並指定附加組

[root@docker-node1 ~]# useradd -G 1018 -d /home/user4 -s /sbin/nologin user4
[root@docker-node1 ~]# tail -2 /etc/group
user2:x:1018:user4
user4:x:1019:
[root@docker-node1 ~]#
建立使用者指定Uid,shell,家目錄

[root@docker-node1 ~]# useradd -u 1021 -d /home/user5 -s /sbin/nologin user5
[root@docker-node1 ~]# tail -1 /etc/passwd
user5:x:1021:1021::/home/user5:/sbin/nologin
[root@docker-node1 ~]#
-m:建立使用者時強制給使用者建立家目錄
-M:建立使用者是僅建立使用者不建立家目錄

[root@docker-node1 ~]# useradd user7 -M -s /sbin/nologin
[root@docker-node1 ~]# tail -1 /etc/passwd
user7:x:1023:1023::/home/user7:/sbin/nologin
-D:改變預設值,為useradd命令建立的使用者指定新的預設值

刪除使用者:
刪除使用者預設保留家目錄,如果需要刪除家目錄-r即可:userdel -r user8

檔案格式:
/etc/passwd:
username:x:UID:GID:comment:home:shell
/etc/group:
groupname:x:gid:user: list
家目錄複寫檔案連結:/etc/skel
預設配置:/etc/default/useradd
在沒有密碼的情況下,是不能登入的,只能使用管理員su切換

設定密碼:passwd
其中,只有管理root才能修改自己的密碼,使用passwd即可,如果修改其他使用者則passwd 使用者名稱即可
而普通使用者修改密碼要求輸入密碼複雜度如果不符合則會提示

[root@docker-node1 ~]# passwd linuxea
Changing password for user linuxea.
New password:
BAD PASSWORD: The password is shorter than 8 characters
Retype new password:
passwd: all authentication tokens updated successfully.
[root@docker-node1 ~]# su - linuxea
[linuxea@docker-node1 ~]$ passwd
Changing password for user linuxea.
Changing password for linuxea.
(current) UNIX password:  輸入當前密碼
New password:  輸入新密碼,如果新密碼複雜度不夠則會提示如下:
BAD PASSWORD: The password is the same as the old one
New password:
BAD PASSWORD: The password is the same as the old one
New password:
BAD PASSWORD: The password is the same as the old one
passwd: Have exhausted maximum number of retries for service
[linuxea@docker-node1 ~]$
[root@docker-node1 ~]# tail -1 /etc/shadow
user8:!!:16999:0:99999:7:::
[root@docker-node1 ~]#
shadow檔案說明:
user8:!!:16999:0:99999:7:::
username:加密密碼:最近一次的修改時間(從1970年1月1號到改密碼經過的天數):最短時間期限,為0不限制:最長使用到期日,為99999則為不限制:警告區間,離密碼到期剩下天數開始警告:非活動區間,帳號密碼登入則需要修改密碼:帳號到期期限,失效時間:預留,尚未使用

組密碼設定:gpasswd 組名
修改使用者屬性定義:
chsh修改shell

[root@docker-node1 ~]# tail -1 /etc/passwd
user8:x:1024:1011::/home/user8:/sbin/nologin
[root@docker-node1 ~]# chsh user8
Changing shell for user8.
New shell [/sbin/nologin]: /bin/bash
Shell changed.
[root@docker-node1 ~]# tail -1 /etc/passwd
user8:x:1024:1011::/home/user8:/bin/bash
[root@docker-node1 ~]#
修改使用者注釋:chfn
當然,你也可以唯寫一段

[root@docker-node1 ~]# chfn user8
Changing finger information for user8.
Name []: user8 backup
Office []: manila
Office Phone []: 150 8888 8888
Home Phone []: 119  

Finger information changed.
[root@docker-node1 ~]# tail -1 /etc/passwd
user8:x:1024:1011:user8 backup,manila,150 8888 8888,119:/home/user8:/bin/bash
[root@docker-node1 ~]#
如果你想直接修改資訊則可以使用usermod
usermod:
-u:修改uid
-g:修改gid
-G:修改附加組,如果預設有附加組,預設 -G會覆蓋,如果是添加在附加組之上需添加參數-a選項
[root@docker-node1 ~]# id user8
uid=1024(user8) gid=1011(linuxea) groups=1011(linuxea)
[root@docker-node1 ~]# groupadd test
[root@docker-node1 ~]# usermod -a -G test user8
[root@docker-node1 ~]# id user8
uid=1024(user8) gid=1011(linuxea) groups=1011(linuxea),1024(test)
[root@docker-node1 ~]#
-c:修改使用者注釋
-d:修改家目錄
[root@docker-node1 ~]# tail -1 /etc/passwd
user8:x:1024:1011:user8 backup,manila,150 8888 8888,119:/home/user8:/bin/bash
[root@docker-node1 ~]# usermod -m -d /tmp/user8 user8

如果不加-m則會報su: warning: cannot change directory to /tmp/user8: No such file or directory -d是不會遷移家目錄

[root@docker-node1 ~]# tail -1 /etc/passwd
user8:x:1024:1011:user8 backup,manila,150 8888 8888,119:/tmp/user8:/bin/bash
[root@docker-node1 ~]# su - user8
Last login: Sun Jul 17 02:45:03 EDT 2016 on pts/0
[user8@docker-node1 ~]$ ls
-s: shell
[root@docker-node1 ~]# usermod -s /sbin/nologin user8
[root@docker-node1 ~]# tail -l /etc/passwd|grep user8
user8:x:1024:1011:user8 backup,manila,150 8888 8888,119:/tmp/user8:/sbin/nologin
[root@docker-node1 ~]#
-l:修改登入名稱
[root@docker-node1 ~]# usermod -l linuxeacom1 user8
[root@docker-node1 ~]# tail -l /etc/passwd|grep user8
linuxeacom1:x:1024:1011:user8 backup,manila,150 8888 8888,119:/tmp/user8:/sbin/nologin
[root@docker-node1 ~]#
-L:鎖定使用者帳號
[root@docker-node1 ~]# passwd -l linuxeacom1
Locking password for user linuxeacom1.
passwd: Success
-U:解鎖
[root@docker-node1 ~]# passwd -u linuxeacom1
Unlocking password for user linuxeacom1.
passwd: Warning: unlocked password would be empty.
passwd: Unsafe operation (use -f to force)
[root@docker-node1 ~]#
加鎖和解鎖區別去在設定檔中會多加兩個!!,如下所示:

[root@docker-node1 ~]# tail -1 /etc/shadow
mark1:$6$XN4WjxlY$fSumbLmfUPTOnGdz0XdSLE5okMf39hnejX/KnrHqsdHzNx/3ADX1ldM..5mMmB5gZCUdMYdRSD.vMHeE4m9Pk.:16999:0:99999:7:::
當使用-l時則會添加!!

[root@docker-node1 ~]# passwd -l mark1
Locking password for user mark1.
passwd: Success
[root@docker-node1 ~]# tail -1 /etc/shadow
mark1:!!$6$XN4WjxlY$fSumbLmfUPTOnGdz0XdSLE5okMf39hnejX/KnrHqsdHzNx/3ADX1ldM..5mMmB5gZCUdMYdRSD.vMHeE4m9Pk.:16999:0:99999:7:::
-u取消

[root@docker-node1 ~]# passwd -u mark1
Unlocking password for user mark1.
passwd: Success
[root@docker-node1 ~]# tail -1 /etc/shadow
mark1:$6$XN4WjxlY$fSumbLmfUPTOnGdz0XdSLE5okMf39hnejX/KnrHqsdHzNx/3ADX1ldM..5mMmB5gZCUdMYdRSD.vMHeE4m9Pk.:16999:0:99999:7:::
[root@docker-node1 ~]#
修改組屬性定義:
-n:修改新組名
[root@docker-node1 ~]# tail -1 /etc/group
user9:x:1025:
[root@docker-node1 ~]# groupmod -n linuxeacom1 user9
[root@docker-node1 ~]# tail -1 /etc/group
linuxeacom1:x:1025:
[root@docker-node1 ~]#
-g: 修改gid
[root@docker-node1 ~]# groupmod -g 10250 linuxeacom1
[root@docker-node1 ~]# tail -1 /etc/group
linuxeacom1:x:10250:
[root@docker-node1 ~]#

修改帳號日期屬性:chage
-E:到期期限
-I:非活動期限
-m:最短使用到期日
-M:最長使用到期日
-W:警告區間
這些時間passwd也可以定義

樣本:
1,建立使用者為123,其id為3000,基本組為centos(組id3003),附加組為linuxea

groupadd linuxea
groupadd -g 3003 centos
useradd u 3000 -g centos -G linuxea 123
2, 建立使用者為redhat1,全名為redhat123,預設shell為nologin

useradd -c "redhat123" -s /sbin/nologin redhat1
3, 修改redhat1 ID號為4000,基本組為centos,附加組為linuxea和123

usermod -u 4000 -g centos -G linuxea,123 redhat1
4, 添加redhat1密碼,並設定密碼最短試用期為30天,最長為35天

passwd  redhat1
chage -m 30 -M 35 redhat1
5, 將redhat1 Shell修改為bin/bash

usermod -s /bin/bash redhat1
id使用
顯示uid

[root@docker-node1 ~]# id -u linuxeacom1
1024
顯示gid

[root@docker-node1 ~]# id -g linuxeacom1
1011
顯示所有gid

[root@docker-node1 ~]# id -G linuxeacom1
1011 1024
顯示基本組組名

[root@docker-node1 ~]# id -g -n linuxeacom1
linuxea
顯示附加組組名

[root@docker-node1 ~]# id -G -n linuxeacom1
linuxea test
[root@docker-node1 ~]#
su切換後調用命令

[root@docker-node1 ~]# su -l -c 'ls /tmp' mark
-classpath.txt   systemd-private-b6e5d402e0764baba1f123fba87fad8a-httpd.service-UCZo6x    tomcat.txt
daxiong          systemd-private-b6e5d402e0764baba1f123fba87fad8a-mariadb.service-cMjOIQ  user1
hsperfdata_root  tcp-status.txt                                                           user2
httpNUB.txt      tomcat2.txt                                                              user8
lib:lib.txt      tomcat3.txt                                                              zabbix_java_gateway_logback.xml.txt
[root@docker-node1 ~]#

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.