irpas技术客

Linux:详解 用户,用户组的解释创建等。_程序员Fy

网络投稿 2390

文章目录 Linux中用户和组的类型1、Linux下的用户可以分为三类2、Linux中的组有以下两类3、Linux中用户和用户组的配置文件(1)用户账号文件——/etc/passwdpasswd(2)用户密码文件——/etc/shadow(3)用户组账号文件——/etc/group 用户管理添加用户修改用户信息---usermod命令为用户账号设置密码—passwd命令删除用户账号—userdel命令用户间切换—su(substitute user)命令控制用户对系统命令的使用权限 用户组管理创建用户组修改用户组属性添加/删除组成员删除组账户 查询用户和组信息查看用户登录系统的情况1,users,查看当前登录系统的用户2,,last:列出目前与过去登入系统的用户相关信息4、w:显示登录到系统的用户信息。5、who:显示目前登录到系统的用户

Linux中用户和组的类型 1、Linux下的用户可以分为三类

超级用户——用户名为root,它具有一切权限,只有进行系统维护(例如:建立用户等)或其他必要情形下才用超级用户登录,以避免系统出现安全问题。

系统用户(伪用户)——是Linux系统正常工作所必需的用户。主要是为了满足相应的系统进程对文件属主的要求而建立的,例如:bin、daemon、adm、lp等用户。系统用户不能用来登录。

普通用户——是为了让使用者能够使用Linux系统资源而建立的,我们的大多数用户属于此类。

2、Linux中的组有以下两类

基本组(私有组):建立账户时,若没有指定账户所属的组,系统会建立一个和用户名相同的组,这个组就是基本组。附加组(公有组):可以容纳多个用户,组中的用户都具有组所拥有的权利。

3、Linux中用户和用户组的配置文件

在Linux中,用户账号、密码、用户组信息和用户组密码均是存放在不同的配置文件中的。

(1)用户账号文件——/etc/passwdpasswd

是一个文本文件,用于定义系统的用户账号,由于所有用户都对passwd有读权限,所以该文件中只定义用户账号,而不保存口令。

如下命令可以查看用户账号文件

[root@node13 ~]# head -1 /etc/passwd head命令显示第一行 root:x:0:0:root:/root:/bin/bash

上面输出的结果是用户的账号信息,以 : 隔离,有7个字段,对于字段的解释如下:

第一个字段: 账号名称:用户登录Linux系统时使用的名称。

第二个: 密码:以前是以加密格式保存密码的位置,此处只是密码占位符“x”或“*”。若为“x”,说明密码经过了shadow的保护。

第三个: UID:用户的标识,是一个数值,用它来区分不同的用户,每个用户都有一个UID数值:

超级用户的UID——0 系统用户的UID——1~999 普通用户的UID——≥1000

第四个: GID:用户所在基本组的标识,是一个数值,用它来区分不同的组,相同的组具有相同的GID。

第五个: 个人资料:可以记录用户的完整姓名、地址、办公室电话、家庭电话等个人信息。

第六个: 主目录:类似Windows 的个人目录,通常是/home/username,这里username是用户名,用户执行“cd~”命令时当前目录会切换到个人主目录。

第七个: Shell:定义用户登录后激活的Shell,默认是Bash Shell

(2)用户密码文件——/etc/shadow

如下命令查看字段:

[root@node13 ~]# head -1 /etc/shadow root:$6$3EZ8vA1hgB3VTWb0$IlamoUyDh1RS.wftgz4qj0kmVrka7Yi6SgIo1aM6eu8nbFM9haOVRTtNDDfkix8MCugx8p8lufmItgsOsu1rl1:19083:0:99999:7:::

可以知道有9个字段,含义分别如下:

(3)用户组账号文件——/etc/group

系统中的每个组,在/etc/group文件中有一行记录,任何用户均可以读取用户组账户信息配置文件。

字段依次说明:

用户管理 添加用户 命令格式: useradd [选项] <username>

常用选项如下: 示例1:新建一个用户zhang3,查看passwd、shadow文件中的变化,并确认该用户的家目录中的初始配置文件。

[root@localhost ~]# useradd zhang3 [root@localhost ~]# tail -1 /etc/passwd zhang3:x:1001:1001::/home/zhang3:/bin/bash [root@localhost ~]# tail -1 /etc/shadow zhang3:!!:16925:0:99999:7::: //注意密码字段的内容为“!!”,表示密码尚未设置 [root@localhost ~]# ls -ld /home/zhang3 drwx------. 3 zhang3 zhang3 74 11月 4 15:58 /home/zhang3 [root@localhost ~]# ls -A /home/zhang3 .bash_logout .bash_profile .bashrc .mozilla

注意密码字段的内容为“!!”,表示密码尚未设置

示例2:新建一个用户wang5,指定其UID为1005、登录Shell为/bin/bash,账号永不过期 命令如下:

[root@localhost ~]# useradd -u 1005 -s /bin/bash -e -1 wang5 修改用户信息—usermod命令 命令格式:usermod [选项] username

常用的选项包括 -c,-d,-m,-g,-G,-s,-u 等, 这些选项的意义与useradd命令中的选项一样,可以为用户指定新的资源值。 另外,还可以使用如下选项:

-l 新用户名—更改账户的名称,必须在该用户未登录的情况下才能使用。 -L—锁定(暂停)用户账户,使其不能登录使用。 -U—解锁用户账户。

示例:将用户wang5的名称修改为wangwu,并暂停使用该账号。

[root@localhost ~]# usermod -l wangwu -L wang5 为用户账号设置密码—passwd命令

Linux的账户必须设置密码后,才能登录系统

命令格式:passwd [账户名]

常用选项:

示例1:修改wangwu密码

[root@localhost ~]# passwd wangwu Changing password for user wangwu. New password: BAD PASSWORD: The password is shorter than 8 characters Retype new password: passwd: all authentication tokens updated successfully. [root@localhost ~]# 删除用户账号—userdel命令 命令格式:userdel [-r] 账户名

-r—在删除该账户的同时,一并删除该账户对应的主目录。

例:删除wang5用户:

[root@localhost ~]# userdel -r wangwu 用户间切换—su(substitute user)命令 命令格式:su [用户名]

从root用户切换到任何用户不需要密码验证,而从普通用户到root或其他普通用户均需要输入目标用户的密码且验证成功后才可切换。

su和su -命令区别就是加载的配置文件不一样:

su切换方式加载的文件:~/.bashrc,/etc/bashrc su -切换方式加载的文件:/etc/bashrc,/etc/profile,~/.bashrc,~/.bash_profile 控制用户对系统命令的使用权限

使用sudo命令可以提高普通用户的操作权限,不过这个权限需要root用户进行配置/etc/sudoers文件才可使用。

sudo的执行流程如下(默认只有root用户能使用): 当用户执行sudo时,便会让用户输入自己的密码来确认(root执行sudo时不需要输入密码);若欲切换的身份与执行者身份相同,那也不需要输入密码。若密码输入成功,系统会去/etc/sudoers文件中查找该用户是否有执行sudo的权限;若用户具有执行sudo的权限,便开始sudo后续接的命令;

sudo -l:列出当前用户可以执行的命令。只有在sudoers里的用户才能使用该选项。 sudo -u 用户名 命令:以指定用户的身份执行命令。后面的用户是除root以外的 用户组管理 创建用户组命令格式: groupadd [-r] 用户组名称

常用选项:

-g GID——指定新用户组的组标识号(GID),默认值是已有的最大的GID加1。 -r——建立一个系统组账号,与-g不同时使用时,则分配一个1~999的GID。 创建用户组

示例:向系统中添加一个组ID为1001,组名为group1的新组。

[root@localhost ~]# groupadd -r group1 -g 1001 修改用户组属性 命令格式: groupmod 选项 用户组

常用选项:

-g GID——为用户组指定新的组标识号。 -n 新用户组——将用户组的名字改为新名字修改用户组的名称和用户组的GID值。

示例:将组group1的GID修改为2000,组名修改为group11。

[root@localhost ~]# groupmod -n group11 -g 2000 group1 添加/删除组成员 命令格式: gpasswd [选项] [用户] [组]

注意:只有root用户和组管理员才能够使用该命令。

选项:

-r 删除组密码 -a——把用户加入组 -d——把用户从组中删除。 -M——可同时添加多个用户 -A——给组指派管理员。

示例:将zhang3、li4用户同时加入group1组,并指派zhang3为管理员。

[root@localhost ~]# gpasswd -M zhang3,li4 group1 -A zhang3 删除组账户 命令格式: groupdel 用户组名

示例:从系统中删除组group11 被删除的组若是基本组,则必须先删除引用该基本组的用户,然后再删除该基本组。

[root@localhost ~]# groupdel group11 查询用户和组信息 [root@node13 ~]# id 用户名 显示出某个用户的详细信息 [root@node13 ~]# groups 用户名 显示出用户的所属组信息

查询li4信息:

[root@localhost ~]# id li4 uid=1002(li4) gid=1002(li4) groups=1002(li4),2001(group1) [root@localhost ~]# groups li4 li4 : li4 group1 查看用户登录系统的情况 1,users,查看当前登录系统的用户

查看当前登录系统的用户:

[root@localhost ~]# users redhat root 2,,last:列出目前与过去登入系统的用户相关信息

该命令默认会去读取/var/log/wtmp文件,并把该文件记录的登入系统的用户名单全部显示出来。

[root@node13 ~]# last -2 显示最近的两条登录信息 [root@node13 ~]# last -f /var/log/wtmp -n 3 显示/var/log/wtmp文件中最近的两条登录信息

3、如果想要知道每个账号的最近登录时间,则可使用lastlog查看,该命令会读取/var/log/lastlog文件。

[root@node13 ~]# lastlog 4、w:显示登录到系统的用户信息。 [root@localhost ~]# w 19:03:58 up 6:51, 2 users, load average: 0.00, 0.00, 0.00 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT root pts/0 192.168.107.1 12:12 0.00s 0.30s 0.01s w redhat pts/1 192.168.107.1 12:33 3:14m 0.06s 0.06s -bash

参数解释:

TTY:表示用户使用的TTY名称 FROM:表示用户从哪里登录进来 idle:表示空闲时间 JCPU:在某段时间内所有与该终端相关的进程任务所耗费的cpu时间 PCPU:当前活动进程使用的系统时间 WHAT:表示当前用户执行的进程名称和选项 5、who:显示目前登录到系统的用户

who通常通过/var/run/utmp文件来获取信息 。

[root@localhost ~]# who [root@localhost ~]# who -a 所有信息 [root@node13 ~]# who -r 显示当前系统的运行级别 [root@node13 ~]# who -u 显示当前每个用户的用户名、登录终端、登录时间、终端活动、进程和主机名 [root@node13 ~]# who -T 显示tty终端的状态,“+”表示对任何人可写,“-”表示仅对root用户或所有者可写,“?”表示遇到终端故障


1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,会注明原创字样,如未注明都非原创,如有侵权请联系删除!;3.作者投稿可能会经我们编辑修改或补充;4.本站不提供任何储存功能只提供收集或者投稿人的网盘链接。

标签: #Linux详解 #用户 #用户组的解释创建等 #用户用户组的解释创建等 #含例题