Linux命令基础(三(用户和组))

目录

用户

用户的分类

管理员用户

普通用户

程序用户

UID

passwd

chage

useradd

usermod

userdel

gpasswd

其他


用户

用户的分类

Linux中用户分为三类,分别为

管理员用户

即root用户,我们在安装Linux虚拟机的过程中,有一个步骤就是设置root账户。设置了root账户后普通账户就无所谓怎么设置了,因为root对本机的控制权极高,ID=0。直接使用root账户登录系统,就可以随意修改普通账户了。主要还是权限大,很多操作使用普通用户是进行不了的,会提示权限不够。

普通用户

普通用户权限就比root少很多了,一般只在自己的宿主目录才有完整,用户的宿主目录不特地去修改的话,一般就在home下。在我们安装虚拟机的时候也弹出过创建用户的步骤,一般不使用普通用户登录。可以由root创建、赋权、删除。

程序用户

在安装Linux操作系统及部分应用程序时,会添加一些特定的低权限用户账号,仅用于维持系统或某个程序的正常运行,如 bin、daemon、ftp、mail 等。这类用户被称为伪,用户一般不会用来登录系统。

UID

每个用户都有一个身份标识,这个表示就是Uid,类似于每个人的身份证。

root作为管理员用户uid肯定要特殊一点,他的uid为0

普通用户基本上都是从1000开始,如果不做特别的设置就是逐一往后加。

passwd

passwd是用来记录文件账号详细说明的。文件里的每一行代表一个用户,后面的详细信息被冒号隔开

例如:

random:x:1202:1300::/home/random:/bin/bash

random:代表用户名,用户名是为了方便用户记忆的,Linux系统是通过UID来识别用户身份的。

x:表示此用户设有密码,密码都保存在/etc/shadow下,只有root用户才能查看。

1202:用户的UID号

1300:用户所属的基本组账号的GID

 :描述性信息

/home/random:宿主目录。即该用户登录后的默认目录

/bin/bash:记录shell等信息,用户完成登录后使用的

还有另外一个文件,也记录了用户账号的详细信息,这个文件是/etc/shadow

我们称之为影子文件

他是这样一串代码:

random:!!:19894:0:99999:7:::
和passwd一样,shadow文件里的信息也被冒号隔开。

第一列:账户名

第二列:存放真正加密的密码,采用特殊的算法,更加难破译。!!和*表示没有密码不能登陆,新创建用户也是!!,如果密码前面显示双感叹号表示该账户被锁定了

第三列:上一次修改密码的时间,从1970年1月1日开始算的,因为1970年是linux的诞生日,date -d "1970-01-01 18983 days"可以查看哪一天改过

第四列:多久之后才可以修改密码,如果是 0,则密码可以随时修改 最小修改间隔时间 ,也就是说 该字段规定了从第三个字段(最后一次修改密码的日期)起,多长时间之内不能修改密码,如果是0 则随时修改密码,如果是10 则代表密码修改后10天之内不能再次修改密码,此字段是为了针对某些人频繁更改账号密码而设计的。

第五列:密码有效期,默认99999(273年),表示永久生效

第六列:密码到期前的第几天发出告警信息,默认是7天,每次登录系统都会向该账户发出 "修改密码" 的警告信息

第七列:密码过期的宽限天数,过期后的几天还是可以登陆的,如果过了宽限天数,系统将不再让此账户登陆,也不会提示账户过期,是完全禁用

比如说,此字段规定的宽限天数是10,则代表密码过期10天后失效;如果是0 则代表密码过期后立即失效;如果是 -1 则代表密码永远不会失效

第八列:账号失效时间,使用自 1970 年 1 月 1 日以来的总天数作为账户的失效时间

第九列:保留,未使用

chage

 既然知道了一个用户创建后会有哪些信息,那么接下来就要对这些信息进行修改,我们通常使用chage命令来对那些信息进行修改

用法是:chage [选项] [所作修改] 用户名

-m:密码可更改的最小天数。为零时代表任何时候都可以更改密码。

-M:密码保持有效的最大天数。chage -M 60 root

-w:用户密码到期前,提前收到警告信息的天数。

-E:帐号到期的日期。过了这天,此帐号将不可用。

-d:上一次更改的日期。

-i:停滞时期。如果一个密码已过期这些天,那么此帐号将不可用。

-l:例出当前的设置。由非特权用户来确定他们的密码或帐号何时过期。

例如我想要修改laowang这个用户的到期时间为2023.6.1,我们可以用

chage -E 2023-06-01 laowang

这样,laowang这个用户就不可以登录了,因为到期时间是去年,用户已经失效了。

useradd

知道了用户基本信息如何修改,但是,修改哪个用户的呢?这时候我们需要创建用户,使用useradd命令。

用法:useradd [选项] [选项对应的操作] [用户名]

-u:指定用户的 UID 号,要求该 UID 号码未被其他用户使用。

-d:指定用户的宿主目录位置(当与-M 一起使用时,不生效)。

-e:指定用户的账户失效时间,可使用 YYYY-MM-DD 的日期格式。

-g:指定用户的基本组名(或使用 GID 号)。

-G:指定用户的附加组名(或使用 GID 号)。

-M:不建立宿主目录,即使/etc/login.defs 系统配置中已设定要建立宿主目录。

-s:指定用户的登录Shell。

例如,我想要创建laowang这个用户,并且我想自定他的UID为1888(前提是这个UID未被使用),然后宿主目录是/home/1888/laowang,把他加到组wang中(前提是这个组存在,下面会讲如何创建组)

那么我们可以用

useradd -u 1888 -d /home/1888 -G wang(这里输入组的gid也可以)

然后创建完成我们可以用 id laowang    命令来查看一下

usermod

前面我们知道,chage命令可以修改用户账号一些信息,但是只能修改跟登录成功与否相关的。

那么想要修改账户的一些其他属性,我们就需要用usermod,比如说我新建了laozhang用户,我想让laozhang用1888这个UID,但是这个UID被laownag占用了,所以我需要修改laownag的UID,改成别的,这样我新建laozhang的时候,就不会显示UID已被占用了

用法 usermod [选项] [选项对应的操作] [用户]

参数

-l:更改用户账号的登录名称

-L:锁定用户账户

-U:解锁用户账户

-u:修改用户的 UID 号

-d:修改用户的宿主目录位置

-e:修改用户的账户失效时间,可使用 YYYY-MM-DD 的日期格式。

-g:修改用户的基本组名(或使用 GID 号)

-G:修改用户的附加组名(或使用 GID 号)

-s:指定用户的登录 Shell

例如我要修改laowang的宿主目录

mv /home/laowang /laowang       先将目录移过去

usermod -d /home/laowang /laowang         再从属性是修改

cat /etc/passwd|grep laowang           查看一下passwd并过滤laowang的条目

与uesrmod -U -L 用法相同的还有passwd命令,同样也可以锁定/解锁用户

-d:清空指定用户的密码,仅使用用户名即可登录系统。

-l:锁定用户账户。

-S:查看用户账户的状态(是否被锁定)。

-u:解锁用户账户。

userdel

有创建用户那必然有删除用户,删除用户的代码是userdel

用法 userdel [-r] 用户名

添加-r的原因是删除用户时要连同用户的宿主目录一并删除。

组也分为基本组和附加组。

基本组:基于某种特定联系将多个用户集合在一起,即构成一个用 户组,表示该组内所有用户的账号称为组账号。每一个用户账号至少属于一个组,这个组称为该用户的基本组(或私有组)。一般新建用户的时候会随用户自动创建,与用户同名。

附加组:若该用户同时还包含在其他的组中,则这些组称为该用户的附加组(或公共组)。一般一个用户可以有0个或多个附加组。

我们可以用groupadd和groupdel来创建和删除组,在/etc/group里可以查看组的信息。

gpasswd -a laowang gebi将laowang用户加入gebi组

groupdel命令简单很多,和userdel用法几乎相同

gpasswd

创建组后,我们可以通过gpasswd命令来进行一些组的操作。

-a:添加用户到组

-d:从组删除用户

-A:指定管理员

-M:指定组成员和

-A的用途差不多

-r:删除密码

-R:限制用户登入组,只有组中的成员才可以用newgrp加入该组

其他

groups [用户名] 命令可以查看用户所在组有哪些

finger [用户名] 可以查查学用户账号的详细信息

who 可以查看登录到主机的用户信息(远程登陆显示tty)

你可能感兴趣的:(linux,运维,服务器)