当前位置:   article > 正文

Linux 用户讲解(创建用户、修改用户属性、用户相关命令)_linux user

linux user

目录

Linux 用户介绍

Linux用户类型

UID

用户组ID

通过文件的方法新建、编辑用户

/etc/passwd

/etc/group

/etc/shadow

/etc/skel

通过文件创建用户实例

切换用户的身份

su 切换命令身份

sudo 授权普通用户执行管理员权限

Linux 用户相关命令

id            查看用户信息

who        查看系统中当前用户的信息

w            查看系统中当前用户信息以及正在运行的命令

last         显示系统的用户登录记录 

useradd 创建新的用户账户

usermod 修改用户的属性

userdel   删除用户

 passwd  修改用户的密码、过期时间等

关于用户组的命令


Linux 用户介绍

Linux用户类型

Linux用户被分为三种类型:管理员用户、系统用户、普通用户

管理员用户

权限最大,限制最小

系统用户

默认情况下不能登录服务器,只能去调用某个服务程序

系统用户可以避免两个问题

黑客破解系统用户密码后,不能够登录服务器

当黑客入侵了网站服务之后,由于系统用户的权限特别小,黑客造成的范围也会降低很多

普通用户

用来日常完成工作的用户(普通用户下不能够新建普通用户)

系统用户和普通用户的区别

系统用户和普通用户登录终端不同

普通用户的登录终端是 /bin/bash,能够正常使用这个账户登录服务器

系统用户的登录终端是/sbin/nologin,不能够正常登录登录到服务器(只能管理某些服务)

UID

UID  用户的身份证号码(uid user identification),具有唯一性

不同用户的UID范围

管理员用户

UID 为0 (唯一的,不可更改的,UID为0就代表是管理员用户)

系统用户

UID在RHEL5、6系统下为1-499;在RHEL7-8系统下为1-999

普通用户

UID在RHEL5、6为500-65535;在RHEL7、8系统下为从1000开始,没有上限

注意事项

UID=0一定代表的是管理员用户,其余的UID不能确定

即除了管理员用户的UID外,其余用户的UID都可以手工指定(所以无法只通过UID来判断其是系统用户还是普通用户)

系统用户和普通用户是通过功能和作用来区分的,不是通过UID来区别(即UID只是做个参考)

用户组ID

用户组只有一个组ID,就是用户组ID,其基本组ID和扩展组ID是对于用户来说的

可以将不同的用户加入到用户组,使得不同的用户都拥有这个用户组所有的权限

不用过多的去区分基本组和扩展组,要想用户获得某个用户组的权限,直接将这个用户加入到这个用户组就可以了

基本组ID(gid)

当创建用户时会自动生成一个组,组名和用户名一致,这个组对于用户自己来说就是基本组

扩展组ID

当用户加入到其它用户的基本组时,其它用户的其本组对于自己来说就是扩展组

一个用户的扩展组可以有多个(最多31个扩展组)

扩展组组要用于权限管理

注意事项(groups)

一个用户只可以有一个基本组,一个用户可以加入到多个扩展组

文件属性的所属组就是用户组,只要是这个用户组的用户,就可以享用此用户组对这个文件的权限,不区分此用户组对用户来说是基本组还是扩展组

ls -l 可以查看

       文件属性 文件所有者  文件所属组  

       此时文件所属组并不区分基本组和扩展组,只要文件有所属组就可以


通过文件的方法新建、编辑用户

/etc/passwd

vim /etc/passwd  此文件时用来存储用户信息的(不包括密码)

字段1:root——用户名称

字段2:x————是否有密码(有为x,真正的密码存放在shadow中)

字段3:1————UID

字段4:1————初始用户组ID(只包含基本组;扩展组的信息在/etc/group文件中可以查询到)

字段5:root———用户的描述信息

字段6:/root———用户的家目录

字段7:/bin/bash—解释器终端(用户登录shell;为/bin/bash表示可以登录系统,为/sbin/noligin表示不被授权登录系统-也就是系统用户)

/etc/group

vim /etc/group   此文件报文的是用户组信息(包含基本组和扩展组的信息)

字段1:linux2——用户组名(此组为与该组名称相同的用户的基本组)

字段2:X————是否有密码

字段3:1002———用户组ID

字段4:admin1——组内其它用户列表(对于该列表内的用户来说,此组就是自己的扩展组)

/etc/shadow

vim /etc/shadow       文件保存的是用户的密码信息

字段1:admin1——用户名

字段2:!!  ————加密密码(!!表示不设置密码)

字段3:19401 ——最后一次修改日期距离1970年1月1日的天数

字段4:0 ————最小时间间隔(修改密码最小间隔天数)

字段5:99999——最大时间间隔(密码保存的最大有效天数)

字段6:7————警告时间(密码过期前进行警告)

字段7:空————不活动时间(密码失效后账号能够保持有效的最大天数)

字段8:空————失效时间(密码无效时间,记录的是账号失效时间距离1970年1月1日的天数--使用这个字段需要给出账号的生存日期,期满后此账号无法登录)

字段9:标志———未分配的功能

注意事项

密码是通过SHA-512加密出来的(该加密为二次加密,在经过第一此加密之后,第二次加入随机数再此加密;因此相同的密码每次加密的结果都不一样)

如果要输入密码,可以通过机密软件将密码加密,然后复制进来

/etc/skel

/etc/skel 用于存放shell的环境变量,当使用命令创建新用户的时候,这个目录下的所有文件会自动复制到新用户的家目录下

当我们使用文件建立用户,我们需要手动将此文件复制到用户的加目录下

 cp -r /etc/skel 用户家目录

通过文件创建用户实例

vim /etc/group  创建用户组名为linuxjp,组ID为521

 linuxjp:x:521

vim /etc/passwd 创建用户名为linuxj,uid为520,用户组id为521,家目录为/home/linuxj,终端解释器为/bin/bash

vim /etc/shadow 为linuxj编写密码,此处表示暂时不写密码

  linuxj:!!::::::

此时登录用户发现虽然也可登录进去,但是用户没有家目录

cp -r /etc/skel /home/linuxj  为linuxj创建家目录

id linuxj查看用户信息


切换用户的身份

su 切换命令身份

su 用户名   切换到用户名(会保留先前用户的变量信息)

su - 用户名  完整的身份变更(不会保留先前用户的变量信息,变量信息都变为自己的了)

注意事项

管理员可以切换到普通用户 此时无需密码

普通用户可以切换到管理员、也可以切换到其它普通用户 此时需要密码

sudo 授权普通用户执行管理员权限

sudo  是服务程序,也是命令

 可以让某个用户执行某个工作,进行单独的权限设定(类似于精准的SUID)

 让执行sudo命令的用户临时获取到更高的权限(但是仅限于某个用户)

配置sudo服务

可以通过visudo配置sudo服务(visudo 也是调用vim编译器来实现编译的,推荐)

也可以编辑文件目录来实现 vim /etc/sudoers

root 谁可以使用sudo服务(要为哪位用户进行命令授权)

ALL  哪些主机可以使用sudo命令(填写网段表示从此网段登录的主机才可以使用sudo命令,ALL表示不限制主机来源)

(ALL)  以谁的身份执行sudo命令(输入用户名表示为通过其它用户来执行命令,ALL表示最高权限,)

ALL  可以执行的命令(命令必须使用命令路径的方式来写,ALL表示不限制命令)

     命令路径可以通过which 命令 来进行查找

执行sudo命令

只有/etc/sudoers文件有用户的名字,用户才可以使用sudo命令

 sudo 命令1            执行命令1(此主机需满足/etc/sudoers文件定义的要求,需要进入被sudo授权的用户)

 sudo -u 用户名 命令1  使用sudo服务允许的用户身份来执行命令1(不需要进入被sudo授权的用户)

 sudo -l                查看此用户被sudo授权了哪些命令

配置举例

visudo  配置sudo服务(或者vim /etc/sudoers)

admin ALL=(root)    /usr/bin/ls

表示不限主机来源,当主机登录admin用户后,可以通过root的身份执行ls命令

执行sudo命令(两种方式)

方式一:sudo –u admin ls   通过admin用户身份执行ls

方式二:或者登录到admiin用户(被sudo授权的用户)下执行sudo 命令

sudo -l  查此用户被sudo授权的命令

注意事项

在满足工作的前提之下,权限越少越好

尽量不要给用户一个能够编写文件的命令的权限(vim echo)


Linux 用户相关命令

id 查看用户信息

id  [用户名]——查看用户的信息(UID、基本组ID、扩展组ID)

 id                     查看当前用户的信息

 id 用户名         查看指定用户的信息

gid 基本组ID(用户组)、groups 扩展组ID(用户组)

who 查看系统中当前用户的信息

who 【参数】 【用户名】——查看系统中当前用户的信息

字段含义

第一列:登录的登录名

第二列:用户连接的方式(tty2指的是直接连接方式,pts 指的是远程连接方式)

第三、四列: 登陆到系统的时间

第五列:也就是括号内的字段,显示用户登录所使用的ip地址;tty表示本地直连

查看系统中当前用户信息以及正在运行的命令

w 【参数】 【用户名】————查看系统中当前用户信息,比Who多了部分信息,比较明显的是可以查看到正在运行的命令

部分参数讲解

LOGIN@:登录时间

IDLE:用户空闲的时间

ICPU:该用户连接的所有进程所占用的时间

PCPU:当前进程所占用的时间

WHAT:当前用户正在运行的命令

last 显示系统的用户登录记录 

这个信息有滞后性,需要在下一次重启或者某个用户注销之后才会同步一次,这可能会导致,某些正在登录的用户或者已经离线的用户显示不出来

由于用户登录信息可以更改(通过touch -am修改),所以不要完全相信此命令的显示结果,以实际为准

  vim /var/log/lastlog 下可以更改用户登录信息

useradd 创建新的用户账户

 useradd 【参数】 【用户】——创建用户

 useradd -u 1000 用户           创建uid为1000的用户

  -u  指定该用户的用户ID

  -c  为用户加上备注(备注文字会保存在passwd的备注栏位中)  

  -d  指定用户的家用户(默认为/home/username)

  -e  指定账户的到期时间(格式为YYYY-MM-DD)

  -g  指定一个用户组(包括基本组和扩展组)

  -G  指定一个或多个用户的扩展组

  -N  不创建于用户同名的基本用户组(默认创建)

  -s  指定该用户默认的shell解释器(即指定该用户是否能够登录终端)

  -m 自动建立用户的登录目录

  -M 不自动建立用户的登录目录

  -n  取消建立以用户名的名称为名字的群组

usermod 修改用户的属性

usermod 【参数】 用户名——修改用户的属性

 -u 修改用户的UID

 -s 修改用户登录终端,将用户的登录终端修改为/sbin/nologin,此用户就无法登录服务器了

 -d 修改用户登录时的家用户(当-d 和 -m 一起使用时,可以将旧的数据移动到新的家目录中)

 -c 填写账户的备注信息

 -e 修改账户的到期时间,格式为(YYYY-MM-DD)

 -g 变更用户组(包括基本组和扩展组)

 -G 变更扩展组

 -L 锁定用户,禁止其登录系统(可以通过passwd -S 用户名   查看该用户的状态)

 -U 解锁用户,允许其登陆系统

userdel   删除用户

userdel 【参数】【用户        删除用户名称

注意事项

当删除用户后,只是删除了用户名称(只删除passwd、shadow、group文件中的用户信息),用户的家目录/home信息没有删除,用户的邮件/var/spool/mail没有删除

关于此用户的重要数据还存放在/home文件下,当再次创建此用户后会自动关联家目录等信息

userdel -r 用户    删除用户的同时并删除用户的家目录

            -f               强制删除用户

 passwd  修改用户的密码、过期时间等

passwd 【参数】 用户        修改用户的密码、过期时间等

passwd                    修改当前用户的密码

passed 用户名         修改此用户的密码

passed -e 用户名    强制用户在下一次登录时修改密码

  --stdin           允许用户通过标准输入修改用户密码

  -S                 显示用户的密码是否被锁定,以及密码所采用的加密算法名称

  -l                  锁定用户,禁止其登录

  -u                 解锁锁定,允许用户登录

关于用户组的命令

groupadd 【参数】 组名    创建新的用户组

groupadd  admin           创建名为admin的普通用户组

groupadd -g 123 linux   创建用户组linux,并指定工作组的id为123

  -k/--key                         创建用户时不允许使用/etc/login.defs中的默认值(/etc/login.defs定义创建用户时需要的一些用户配置信息-例如是否需要创建家目录、UID范围等)

  -o/--non-unique            允许创建有重复GID的组

  -p/--password               为新组使用此加密过的密码

  -r/--system                    创建一个系统用户组

groupdel 【参数】 用户组             删除用户组(只可以删除扩展组组,不能删除主组)

  -r/--remove        删除主目录和邮件池

groupmod 【参数】 用户组            修改用户组的属性

  -g         修改用户组的组ID

  -n         修改用户组的名称               

groupmems 【参数】用户名 【参数】 组名        修改组中的用户

 groupmems  -a  admin1 -g admin2        将用户admin1加入到admin2组中

 groupmems  -d  admin1 -g admin2        将用户admin1从admin2组中移除

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Monodyee/article/detail/542155
推荐阅读
相关标签
  

闽ICP备14008679号