首页 > 代码库 > Linux字符界面下用户账户的设置
Linux字符界面下用户账户的设置
在Linux系统字符界面下创建、修改以及删除用户账户主要使用useradd,usermod和userdel这3个命令。
一.创建用户账户
创建用户账户就是在系统中创建一个新账户,然后为新账户分配用户UID、用户组群、主目录和登录shell等资源,新创建的用户账户默认是被锁定的,无法使用,需要使用passwd命令设置密码后才能使用。创建用户账户就是在/etc/passwd文件中为新用户增加一条记录,同时更新其他系统文件如/etc/shadow,/etc/group等。
使用 useradd命令可以在Linux系统下创建用户账户。
命令语法:
[root@redhat2 ~]# useradd
Usage: useradd [options] LOGIN
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
-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
例1:创建用户账户zhangsan并设置口令。
[root@redhat2 ~]# useradd lisi
[root@redhat2 ~]# useradd wangwu
[root@redhat2 ~]# passwd wangwu
Changing password for user wangwu.
New password:
BAD PASSWORD: it is WAY too short
BAD PASSWORD: is too simple
Retype new password:
passwd: all authentication tokens updated successfully.
[root@redhat2 ~]# cat /etc/passwd |grep lisi
lisi:x:502:502::/home/lisi:/bin/bash
[root@redhat2 ~]# cat /etc/shadow |grep lisi
lisi:!!:16442:0:99999:7:::
//查看/etc/shadow文件,可以看到在用户lisi的口令字段上显示的是“!!”,表示该用户还没有设置口令,不能登录到Linux系统。
[root@redhat2 ~]# cat /etc/passwd |grep wangwu
wangwu:x:503:503::/home/wangwu:/bin/bash
[root@redhat2 ~]# cat /etc/shadow |grep wangwu
wangwu:$1$MC.MaDLW$KFpEpYbJb6mwiAH72ixbb/:16442:0:99999:7:::
[root@redhat2 ~]#
//查看/etc/shadow文件,可以看到在用户wangwu的口令字段上显示的是加密的口令,表示该用户已经设置口令,能登陆到Linux系统。
例2:创建用户moon,并设置该用户UID为510。
[root@redhat2 ~]# useradd -u 510 moon
[root@redhat2 ~]# cat /etc/passwd | grep moon
moon:x:510:510::/home/moon:/bin/bash
[root@redhat2 ~]#
//查看/etc/passwd文件,可以看到用户moon的UID是510
例3:创建用户newuser,并设置该用户主目录为/home/www。
[root@redhat2 ~]# useradd -d /home/www newuser
[root@redhat2 ~]# cat /etc/passwd|grep newuser
newuser:x:511:511::/home/www:/bin/bash
//查看/etc/passwd文件,可以看到用户newuser的主目录是/home/www。
[root@redhat2 ~]# ls -l /home
total 24
drwx------ 4 lisi lisi 4096 Jan 7 05:29 lisi
drwx------ 4 moon moon 4096 Jan 7 05:45 moon
drwx------ 4 wangwu wangwu 4096 Jan 7 05:29 wangwu
drwx------ 4 newuser newuser 4096 Jan 7 05:53 www
drwx------. 4 yang yang 4096 Jun 2 2014 yang
drwx------ 4 zhangsan zhangsan 4096 Jan 7 05:26 zhangsan
[root@redhat2 ~]#
//用户newuser的主目录/home/www在创建用户时已经创建了。
例4:创建用户pp,并指定该用户是属于组群root的成员。
[root@redhat2 ~]# useradd -g root pp
[root@redhat2 ~]# cat /etc/passwd |grep pp
pp:x:512:0::/home/pp:/bin/bash
//查看/etc/passwd文件,可以看到pp用户GID字段为0,0为root组群的GID。
[root@redhat2 ~]# id pp
uid=512(pp) gid=0(root) groups=0(root)
[root@redhat2 ~]#
//使用id命令,可以看到用户pp是属于组群root的成员。
例5:创建用户abc,并设置该用户的shell类型是/bin/ksh。
[root@redhat2 ~]# useradd -s /bin/ksh abc
[root@redhat2 ~]# cat /etc/passwd | grep abc
abc:x:513:513::/home/abc:/bin/ksh
[root@redhat2 ~]#
例:[root@redhat2 ~]# su - abc
$ vi yang
#!/bin/ksh
echo "nihao!"
$ ksh yang
nihao!
$
//查看/etc/passwd文件,可以看到用户abc的shell类型是/bin/ksh。
二.修改用户账户
使用usermod命令能更改用户的shell类型、所属的用户组群、用户口令的有效期,还能更改用户的登录名。
[root@redhat2 ~]# usermod
Usage: usermod [options] LOGIN
Options:
-c, --comment COMMENT new value of the GECOS field
-d, --home HOME_DIR new home directory for the user account
-e, --expiredate EXPIRE_DATE set account expiration date to EXPIRE_DATE
-f, --inactive INACTIVE set password inactive after expiration to INACTIVE
-g, --gid GROUP force use GROUP as new primary group
-G, --groups GROUPS new list of supplementary GROUPS
-a, --append append the user to the supplemental GROUPS
mentioned by the -G option without removing
him/her from other groups
-h, --help display this help message and exit
-l, --login NEW_LOGIN new value of the login name
-L, --lock lock the user account
-m, --move-home move contents of the home directory to the
new location (use only with -d)
-o, --non-unique allow using duplicate (non-unique) UID
-p, --password PASSWORD use encrypted password for the new password
-s, --shell SHELL new login shell for the user account
-u, --uid UID new UID for the user account
-U, --unlock unlock the user account
-Z, --selinux-user new SELinux user mapping for the user account
例1:修改用户zhangsan的主目录为/home/kkk,并手动创建/home/kkk目录。
[root@redhat2 ~]# usermod -d /home/kkk zhangsan
[root@redhat2 ~]# cat /etc/passwd|grep zhangsan
zhangsan:x:501:501::/home/kkk:/bin/bash
[root@redhat2 ~]#
//查看/etc/passwd文件,可以看到用户zhangsan的主目录已经更改为/home/kkk
[root@redhat2 ~]# mkdir /home/kkk
//必须使用mkdir命令创建/home/kkk目录,这样用户zhangsan才能使用该主目录。
例2:修改用户wangwu的主目录/home/opop,并自动创建/home/opop目录。
[root@redhat2 ~]# usermod -d /home/opop wangwu
[root@redhat2 ~]# cat /etc/passwd|grep wangwu
wangwu:x:503:503::/home/opop:/bin/bash
[root@redhat2 ~]#
例3:修改用户wangwu的登录名为zhaoliu
[root@redhat2 ~]# usermod -l jiacheng zhangsan
[root@redhat2 ~]# cat /etc/passwd|grep jiacheng
jiacheng:x:501:501::/home/kkk:/bin/bash
例4:修改用户zhangsan在口令过期后20天就禁用该账号。
[root@redhat2 home]# useradd zhang
[root@redhat2 home]# cat /etc/shadow|grep zhang
zhang:!!:16443:0:99999:7:::
//用户zhang在口令过期后几天禁用该账号默认是没有设置的
[root@redhat2 home]# usermod -f 20 zhang
[root@redhat2 home]# cat /etc/shadow |grep zhang
zhang:!!:16443:0:99999:7:20::
//查看/etc/passwd文件,可以看到用户zhang将口令过期后20天就禁用该账号。
例5:修改用户yang所属的组群为root,该组群必须事先存在。
[root@redhat2 home]# usermod -g root yang
[root@redhat2 home]# cat /etc/passwd |grep yang
yang:x:500:0:yang:/home/yang:/bin/bash
[root@redhat2 home]#
例6:锁住用户yang口令,使口令无效。
[root@redhat2 home]# usermod -L yang
[root@redhat2 home]# passwd -S yang
yang LK 2014-06-01 0 99999 7 -1 (Password locked.)
//查看用户yang口令状态,可以看到该用户口令已经锁住,该用户不能在系统上登录,但是却可以从其他用户账户切换到该账户。
例7:修改用户yang账号的过期日期是2008年12月12号。
[root@redhat2 ~]# cat /etc/shadow |grep yang
yang:!$1$gUMyUM/y$derjmWWPUVY1/qisPvaQ6/:16223:0:99999:7:::
[root@redhat2 ~]# usermod -e 12/12/2008 yang
[root@redhat2 ~]# cat /etc/shadow |grep yang
yang:!$1$gUMyUM/y$derjmWWPUVY1/qisPvaQ6/:16223:0:99999:7::14225:
[root@redhat2 ~]#
例8:修改用户yang的shell类型为/bin/ksh
[root@redhat2 ~]# cat /etc/passwd|grep yang
yang:x:500:0:yang:/home/yang:/bin/bash
[root@redhat2 ~]# usermod -s /bin/ksh yang
[root@redhat2 ~]# cat /etc/passwd |grep yang
yang:x:500:0:yang:/home/yang:/bin/ksh
[root@redhat2 ~]#
//查看/etc/shadow文件,可以看到用户yang的SHELL类型已经更改为/bin/ksh
三.删除用户账户
使用userdel命令可以在LINUX系统下删除用户账户。
[root@redhat2 ~]# userdel
Usage: userdel [options] LOGIN
Options:
-f, --force force removal of files, even if not owned by user
-h, --help display this help message and exit
-r, --remove remove home directory and mail spool
-Z, --selinux-user remove SELinux user from SELinux user mapping
[root@redhat2 ~]#
例1:删除用户lisi
[root@redhat2 ~]# cd /home
[root@redhat2 home]# ls
lisi moon pp wangwu www yang zhang
[root@redhat2 home]# userdel lisi
[root@redhat2 home]# cat /etc/passwd |grep lisi
[root@redhat2 home]# ls /home
lisi moon pp wangwu www yang zhang
[root@redhat2 home]#
例2:删除用户moon,并且在删除该用户的同时一起删除主目录。
[root@redhat2 home]# userdel -r moon
[root@redhat2 home]# ls /home
lisi pp wangwu www yang zhang
[root@redhat2 home]#
//查看/home目录的内容,可以看到用户moon的主目录随该用户一起删除啦。
Linux字符界面下用户账户的设置