useradd详解



useradd是Linux添加新用户的命令,这个命令提供了一次性创建新用户账户及设置用户HOME目录结构的简便方法。

1、useradd命令加参数-D参看系统的默认值: 


复制代码

# useradd -

GROUP=100 

HOME=/home 

INACTIVE=-1 

EXPIRE= 

SHELL=/bin/bash 

SKEL=/etc/skel 

CREATE_MAIL_SPOOL=yes

复制代码

解释: 

1)新用户添加到GID为100的公共组 

2)新用户的HOME目录将会位于/homoe/username 

3)新用户账户密码在过期后不会被禁用 

4)新用户账户未被设置为某个日期后就过期 

5)新用户账户将bash shell作为默认shell 

6)系统会将/etc/skel目录下的内容复制到用户的HOME目录下 

7)系统为该用户账户在mail目录下创建一个用于接收邮件的文件

倒数第2个值很有意思。useradd命令允许管理员创建一个默认的HOME目录配置,然后把它作为创建新用户HOME目录的模板。这样,就能自动在每个新用户的HOME目录里放置默认的系统文件。在Ubuntu Linux系统上,/etc/skel目录下有下列文件: 


复制代码

$ ls -la /etc/skel 

total32 

drwxr-xr-x 2 root root 4096 Jun 24 09:43

drwxr-xr-x 132 root root 12288 Jun 19 09:53.. 

-rw-r--r-- 1 root root 220 Apr 3 2012.bash_logout 

-rw-r--r-- 1 root root 3486 Apr 3 2012.bashrc 

-rw-r--r-- 1 root root 179 Apr 3 2012example.desktop 

-rw-r--r-- 1 root root 675 Apr 3 2012.profile $

复制代码

在创建用户时,可以使用下面的命令行参数改变默认值或默认行为: 


============================================================================ 
参 数 描 述 
---------------------------------------------------------------------------- 
-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 
============================================================================ 

同样,你可以用-D参数后面跟一个要修改的值的参数,来修改系统默认的新用户值。这些参数如下表: 


============================================================================ 
参 数 描 述 
---------------------------------------------------------------------------- 
-b default_home 更改默认的创建用户HOME目录的位置 
-e expiration_date 更改默认的新账户的过期日期 
-f inactive_days 更改默认的新用户从密码过期到账户被禁用的天数 
-g group 更改默认的组名称或GID 
-s shell 更改默认的登录shell 
============================================================================ 


如 #useradd -D -s /bin/tsch ,修改默认的shell为/bin/tsch。

另外,删除用户,使用userdel命令。默认情况下,userdel命令只会删除/etc/passwd文件中的信息,而不会删除系统中属于该账户的任何文件。 

如果加上-r,userdel会删除用户的HOME目录以及mail目录。然后,系统上仍可能存有归已删除用户所有的其他文件。这在有些环境中会造成问题。 

PS:在有大量用户的环境中使用-r参数时要特别小心。你永远不知道用户是否在他的HOME目录下存放了其他用户或其他程序要使用的重要文件。记住在删除用户的HOME之前一定要检查清楚!

标签: linux

相关文章

评论已关闭