the difference between “adduser” and “useradd”
2015-02-21 16:03
323 查看
在Ubuntu中创建新用户,通常会用到两个命令:useradd和adduser。虽然作用一样,但用法却不尽相同:
1. 使用useradd时,如果后面不添加任何参数选项,例如:#sudo useradd test创建出来的用户将是默认“三无”用户:一无Home Directory,二无密码,三无系统Shell。
2. 使用adduser时,创建用户的过程更像是一种人机对话,系统会提示你输入各种信息,然后会根据这些信息帮你创建新用户。
useradd是一个ELF可执行程序;
useradd会添加用户名,并创建和用户名相同的组名,但它并不在/home目录下创建基于用户名的目录,也不提示创建新的密码。
-b, –base-dir BASE_DIR 指定home目录的base目录
-d, –home-dir HOME_DIR 指定home目录
-g, –gid GROUP 指定gid
-l, –no-log-init do not add the user to the lastlog and
faillog databases
不要把用户添加到lastlog和failog中, 这个用户的登录记录不需要记载
-M, –no-create-home 不要建立home目录
-p, –password PASSWORD 指定新用户的密码
-r, –system 建立一个系统帐号
-s, –shell SHELL 指定shell
adduser -m -d /usr/system -s /bin/bash -p passwd system
而adduser是一个perl脚本, 可以交互式地设定一些用户参数
问题:
adduser的-p 参数 并不能shadow密码
/usr/sbin/usermod 与 useradd的参数很类似
usermod –password PASSWORD username
Linux系统如何添加用户这个问题到网上问一下或者搜一下,很多人可能会说useradd,实际这是不对的。useradd只会添加一个用户,没有创建它的主目录,除了添加一个新用户之外什么都没有。这个用户甚至不能登录,因为没有密码。正确的做法是man page里说的,adduser,这个命令实际是一个perl脚本,是useradd等类似底层命令的更友好的前端,它会用交互性的方式建立新用户,使用它可以指定新用户的家目录,登录密码,是否加密主目录等等,它会:
1.建立一个新目录作为家目录
2.建立同名新组
3.把用户的主要组设为该组(除非命令选项覆盖以上默认动作,比如–disall-homdirecry之类)
4.从/etc/SKEL目录下拷贝文件到家目录,完成初始化
5.建立新用户的密码
6.如果其存在的话,还会执行一个脚本。
创建ubuntu用户的一般过程如下:
首先打开终端,输入:sudo adduser username,系统会提示以下信息:
正在添加用户“username”...
正在添加新组“username”(1001)...
正在添加新用户“username”(1001)到组“username”...
创建主目录“/home/username”...
正在从“/etc、skel”复制文件...
输入新的 UNIX 口令:(此处大家注意,不是输入你当前用户的密码,而是输入你要创建新用户的密码)
重新输入新的 UNIX 口令:(再输一次即可)
passwd:已成功更新密码
Changing the user information for username
Enter the new value, or press ENTER for the default
Full Name []: yangyang (输入新用户的名称)
Room Number []:
Work Phone []:
Home Phone []:
Other []:
这个信息是否正确? [Y/n] y
到了这一步,新用户已经添加成功了,此时我们可以打 ls /home查看一下,如果显示 username yang,侧代表用户创建成功。如图1所示。
总结上来讲,在Ubuntu中,adduser更适合初级使用者,因为不用去记那些繁琐的参数选项,只要跟着系统的提示一步一步进行下去就行,缺点就是整个创建过程比较复杂而漫长;而useradd比较适合有些高阶经验的使用者,往往一行命令加参数就能解决很多问题,所以创建起来十分方便。
1. 使用useradd时,如果后面不添加任何参数选项,例如:#sudo useradd test创建出来的用户将是默认“三无”用户:一无Home Directory,二无密码,三无系统Shell。
2. 使用adduser时,创建用户的过程更像是一种人机对话,系统会提示你输入各种信息,然后会根据这些信息帮你创建新用户。
useradd是一个ELF可执行程序;
useradd会添加用户名,并创建和用户名相同的组名,但它并不在/home目录下创建基于用户名的目录,也不提示创建新的密码。
-b, –base-dir BASE_DIR 指定home目录的base目录
-d, –home-dir HOME_DIR 指定home目录
-g, –gid GROUP 指定gid
-l, –no-log-init do not add the user to the lastlog and
faillog databases
不要把用户添加到lastlog和failog中, 这个用户的登录记录不需要记载
-M, –no-create-home 不要建立home目录
-p, –password PASSWORD 指定新用户的密码
-r, –system 建立一个系统帐号
-s, –shell SHELL 指定shell
adduser -m -d /usr/system -s /bin/bash -p passwd system
而adduser是一个perl脚本, 可以交互式地设定一些用户参数
问题:
adduser的-p 参数 并不能shadow密码
/usr/sbin/usermod 与 useradd的参数很类似
usermod –password PASSWORD username
Linux系统如何添加用户这个问题到网上问一下或者搜一下,很多人可能会说useradd,实际这是不对的。useradd只会添加一个用户,没有创建它的主目录,除了添加一个新用户之外什么都没有。这个用户甚至不能登录,因为没有密码。正确的做法是man page里说的,adduser,这个命令实际是一个perl脚本,是useradd等类似底层命令的更友好的前端,它会用交互性的方式建立新用户,使用它可以指定新用户的家目录,登录密码,是否加密主目录等等,它会:
1.建立一个新目录作为家目录
2.建立同名新组
3.把用户的主要组设为该组(除非命令选项覆盖以上默认动作,比如–disall-homdirecry之类)
4.从/etc/SKEL目录下拷贝文件到家目录,完成初始化
5.建立新用户的密码
6.如果其存在的话,还会执行一个脚本。
创建ubuntu用户的一般过程如下:
首先打开终端,输入:sudo adduser username,系统会提示以下信息:
正在添加用户“username”...
正在添加新组“username”(1001)...
正在添加新用户“username”(1001)到组“username”...
创建主目录“/home/username”...
正在从“/etc、skel”复制文件...
输入新的 UNIX 口令:(此处大家注意,不是输入你当前用户的密码,而是输入你要创建新用户的密码)
重新输入新的 UNIX 口令:(再输一次即可)
passwd:已成功更新密码
Changing the user information for username
Enter the new value, or press ENTER for the default
Full Name []: yangyang (输入新用户的名称)
Room Number []:
Work Phone []:
Home Phone []:
Other []:
这个信息是否正确? [Y/n] y
到了这一步,新用户已经添加成功了,此时我们可以打 ls /home查看一下,如果显示 username yang,侧代表用户创建成功。如图1所示。
总结上来讲,在Ubuntu中,adduser更适合初级使用者,因为不用去记那些繁琐的参数选项,只要跟着系统的提示一步一步进行下去就行,缺点就是整个创建过程比较复杂而漫长;而useradd比较适合有些高阶经验的使用者,往往一行命令加参数就能解决很多问题,所以创建起来十分方便。
相关文章推荐
- Visual Studio中“生成”与“重新生成”的区别(The difference between "build" and "rebuild")
- What is the difference between a soft reference and a weak reference in Java?
- What is the Difference between ‘Word Automation’ and ‘Word Automation Services’?
- macro与inline的区别 What is the difference between macro and inline?
- What’s the Difference Between HDMI and DVI? Which is Better?
- The Difference Between Internet, Intranet, and Extranet
- difference between count(*) and count(col) in the query
- What is the difference between a processor, a chip, a socket, and a core?
- The differences between Carriage Return(CR) and Line Feed(LF)
- The difference between static_cast and dynamic_cast
- What is the difference between netty(io.netty.*) and jboss netty(org.jboss.netty.*)
- What is the difference between user mode and kernel mode, and real mode and protected mode?
- What is the difference between XHTML MP, XHTML Basic, WML, i-mode, and HDML?
- What the difference between rebuild index and re-organize index?
- JS advice: Be careful the difference between Undefined and ‘ ’
- the differences between wait and waitpid
- What is the difference between application server and web server?
- What is the difference between concurrency, parallelism and asynchronous methods?
- What is the difference between "transit","transfer","transmit... and "transport"
- Self Summary: Lua Language(two useful links) and the difference between : and .