useradd 报Creating mailbox file: File exists
问题描述:
增加一个用户时,报下面的错误:
[root@master ~]# useradd hadoop
useradd: warning: the home directory already exists.
Not copying any file from skel directory into it.
Creating mailbox file: File exists
解决方法:
1.[root@master ~]# useradd -D
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes
1新用户添加到GID为100的公共组
2新用户的HOME目录将会位于/home/username
3新用户账户密码在过期后不会被禁用
4新用户账户未被设置为某个日期后就过期
5新用户账户将bash shell作为默认shell
6系统会将/etc/skel目录下的内容复制到用户的HOME目录下
7系统为该用户账户在mail目录下创建一个用于接收邮件的文件
可以用-D参数后面跟一个要修改的值的参数,来修改系统默认的新用户值。这些参数如下表:
-b default_home 更改默认的创建用户HOME目录的位置
-e expiration_date 更改默认的新账户的过期日期
-f inactive_days 更改默认的新用户从密码过期到账户被禁用的天数
-g group 更改默认的组名称或GID
-s shell 更改默认的登录shell
2.useradd添加账户和userdel删除账户
[root@sever1 ~]# useradd hadoop
Creating mailbox file: File exists
[root@sever1 ~]# tail -1 /etc/passwd
hadoop:x:500:500::/home/hadoop:/bin/bash
[root@sever1 ~]# userdel -r hadoop
[root@sever1 ~]# useradd hadoop
[root@sever1 ~]# tail -1 /etc/passwd
hadoop:x:500:500::/home/hadoop:/bin/bash
由于我之前创建过hadoop账户,删除账户的时候没有加-r参数,所以再次创建相同账户的时候会提示文件目录或者邮箱文件夹已存在。加-r参数重新删除账户再创建不会出现任何提示,然后在/etc/passwd下查看账户基本信息。
PS:加上参数-r,userdel会删除用户的HOME目录以及mail目录。
3.设置账户密码
[root@master home]# passwd hadoop
Changing password for user hadoop.
New password:
BAD PASSWORD: it is based on a dictionary word
BAD PASSWORD: is too simple
Retype new password:
passwd: all authentication tokens updated successfully.
4.useradd参数
-c comment 给新用户添加备注
-d home_dir 为主目录指定一个名字(如果不想用登录名作为主目录名的话)
-e expire_date 用YYYYY-MM-DD格式指定一个账户过期的日期
-f inactive_days 指定这个帐户密码过期后多少天这个账户被禁用;0表示密码一过期就立即禁用,-1表示禁用这个功能
-g initial_group 指定用户登录组的GID或组名
-G group ... 指定用户除登录组之外所属的一个或多个附加组
-k 必须和-m一起使用,将/etc/skel目录的内容复制到用户的HOME目录
-m 创建用户的HOME目录
-M 不创建用户的HOME目录(当默认设置里指定创建时,才用到)
-n 创建一个同用户登录名同名的新组
-r 创建系统账户
-p passwd 为用户账户指定默认密码
-s shell 指定默认登录shell
-u uid 为账户指定一个唯一的UID