searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

用户基本概述及常用命令使用

2024-06-07 09:50:07
3
0

.用户基本概述

1.用户基本概述

1用户指的是用户指的是使用计算机系统的个体或实体,其能够正常登录LinuxWindows系统

2LinuxWindows系统的用户区别 :Windows系统中可以创建多个用户,但不允许同一时刻多个用户登陆系统,但Linux系统则允许同一时刻多个用户同时登陆,登陆后相互之间操作并不影响。

3系统上的每一个进程(运行的程序),都需要一个特定的用户运行,通常在公司是使用普通用户管理服务器,因为root权限过大,容易造成故障。

 

 

2.查看用户

1)查看当前登录的用户信息

[root@bqj-haiguang-11e102e1e22 ~]#  id    #查看当前所登陆的用户信息

# uid:用户id,系统只能识别uid,不能识别名字,人看名字

# gid:组id

uid=0(root) gid=0(root) groups=0(root)

[root@bqj-haiguang-11e102e1e22 ~]#  id oldboy #查看其它用户的信息

uid=1000(oldboy) gid=1000(oldboy) groups=1000(oldboy)

2)每一个进程都会由一个用户身份运行

3.用户信息存放位置

Linux系统会将用户的信息存放在/etc/passwd,记录了用户的信息,但没有密码信息(使用占位符表示),密码被存放在/etc/shadow中。

1./etc/passwd 配置文件解释如下

1root

:用户名,表示这是一个名为 "root" 的用户账号。

2x

:密码占位符。在传统的 Unix 系统中,密码会以加密形式存储在 /etc/shadow 文件中,而 /etc/passwd 中则使用 x 来代表密码已经被加密并存储在 /etc/shadow 文件中。

30

:用户IDUID)。在 Linux 系统中,0 通常用于表示超级用户(root)。

40

:组IDGID)。这个字段表示用户所属的基本组的组ID。在这里也是 0,意味着这个用户的基本组是超级用户组(root)。

5root

:用户的全名或说明信息。通常是用户账号的描述性信息。

6/root

:用户的家目录路径。对于超级用户(root),家目录通常位于 /root

7/bin/bash

:用户的默认 shell。这里指定了 /bin/bash,表示用户登录后将使用 bash shell

2./etc/shadow

实际示例如下:

[root@bqj-haiguang-11e102e1e22 ~]# head -1 /etc/shadow

root:$y$j9T$Pff5qDWotwS6dGP6hjF8JE2b$b8wHuK2n8crvsUbdT.mjzNGxVxZI5.Ubq0w3jXcCJK4::0:99999:7:::

$y$前缀通常表示使用了yescrypt加密算法。yescrypt是一种现代的密码哈希函数。对于安全目的,密码哈希算法通常是单向的,这意味着它们是不可逆的。这意味着无法直接从哈希值还原出原始密码。相反,验证密码是否正确的方法是使用相同的哈希算法对用户提供的密码进行哈希,然后将结果与存储的哈希进行比较。

4.系统对用户的约定

用户UID

系统中约定的含义

0

超级管理员,最高权限,有着极强的破坏能力

1~200

系统用户,用来运行系统自带的进程,默认已创建

201~999

系统用户,用来运行用户安装的程序,所以此类用户无需登录系统

1000+

普通用户,正常可以登陆系统的用户,权限比较小,能执行的任务有限

1)超级管理员用户(root):

n  用户名:root

n  用户IDUID):0

n  IDGID):0

n  家目录:/root

n  默认 shell/bin/bash

n  超级管理员用户具有系统中最高的权限,可以执行任何操作。

2)普通用户:

n  普通用户是系统中除超级管理员用户之外的其他用户。

n  普通用户拥有受限的权限,不能执行系统关键操作,通常用于一般用户的日常使用。

3)系统用户:

n  系统用户是专门用于系统服务和进程的用户账号,不具备登录系统的权限。

n  CentOS 7 中,系统用户的UID范围是1-999,在 CentOS 6 中是1-499

4)可登录用户:

n  可登录用户是指可以登录系统并执行操作的用户账号。

n  CentOS 7 中,可登录用户的UID范围是1000-65535,在 CentOS 6 中是500-65535

二、用户相关命令

1、新增用户

使用useradd命令;

tips:adduser命令软链接指向useradd命令

[root@bqj-haiguang-11e102e1e22 ~]# ls -l /usr/sbin/useradd

ls -l /usr/sbin/adduser

-rwxr-xr-x. 1 root root 171776 Mar 15 10:01 /usr/sbin/useradd

lrwxrwxrwx. 1 root root 7 Mar 15 10:01 /usr/sbin/adduser -> useradd

1)使用语法

用法1useradd -D #查看创建用户的默认值

用户2seradd -D [选项] 可以指定选项进行配置修改。

用法3useradd [选项] 用户名 #根据选项创建用户

2)参数说明

-b,–base-dir BASE_DIR新帐户主目录的基本目录

useradd -b /home/users username 

 创建一个名为 testuser 的新用户,他的主目录将会是 /home/users/testuser

-c,–comment COMMENT置新账户的注释信息,通常是用户的全名或其他相关信息。注释信息也被称为 GECOS 字段。

useradd -c "John Doe" username 

使用 -c 选项并指定了用户的注释信息为 "John Doe"。然后,在 useradd 命令中指定了用户名 username

-d,–home-di rHOME_DIR新帐户的主目录

useradd -d /custom/home/testuser username

  对于用户 testuser,他的主目录将会是 /custom/home/testuser,而不是默认的基础目录下的路径。

-D,–defaults打印或更改默认用户添加配置

useradd -D -d /data/home

 这将更改默认的主目录为 /data/home

-e,–expiredate EXPIRE_DATE新帐户的到期日期

useradd -e 2025-12-31 username

在这个示例中,我们使用 -e 选项并指定了账户到期的日期为 2025 12 31 日。然后,我们在 useradd 命令中指定了用户名 username。一旦账户到了指定的到期日期,用户将无法再登录系统。

-f,–inactive INACTIVE新帐户的密码不活动期

useradd -f 30 username

        在这个示例中,我们使用 -f 选项并指定了密码不活动期限为 30 天。然后,我们在 useradd 命令中指定了用户名 username。这意味着如果用户在 30 天内没有更改密码,他们的账户将被禁用。

-g,–gid GROUP新帐户的主组的名称或ID

eg:

useradd -g groupname username

或者:

useradd -g 1001 username

在这个示例中,我们使用 -g 选项并指定了主组的名称 groupname ID 1001。然后,在 useradd 命令中指定了用户名 username

-G,–groups GROUPS新帐户的补充组列表

useradd -G group1,group2 username

     在这个示例中,我们使用 -G 选项并指定了附加组列表为 group1,group2。然后,在 useradd 命令中指定了用户名 username。这样,用户 username 将会被添加到 group1group2 这两个附加组中。

-h,–help显示此帮助消息并退出

-k,–skel SKEL_DIR使用这个替代的框架目录

useradd -k /etc/skel_custom username

      在这个示例中,我们使用 -k 选项并指定了替代的框架目录为 /etc/skel_custom。然后,在 useradd 命令中指定了用户名 username

-K,–key KEY=VALUE覆盖/etc/login.defs默认值

useradd -K PASS_MAX_DAYS=30 username

在这个示例中,我们使用 -K 选项并指定了 PASS_MAX_DAYS=30,表示将新用户的密码最大使用天数设置为 30 天。然后,在 useradd 命令中指定了用户名 username

-l,–no-log-init不要将用户添加到lastlogfaillog数据库

useradd -l username

在这个示例中,我们使用 -l 选项来创建一个新用户,但是不将该用户添加到 lastlogfaillog 数据库中。然后,在 useradd 命令中指定了用户名 username

-m,–create-home创建用户的主目录

useradd -m username

     在这个示例中,我们使用 -m 选项来创建一个新用户,并且创建了一个与用户名相同的主目录作为新用户的家目录。然后,在 useradd 命令中指定了用户名 username。这样,当用户 username 被创建时,系统会自动为其创建一个主目录 /home/username(假设默认的主目录基础目录是 /home),并将其设置为新用户的家目录。当你使用 useradd 命令创建用户时,默认会创建用户的主目录。因此,-m 选项通常不需要显式地指定,除非你有特殊的需求或者要覆盖默认行为。

-M,–no-create-home不要创建用户的主目录

-N,–no-user-group不要创建与用户同名的组

-o,–non-unique允许创建具有重复(非唯一)UID的用户

用户数据迁移:当你需要从一个系统迁移用户数据到另一个系统时,可能会遇到两个系统上的用户UID不一致的情况。为了保持数据一致性,你可能需要在目标系统上创建具有相同UID的用户。

解决权限问题:在某些情况下,可能会出现权限问题,例如当一个用户在不同的系统上拥有不同的UID,但是需要访问相同的文件或目录时。为了解决这些权限问题,你可能需要在不同的系统上创建具有相同UID的用户。

-p,–password PASSWORD新帐户的加密密码

-r,–system创建一个系统帐户

-R,–root CHROOT_DIR要导入的目录

-R 选项允许你指定一个目录,该目录将被用作 chroot 环境的根目录。chroot 是一种操作系统级别的安全功能,它允许你将进程的根目录更改为另一个目录,从而限制进程对系统资源的访问。

useradd 命令中,-R 选项通常用于指定一个目录,该目录将被用作新用户的家目录的根目录。这样,新用户的家目录将被限制在指定的目录中,并且无法访问其他系统资源。

以下是一个使用 -R 选项的示例:

useradd -R /home/chroot_dir username

在这个示例中,我们使用 -R 选项并指定了目录 /home/chroot_dir,该目录将被用作新用户的家目录的根目录

-s,–shell SHELL新帐户的登录shell

useradd -s /bin/bash username

在这个示例中,我们使用 -s 选项并指定了登录 shell /bin/bash,这意味着当用户 username 登录系统时,他们将会使用 Bash 作为其默认的命令行解释器。

-u,–uid UID新帐户的用户ID

useradd -u 1001 username

在这个示例中,我们使用 -u 选项并指定了UID1001。然后,在 useradd 命令中指定了用户名 username

-U,–user-group创建与用户同名的组

-Z,–selinux-user SEUSERSELinux用户映射使用特定的SEUSER

-Z 选项用于为 SELinux 用户映射指定特定的 SEUSER。在 SELinuxSecurity-Enhanced Linux)中,每个用户都有一个与之关联的 SELinux 用户(SEUSER),用于确定用户对系统资源的访问权限。

使用 -Z 选项,你可以为新用户显式地指定一个特定的 SEUSER

以下是一个使用 -Z 选项设置 SEUSER 的示例:

useradd -Z staff_u username

在这个示例中,我们使用 -Z 选项并指定了 SEUSER staff_u。然后,在 useradd 命令中指定了用户名 username

这样,当用户 username 被创建时,他们将与 staff_u 这个 SELinux 用户关联。

2.修改用户信息

usermod [参数] [用户名]

# -u 指定要修改用户的UID

# -g 指定要修改用户基本组

# -G 指定要修改用户附加组,使用逗号隔开多个附加组, 覆盖原有的附加组,-aG追加

# -d 指定要修改用户家目录 -md 旧家搬新家

# -s 指定要修改用户的bash shell

# -c 指定要修改用户注释信息

# -l 指定要修改用户的登陆名

# -L 指定要锁定的用户

# -U 指定要解锁的用户

 

#1.检查此前创建的用户信息

[root@lxy ~]# grep "lxy" /etc/passwd

lxy:x:5001:503:2019 new student:/home/lxy:/bin/bash

 

#2.修改lxy用户uidgid,附加组  -a表示追加

[root@lxy ~]# groupadd -g 5008 network_sa

[root@lxy ~]# groupadd -g 5009 devops

[root@lxy ~]# usermod -u 6001 -g5008 -a -G 5009 lxy

 

#3.修改lxy用户的注释信息, 用户家目录, 登录shell, 登录名 -l:改名字,-md,把环境也带过去

[root@lxy ~]# usermod -c "2019 new student" -md /lxy -s /bin/sh -l change_lxy lxy

 

#检查是否修改成功

[root@lxy ~]# grep "lxy" /etc/passwd

lxy_lqz:x:6001:5008:2019 new student:/lxy:/bin/sh

[root@lxy ~]# id change_lxy

uid=6001(change_lxy) gid=5008(network_sa) groups=5008(network_sa),503(sa),5009(devops)

[root@lxy ~]# ll -d /lxy

drwx------. 2 lxy_lqz network_sa 4096 2014-09-23 00:13 /lxy

 

#4.锁定用户[扩展]

[root@lxy ~]# echo "123" |passwd --stdin change_lxy

[root@lxy ~]# usermod -L change_lxy  #锁定后会无法登陆系统

 

#5.解锁用户[扩展]

[root@lxy ~]# usermod -U change_lxy

3.删除用户

userdel [参数] [用户名]

默认删除用户不删除用户的家目录

-r 删除家目录

-f 强制删除

默认情况下,用户登录状态下是不能删除用户,强制删除用户以后,用户还是可以用的

#选项 -r 删除用户同时删除它的家目录

 

#1.删除user1用户,但不删除用户家目录和 mail spool

[root@lxy ~]# userdel user1

[root@lxy ~]# ls /var/spool/mail/

 

#2.-r参数可以连同用户家目录一起删除(慎用)

[root@lxy ~]# userdel -r user1

4.其他

1.      使用finger命名查询用户信息以及登录信息(yum install finger),示例: finger UserName

2.      使用chfn命令修改用户信息(其实是修改注释),示例: chfn UserName(yum install util-linux,ctyun系统中,命令为lchsh)

3.      使用chsh命令修改用户登录Bash Shell,示例: chsh UserNameyum install util-linux,ctyun系统中,命令为lchsh

4.      使用who(当前有哪些用户登录了)whoamiw检查用户登陆情况

0条评论
0 / 1000
c****z
2文章数
0粉丝数
c****z
2 文章 | 0 粉丝