Linux教程

Linux用户管理

2019-12-13  本文已影响0人  7ed8e3680ebe

Linux教程:http://www.fdlly.com/m/linux
@[toc]

Linux用户管理

Linux操作系统是多用户多任务操作系统

Linux下用户的角色分类

用户在系统中是分角色的,在Linux系统中,由于角色的不同,权限和所完成的任务也不同;值得注意的是用户的角色是通过UID和GID识别的;特别是UID,在运维工作中,一个UID是唯一标识一个系统用户的账号

在 Linux 下用户是根据角色定义的, 具体分为三种角色。

/etc/passwd文件详解

该文件为纯文本文件,记录了每个用户的必要信息。任何用户都可以读取/etc/passwd文件内容。 在/etc/passwd文件中, 每一行代表一个用户账号的信息,每行的字符之间使用:分隔,共7个字段

用户名称:用户密码:用户标识号:组标志号:相关注释:主目录:默认shell

下面是/etc/passwd文件的部分内容

root:x:0:0:root:/root:/bin/bash

/etc/shadow:用户密码文件

该文件为普通文本文件,该文件包含用户及被加密的密码以及其他/etc/passwd不包括的信息等
该文件只允许超级管理员root读取,普通用户没有权限读取。文件的权限不能随便修改成其它用户可读,这是非常危险的。注意,如果这个文件的权限发生了改变,则需要注意是否是恶意攻击,防止系统安全问题的发生

/etc/shadow文件中, 每一行代表一个用户账号的信息,每行的字符之间使用:分隔,共9个字段

用户名称:用户密码:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:账号被取消激活前的天数:失效时间:保留字段

下面是/etc/shadow文件的部分内容

root:$6$sEjoDM14JTLkNiWz$1s4kQfL4xNAIznxeqD9tqLLx.ZKF4s3MYtJhd2UY5SEiiBPrMqe/cFtJwp6wPSzN.0fDjAyDkD8/Yh4HiCR9p.::0:99999:7:::

增加用户的命令useradd

/etc/login.defs文件

/etc/login.defs 是设置用户帐号限制的文件。该文件里的配置对root用户无效。/etc/login.defs 文件用于在Linux创建用户时,对用户的一些基本属性做默认设置,例如指定用户 UID 和 GID 的范围,用户的过期时间,密码的最大长度,等等

useradd命令通过读取/etc/login.def/etc/default/useradd文件来确定新账户的默认值,我们可以通过使用标准的文本编辑器来编写这些文件来达到修改默认值


#
# Please note that the parameters in this configuration file control the
# behavior of the tools from the shadow-utils component. None of these
# tools uses the PAM mechanism, and the utilities that use PAM (such as the
# passwd command) should therefore be configured elsewhere. Refer to
# /etc/pam.d/system-auth for more information.
#

# *REQUIRED*
#   Directory where mailboxes reside, _or_ name of file, relative to the
#   home directory.  If you _do_ define both, MAIL_DIR takes precedence.
#   QMAIL_DIR is for Qmail
#
#QMAIL_DIR      Maildir
#当创建用户时,同时在目录 /var/spool/mail中创建一个用户mail文件
MAIL_DIR        /var/spool/mail
#MAIL_FILE      .mail


# PASS_MAX_DAYS:两次修改密码的最大时间间隔:主要作用是管理用户密码的有效期
PASS_MAX_DAYS   99999
# PASS_MIN_DAYS:两次修改密码的最小时间间隔
PASS_MIN_DAYS   0
# PASS_MIN_LEN:密码最小长度
PASS_MIN_LEN    5
# PASS_MIN_LEN:提前多少天警告用户密码过期,在快到有效期时,当用户登录系统后,系统程序会提醒用户密码将要作废,以便及时更改
PASS_WARN_AGE   7


# ID_MIN:普通用户最小UID
UID_MIN                  1000
# UID_MAX:普通用户最大UID
UID_MAX                 60000
# SYS_UID_MIN:系统用户最小UID
SYS_UID_MIN               201
# SYS_UID_MAX:普通用户最大UID
SYS_UID_MAX               999


# GID_MIN:普通组最小GID
GID_MIN                  1000
# GID_MAX:普通组最大GID
GID_MAX                 60000
# SYS_GID_MIN:系统组最大GID
SYS_GID_MIN               201
# SYS_GID_MAX:系统组最大GID
SYS_GID_MAX               999

#
# If defined, this command is run when removing a user.
# It should remove any at/cron/print jobs etc. owned by
# the user to be removed (passed as the first argument).
#
#USERDEL_CMD    /usr/sbin/userdel_local


#此项指定是否创建用户主目录,yes表示创建,no表示不创建
CREATE_HOME     yes

# 权限掩码被初始化为此值。 如果未指定则初始化为022
UMASK           077

# 如果没有成员,这使userdel可以删除用户组
USERGROUPS_ENAB yes

# 使用SHA512加密密码
ENCRYPT_METHOD SHA512

/etc/default/useradd文件

useradd命令通过读取/etc/login.def/etc/default/useradd文件来确定新账户的默认值,我们可以通过使用标准的文本编辑器来编写这些文件来达到修改默认值

/etc/default/useradd内容


# useradd defaults file

# GROUP=100:默认用户
GROUP=100
# HOME=/home:将新建用户的主目录放在/home目录下
HOME=/home
# INACTIVE=-1:是否启用账号过期功能,-1:不启用
INACTIVE=-1
# EXPIRE=:代表账号过期日期,不设置i表示不启用
EXPIRE=
# SHELL=/bin/bash:代表新建用户的默认shell类型
SHELL=/bin/bash
# SKEL=/etc/skel:新用户主目录中默认文件来源,也就是说,新建用户主目录主目录下的文件是从/etc/skel目录复制而来
SKEL=/etc/skel
#CREATE_MAIL_SPOOL=yes:
CREATE_MAIL_SPOOL=yes

更改/etc/default/useradd文件的方式

useradd语法

useradd可以用来建立用户账号,账号建立好后,因没有设置密码,所以不允许登录,需要使用passwd设定账号的密码后才可以登录使用

功能说明:建立用户账号
语法

useradd [选项][参数]

选项与参数:

-c<参数>:加上备注文字。备注文件会保存在passwd的备注栏目中
-d<登入目录>:指定用户登入时的起始目录
-D:变更预设值
-e<有效期限>:指定账号的有效期限
-f<缓冲天数>:指定在密码过期后的多少天即关闭该账号
-g<群组>:指定用户所属的群组
-G<群组>:指定用户所属的附加群组
-m:自动建立用户的登入目录
-M:不要自动建立用户的登入目录
-n:取消建立以用户名为名的群组
-r:建立系统账号
-s<shell>:指定用户登入后所使用的shell
-u<uid>:指定用户ID

useradd实例

useradd创建普通用户账号

[root@localhost ~]# useradd newuser

useradd创建系统用户账号

[root@localhost ~]# useradd -r sysuser

useradd创建用户账号,并设置UID

创建newuser用户并设置UID为1666

[root@localhost ~]# useradd -u 1666 newuser

useradd创建用户账号,并设置用户组群

创建newuser用户并设置用户组群为root

[root@localhost ~]# useradd -g root newuser

useradd创建用户账号,并设置用户主目录

创建newuser用户并设置用户主目录为/home/newuser2

[root@localhost ~]# useradd -d /home/newuser2 newuser

useradd创建用户账号,并设置用户Shell类型

创建newuser用户并设置shell类型为/bin/csh

[root@localhost ~]# useradd -s /bin/csh newuser

useradd显示/etc/default/useradd文件的默认配置

查看显示/etc/default/useradd文件的默认配置


[root@localhost ~]# useradd -D
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes

useradd创建不能登录的用户账号

要拒绝系统用户登录,可以将其 shell 设置为 /usr/sbin/nologin 或者 /bin/false

[root@localhost ~]# useradd -s /usr/sbin/nologin newuser

如果存在 /etc/nologin 文件,则系统只允许 root 用户登录,其他用户全部被拒绝登录,并向他们显示 /etc/nologin 文件的内容。

修改用户的命令usermod

usermod可用来修改用户账号的各项设定
功能说明:修改用户账号
语法

userdel [选项][参数]

选项与参数:
-c<参数>:修改用户账号的备注文字
-d<登入目录>:修改用户登入时的起始目录
-e<有效期限>:修改账号的有效期限
-f<缓冲天数>:修改在密码过期后的多少天即关闭该账号
-g<群组>:修改用户所属的群组
-G<群组>:修改用户所属的附加群组

-l<账号名称>:修改用户账号名称
-L:锁定用户密码,使密码无效
-s<shell>:修改用户登入后所使用的shell
-u<uid>:修改用户ID
-U:解除密码锁定
-m, --move-home 将家目录内容移至新位置 (仅于 -d 一起使用)

usermod实例

usermod修改用户用户名

将username用户登录名修改为newusername

[root@localhost ~]# usermod -l newusername username

usermod修改用户备注

修改username用户的备注为remark

[root@localhost ~]# usermod -c remark username

usermod修改用户群组

修改username用户群组为root,该群组在修改时必须存在

[root@localhost ~]# usermod -g root username

usermod锁定用户密码

锁定username用户密码,使密码无效
锁定的用户无法直接登录,但是可以从其它用户切换到该账户

[root@localhost ~]# usermod -L username

usermod解锁用户密码

解锁username用户密码

[root@localhost ~]# usermod -U username

usermod修改用户主目录

修改username用户的主目录,该操作并不会自动创建文件夹,也不会自动将旧主目录中的文件和目录自动移动到新主目录中

[root@localhost ~]# usermod -d /home/username2 username

usermod修改用户主目录,并自动创建目录

修改username用户的主目录,该操作会自动创建文件夹,并自动将旧主目录中的文件和目录自动移动到新主目录中

[root@localhost ~]# usermod -d /home/username2 -m username

usermod修改用户账号被取消激活前的天数

密码过期后,系统会在11天后禁用此用户

[root@localhost ~]# usermod -f 11 username

usermod修改用户过期日期

修改username的过期日期是2111年11月11日

[root@localhost ~]# usermod -e 11/11/2111 username

usermod修改用户默认Shell类型

将username的默认shell类型更改为/bin/ksh

[root@localhost ~]# usermod -s /bin/ksh username

删除用户的命令userdel

userdel可删除用户账号与相关的文件。若不加参数,则仅删除用户账号,而不删除相关文件
功能说明:删除用户账号
语法

userdel [选项][参数]

选项与参数:

-r:删除用户登入目录以及目录中所有文件
-f:强制删除用户

userdel实例

userdel删除用户

[root@localhost ~]# userdel newuser

userdel删除用户,并删除用户主目录

[root@localhost ~]# userdel -r newuser

userdel强制删除用户

[root@localhost ~]# userdel -f newuser

userdel强制删除用户,并删除用户主目录

[root@localhost ~]# userdel -rf newuser
上一篇 下一篇

猜你喜欢

热点阅读