linux基本命令用户管理-useradd

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux基本命令用户管理-useradd相关的知识,希望对你有一定的参考价值。

1. useradd 命令介绍

useradd命令来自于英文词组“User add”的全拼,其功能是用于创建并设置用户信息。使用useradd命令可以自动的完成创建用户的信息、基本组、家目录等工作,并在创建的过程中对用户初始信息进行定制。

2. 语法格式及常用选项

用–help查看命令的参数及语法格式:如下:

[root@mufenggrow ~]# useradd --help
用法:useradd [选项] 登录
useradd -D
useradd -D [选项]

选项:
-b, --base-dir BASE_DIR 新账户的主目录的基目录
-c, --comment COMMENT 新账户的 GECOS 字段
-d, --home-dir HOME_DIR 新账户的主目录
-D, --defaults 显示或更改默认的 useradd 配置
-e, --expiredate EXPIRE_DATE 新账户的过期日期
-f, --inactive INACTIVE 新账户的密码不活动期
-g, --gid GROUP 新账户主组的名称或 ID
-G, --groups GROUPS 新账户的附加组列表
-h, --help 显示此帮助信息并推出
-k, --skel SKEL_DIR 使用此目录作为骨架目录
-K, --key KEY=VALUE 不使用 /etc/login.defs 中的默认值
-l, --no-log-init 不要将此用户添加到最近登录和登录失败数据库
-m, --create-home 创建用户的主目录
-M, --no-create-home 不创建用户的主目录
-N, --no-user-group 不创建同名的组
-o, --non-unique 允许使用重复的 UID 创建用户
-p, --password PASSWORD 加密后的新账户密码
-r, --system 创建一个系统账户
-R, --root CHROOT_DIR chroot 到的目录
-s, --shell SHELL 新账户的登录 shell
-u, --uid UID 新账户的用户 ID
-U, --user-group 创建与用户同名的组
-Z, --selinux-user SEUSER 为 SELinux 用户映射使用指定 SEUSER

可以看到useradd的基本语法是:useradd username或者useradd -d -u “UID” -g “初始组” -G “附加组” -s "登陆的shell” 用户在创建的时候,选择自己需要的参数进行添加。

从useradd的帮助文档中,我们摘选中比较常用的选项:

linux基本命令用户管理-useradd_用户名

其实默认情况下不加任何参数,也可以直接创建用户,同一个用户名只能创建一个用户,每个用户名不能重复。

三. 参考案例

3.1 不加任何参数创建用户

要创建一个用户名为 user1的用户:

[root@mufenggrow ~]# useradd user1
[root@mufenggrow ~]# id user1
uid=1000(user1) gid=1000(user1) 组=1000(user1)

我们来使用find查询下,创建一个用户到底创建了哪些目录和文件:

[root@mufenggrow ~]# find / -name user1
/var/spool/mail/user1
/home/user1

可以看到创建一个文件,是在/home目录下创建了一个目录user,作为家目录。
在/var/spool/mail下创建了一个user1作为邮件目录

除此之外在 /etc/passwd 和/etc/shadow中插入了两条信息:

[root@mufenggrow ~]# tail -n 1 /etc/passwd /etc/shadow
==> /etc/passwd <==
user1:x:1000:1000::/home/user1:/bin/bash

==> /etc/shadow <==
user1:!!:19373:0:99999:7:::
[root@mufenggrow ~]#

所以 每次创建用户其实就是做了这四步操作。

3.2 创建不能登录系统且没有家目录的用户

-M 不建立用户的家目录
-s 指定用户的shell

linux系统中有多种shell,其中/bin/bash是默认的,使用它可以登录系统
而 倘若使用/sbin/nologin 是不能登录系统的。

我们来看下案例:

[root@mufenggrow ~]# useradd -M -s /sbin/nologin user2
[root@mufenggrow ~]# su - user2
su: 警告:无法更改到 /home/user2 目录: 没有那个文件或目录
This account is currently not available.

这里的: This account is currently not available. 表示此账户当前不可用

英语单词注释:

account 美[əˈkaʊnt] 账户,账目

currently 美[ˈkɜːrəntli] 当下,目前,现时
available 美[əˈveɪləbl] 可获得的,可以找到的,有空的

也就是我们刚刚创建的用户是不允许登录系统的,而且没有家目录。

3.3 创建一个用户,ID为123

需要指定ID的时候,用到的就是-u参数,此时的u代表的user。

[root@mufenggrow ~]# useradd -u 123 user3
[root@mufenggrow ~]# id user3
uid=123(user3) gid=123(user3) 组=123(user3)

ID命令是用来查看当前用户的UID,GID和组的,判断一个用户是否存在,就可以用id命令,若不存在,echo $? 执行结果不为0

[root@mufenggrow ~]# id zhangsan
id: zhangsan: no such user
[root@mufenggrow ~]# echo $?
1

3.4 创建一个用户并指定其附加组

创建一个用户,他的所有者默认就是所有组的组名,但有时候一个用户可能在多个组里面,所以我们可以使用-G来指定附加组。

这就类似于一个财务,她的默认组是财务组,但有时候她也兼职前台,所以前台是她的附加组,一个用户可以又多个附加组。

[root@mufenggrow ~]# useradd -G root user4
[root@mufenggrow ~]# id user4
uid=2334(user4) gid=2334(user4) 组=2334(user4),0(root)
[root@mufenggrow ~]# useradd -G root,user1,user2 zhangsan
[root@mufenggrow ~]# id zhangsan
uid=2335(zhangsan) gid=2335(zhangsan) 组=2335(zhangsan),0(root),1000(user1),1001(user2)
[root@mufenggrow ~]#

当我们需要指定多个用户组的时候,需要用“逗号”隔开。

3.5 创建用户并账户过期时间

-e参数是用来创建用户过期时间的,如果想查看用户的信息,可以使用 chage -l 参数。

[root@mufenggrow ~]# useradd -e "2023/02/14" mufenggorw

我们用chage -l 参数查看:

[root@mufenggrow ~]# chage -l mufenggorw
最近一次密码修改时间 :1月 16, 2023
密码过期时间 :从不
密码失效时间 :从不
帐户过期时间 :2月 14, 2023
两次改变密码之间相距的最小天数 :0
两次改变密码之间相距的最大天数 :99999
在密码过期之前警告的天数 :7

从上面可以看到过期时间为: 2023年1月16日,与我们设置的日期一致。

3.6 与useradd相关的目录文件

  • /etc/passwd,用户账号信息。
  • /etc/shadow,用户密码加密。
  • /etc/group,群组资讯。
  • /etc/default/useradd,定义资讯。
  • /etc/login.defs,系统广义设定。
  • /etc/skel,内含定义档的目录。

关于这些目录的使用方法,会在Linux运维系列操作系统实战里面讲解,可以关注【运维系列操作系统实战】专栏,后续我会持续更新。

linux应用之用户管理相关命令

1. useradd

useradd 命令可以创建一个新的用户帐号,其最基本用法为:

useradd 用户名

如输入以下命令:

useradd newuser

系统将创建一个新用户 newuser,该用户的Home 目录为/home/newuser。

useradd 命令的参数较多,常用的组合为:

useradd 用户名 -g 组名–G 组名-d Home 目录名-p 密码

其中:-g 指定该用户的首要组

-G 指定该用户的次要组

-d 指定该用户的Home 目录

-p 指定该用户的密码

如输入以下命令:

useradd oracle –g oinstall –G dba –d /home/oracle –p ora123

系统将创建一个用户 oracle oracle 用户的首要组为oinstall ,次要组为dba,Home 目录为/home/oracle ,密码为ora123。

2. userdel

userdel 命令用于删除一个已存在的帐号,其用法为:

userdel 用户名

3. groupadd

groupadd 命令可以创建一个新的用户组,其最基本用法为:

groupadd 组名

如输入以下命令:

groupadd newgroup

系统将创建一个新的用户组 newgroup。

4. groupdel

groupdel 命令用于删除一个已存在的用户组,其用法为:

groupdel 组名

5. passwd

出于系统安全考虑, Linux 系统中的每一个用户除了有其用户名外还有其对应的用户口令,用户可以随时用passwd 命令改变自己的口令。该命令的一般格式为:

passwd

输入该命令后, 按系统提示依次输入密码和密码确认后,即可完成用户密码的修改。

此外, 超级用户还可以修改其他用户的口令,命令如下:

passwd 用户名

6. su

su 命令这个命令非常重要,它可以让一个普通用户拥有超级用户或其他用户的权限,也可以让超级用户以普通用户的身份做一些事情。普通用户使用这个命令时必须有超级用户或其他用户的口令。如要离开当前用户的身份,可以键入exit 命令,su 命令的一般形式为:

su – 用户名 (用户切换)

#su - 普通用户 /*由root切换到普通用户,是否带"-"选项表示切换用户时是否同时切换到用户home路径*/

$su -             /* 由普通用户切换到root用户,确定后需要提供root密码*/

7. chmod

chmod 命令是非常重要的,用于改变文件或目录的访问权限。该命令有两种用法:一种是包含字母和操作符表达式的文字设定法,另一种是包含数字的数字设定法。

由于数字设定法不太直观 ,本文不做介绍。文字设定法的用法如下:

chmod [who] [+ | - | =] [mode] 文件名

命令中各选项的含义为:

1 、操作对象who 可以是下述字母中的任一个或者它们的组合:

u 表示用户(user) ,即文件或目录的所有者

g 表示同组(group)用户,即与文件属主有相同组ID 的所有用户

o 表示其他(others)用户

a 表示所有(all)用户,它是系统默认值。

2 、操作符号可以是:

+ 添加某个权限

- 取消某个权限

= 赋予给定权限,并取消其他所有权限

3 mode 表示权限常用的参数有

r 可读

w 可写

x 可执行

举例:

1 、将文件 script 的权限设为可执行。命令如下:

chmod =rx text

执行成功后 ,用ls -l script 命令查看文件属性的结果如下:

-r-xr-xr-x 1 user group 0 Feb 10 09:42 script

2 、将文件 text 的权限设为:文件属主可读、可写、可执行,与文件属主同组的用户可读,其他用户不可读。命令如下:

chmod u=rwx,g=r,o= text (注意,后无空格o=后有空格)

执行成功后 ,用ls –l text 命令查看文件属性的结果如下:

-rwxr—– 1 user group 0 Feb 10 09:42 text

8. chown

chown 用于更改某个文件或目录的属主和属组,这个命令也很常用。例如root 用户把自己的一个文件拷贝给用户oracle ,为了让用户oracle 能够存取这个文件,root 用户应该把这个文件的属主设为oracle ,否则用户oracle无法存取这个文件。chown 的基本用法为:

chown [用户:组] 文件

举例:

chown oracle:dba text

该命令将 text 文件的属主和属组分别改为oracle 和dba。

以上是关于linux基本命令用户管理-useradd的主要内容,如果未能解决你的问题,请参考以下文章

Linux命令(二十六) 用户管理命令

linux应用之用户管理相关命令

Linux用户管理详解

Linux用户和组管理命令-用户创建

2 Linux基本命令复习2

Linux下用户和组管理 𬤺