Ubuntu系统创建用户并授权sudo权限
1.adduser 和 useradd的区别(仅针对ubuntu)
- adduser
在使用adduser创建用户时,会同步创建该用户的用户目录,也需要进行用户密码设置,同时该用户也会拥有远程登录服务器的权限 - useradd
useradd只是创建了一个用户名,不会同步创建用户目录,也不能通过远程登录,如果需要实现,则需要使用useradd -option 来传递相关参数
2. useradd
useradd带参数添加用户使用比较麻烦,不太推荐使用,使用useradd 可以携带的参数如下:
大纲
useradd [选项] 登录
useradd -D
useradd -D [选项]
描述
useradd is a low level utility for adding users. On Debian, administrators should usually use adduser(8) instead.
如果使用时不带 -D 选项,useradd 命令使用命令行上指定的值和系统的默认值创建一个新用户。根据命令行选项,useradd 命令也会更新系统文件和创建新用户的主目录并复制初始文件。
默认上,也会为用户创建组 (察看 -g, -N, -U,和 USERGROUPS_ENAB)。
选项
useradd 可以使用的选项有:
-b, --base-dir BASE_DIR
如果没有使用 -d HOME_DIR,则使用默认的基目录。BASE_DIR 加上账户名就是主目录。如果没有使用 -m 选项,BASE_DIR 必须已经存在。
如果选项没有指定,useradd 将使用 /etc/default/useradd 中的 HOME 变量,或者默认的 /home。
-c, --comment COMMENT
任何字符串。通常是关于登录的简短描述,当前用于用户全名。
-d, --home-dir HOME_DIR
将创建新用户,并使用 HOME_DIR 作为用户登陆目录的值。默认值是将 LOGIN 名附加到 BASE_DIR 后面,并使用这作为登陆目录。目录不一定必须已经存在 HOME_DIR,但是会在需要时创建。
-D, --defaults
看下边,“更改默认值”子节。
-e, --expiredate EXPIRE_DATE
用户账户将被禁用的日期。日期以 YYYY-MM-DD 格式指定。
如果没有指定,useradd 将使用 /etc/default/useradd 中 EXPIRE 变量指定的默认过期日期,或者一个空字符串(不过期)。
-f, --inactive INACTIVE
密码过期后,账户被彻底禁用之前的天数。0 表示立即禁用,-1 表示禁用这个功能。
如果未指定,useradd 将使用 /etc/default/useradd 中的 INACTIVE 指定的默认禁用周期,或者默认为 -1。
-g, --gid GROUP
用户初始登陆组的组名或号码。组名必须已经存在。组号码必须指代已经存在的组。
如果没有指定, useradd 的行为将依赖于 /etc/login.defs 文件中的 USERGROUPS_ENAB 参数。如果此参数设置为了 yes (或者在命令行上指定了 -U/--user-group),将会为用户创建一个组,组名和登录名相同。如
果选项设置为了 no (或者在命令行上指定了 -N/--no-user-group),useradd 会把新用户的主组设置为 /etc/default/useradd 中 GROUP 变量指定的值,再或者默认是 100。
-G, --groups GROUP1[,GROUP2,...[,GROUPN]]]
用户还属于的附加组列表。每个组都用逗号隔开,没有中间的空格。这里的组受到了 -g 选项给定的组同样的限制。默认上,用户只属于初始组。
-h, --help
现实帮助信息并退出。
-k, --skel SKEL_DIR
骨架目录,包含使用 useradd 创建用户时,要复制到用户主目录中的文件和目录。
这个选项只有在指定 -m (或 --create-home) 选项时才有效。
如果此项没有设置,骨架目录使用 /etc/default/useradd 中的 SKEL 的变量或默认为 /etc/skel。
如果可以,也复制 ACL 和扩展属性。
-K, --key KEY=VALUE
Overrides /etc/login.defs defaults (UID_MIN, UID_MAX, UMASK, PASS_MAX_DAYS and others).
Example: -K PASS_MAX_DAYS=-1 can be used when creating system account to turn off password aging, even though system account has no password at all. Multiple -K options can be specified,
e.g.: -K UID_MIN=100 -K UID_MAX=499
-l, --no-log-init
不要将用户添加到最近登录和登录失败数据库。
By default, the user's entries in the lastlog and faillog databases are reset to avoid reusing the entry from a previously deleted user.
For the compatibility with previous Debian's useradd, the -O option is also supported.
-m, --create-home
如果不存在,则创建用户主目录。骨架目录中的文件和目录(可以使用 -k 选项指定),将会复制到主目录。
默认上,如果没有指定此选项并且 CREATE_HOME 没有启用,不会创建主目录。
-M, --no-create-home
不创建用户主目录,即使系统在 /etc/login.defs 中的设置 (CREATE_HOME) 为 yes。
-N, --no-user-group
不要创建同名组,而是将用户添加到 -g 选项指定的组,或根据 /etc/default/useradd 中的 GROUP 变量。
如果没有指定 -g, -N 和 -U 选项,默认行为由 /etc/login.defs 中的 USERGROUPS_ENAB 变量指定。
-o, --non-unique
允许使用重复的 UID 创建用户账户。
此选项只有和 -u 选项组合使用才有效。
-p, --password PASSWORD
加密了的密码,就像 crypt(3) 的返回值。默认为禁用密码。
注意:不推荐使用这个选项,因为密码(或加密过的密码)会被用户通过列出这个过程而看到。
您应该确保密码符合系统的密码政策。
-r, --system
创建一个系统账户。
System users will be created with no aging information in /etc/shadow, and their numeric identifiers are chosen in the SYS_UID_MIN-SYS_UID_MAX range, defined in /etc/login.defs, instead of
UID_MIN-UID_MAX (and their GID counterparts for the creation of groups).
Note that useradd will not create a home directory for such a user, regardless of the default setting in /etc/login.defs (CREATE_HOME). You have to specify the -m options if you want a home
directory for a system account to be created.
-R, --root CHROOT_DIR
Apply changes in the CHROOT_DIR directory and use the configuration files from the CHROOT_DIR directory.
-s, --shell SHELL
用户的登录 shell 名。默认为留空,让系统根据 /etc/default/useradd 中的 SHELL 变量选择默认的登录 shell,默认为空字符串。
-u, --uid UID
用户 ID 的数字值。此值必须为唯一的,除非使用了 -o 选项。此值必须非负,默认使用大于等于 UID_MIN,且大于任何其他用户 ID 最小值。
请参考 -r 选项和 UID_MAX 的描述。
-U, --user-group
创建一个和用户同名的组,并将用户添加到组中。
如果没有指定 -g, -N 和 -U 选项,默认行为由 /etc/login.defs 中的 USERGROUPS_ENAB 变量指定。
-Z, --selinux-user SEUSER
用户登陆的 SELinux 用户。默认为留空,这会造成系统选择默认的 SELinux 用户。
3.adduser
创建命令
adduser newuser
按照提示进行密码输入及密码确认
4.授予用户sudo 权限
- 编辑文件/etc/sudoers
vim /etc/sudoers
在root下面增加一行
root ALL=(ALL:ALL) ALL
newuser ALL=(ALL:ALL) ALL
完成后验证sudo 成功