最新消息: USBMI致力于为网友们分享Windows、安卓、IOS等主流手机系统相关的资讯以及评测、同时提供相关教程、应用、软件下载等服务。

Linux入门(四)

IT圈 admin 2浏览 0评论

Linux入门(四)

四、Linux用户(组)管理

Linux 是多用户多任务操作系统, 换句话说,Linux 系统支持多个用户在同一时间内登陆,不同用户可以执行不同的任务,并且互不影响。

例如,某台 Linux 服务器上有 4 个用户,分别是 root、www、ftp 和 mysql,在同一时间内,root 用户可能在查看系统日志、管理维护系统;www 用户可能在修改自己的网页程序;ftp 用户可能在上传软件到服务器;mysql 用户可能在执行自己的 SQL 查询,每个用户互不干扰,有条不紊地进行着自己的工作。与此同时,每个用户之间不能越权访问,比如 www 用户不能执行 mysql 用户的 SQL 查询操作,ftp 用户也不能修改 www 用户的网页程序。

不同用户具有不问的权限,毎个用户在权限允许的范围内完成不间的任务,Linux 正是通过这种权限的划分与管理,实现了多用户多任务的运行机制。

因此,如果要使用 Linux 系统的资源,就必须向系统管理员申请一个账户,然后通过这个账户进入系统(账户和用户是一个概念)。通过建立不同属性的用户,一方面可以合理地利用和控制系统资源,另一方面也可以帮助用户组织文件,提供对用户文件的安全性保护。

每个用户都有唯一的用户名和密码。在登录系统时,只有正确输入用户名和密码,才能进入系统和自己的主目录。

用户组是具有相同特征用户的逻辑集合。简单的理解,有时我们需要让多个用户具有相同的权限,比如查看、修改某一个文件的权限,一种方法是分别对多个用户进行文件访问授权,如果有 10 个用户的话,就需要授权 10 次,那如果有 100、1000 甚至更多的用户呢?

显然,这种方法不太合理。 最好的方式是建立一个组,让这个组具有查看、修改此文件的权限,然后将所有需要访问此文件的用户放入这个组中。那么,所有用户就具有了和组一样的权限,这就是用户组。

将用户分组是 Linux 系统中对用户进行管理及控制访问权限的一种手段,通过定义用户组,很多程序上简化了对用户的管理工作。

Linux用户和组的关系
用户和用户组的对应关系有以下 4 种:

一对一:一个用户可以存在一个组中,是组中的唯一成员;
一对多:一个用户可以存在多个用户组中,此用户具有这多个组的共同权限
多对一:多个用户可以存在一个组中,这些用户具有和组相同的权限
多对多:多个用户可以存在多个组中,也就是以上 3 种关系的扩展

Linux UID和GID(用户ID和组ID)
登陆 Linux 系统时,虽然输入的是自己的用户名和密码,但其实 Linux 并不认识你的用户名称,它只认识用户名对应的 ID 号(也就是一串数字)。Linux 系统将所有用户的名称与 ID 的对应关系都存储在 /etc/passwd 文件中。

  • /etc/passwd文件:是Linux系统识别用户的重要文件,所有的用户都记录在该文件中。一行表示一个用户的账户信息,有7个段位,依次为用户名、密码、用户标识号UID、用户所属的主要群组标识号GID、用户名全称、用户主目录、用户使用的Shell类型。UID是用户的ID值,在系统中每一位用户的UID值都是唯一的。UID是确认用户权限的标识,用户登录系统所处的角色是通过UID来实现的,而不是用户名。
  • /etc/shadow文件:是/etc/passwd的影子文件,与/etc/passwd是对应互补的,内容包括用户及被加密的密码以及其他/etc/passwd不能包括的信息,比如用户账户的有效期限等。该文件只有root用户可以读取和操作。

用户主组、附加组:一个用户账户可以属于多个组群,挑一个作为用户的主组,即用户登录系统后属于该组

  • /etc/group 注:用户组(group)配置文件;

  • /etc/gshadow 注:用户组(group)的影子文件;

用户功能
root超级用户,UID为0,其权限最高
系统用户虚拟用户、伪用户、假用户,是系统自身拥有的用户,UID为1~999,比如bin、daemon、adm、ftp、mail等,不具有登录Linux系统的能力,但却是系统运行不可缺少的用户。
普通用户UID为1000~60000,可以登录系统,操作自己目录的内容

说白了,用户名并无实际作用,仅是为了方便用户的记忆而已。

要论证 “Linux系统不认识用户名” 也很简单,在网络上下载过 “.tar.gz” 或 “.tar.bz2” 格式的文件,在解压缩之后的文件中,你会发现文件拥有者的属性显示的是一串数字,这很正常,就是因为系统只认识代表你身份的 ID,这串数字就是用户的 ID(UID)号。

Linux 系统中,每个用户的 ID 细分为 2 种,分别是用户 ID(User ID,简称 UID)和组 ID(Group ID,简称 GID),这与文件有拥有者和拥有群组两种属性相对应
读者可能会问,既然 Linux 系统不认识用户名,文件是如何判别它的拥有者名称和群组名称的呢?
每个文件都有自己的拥有者 ID 和群组 ID,当显示文件属性时,系统会根据 /etc/passwd 和 /etc/group 文件中的内容,分别找到 UID 和 GID 对应的用户名和群组名,然后显示出来。

在 /etc/passwd 文件中,利用 UID 可以找到对应的用户名;在 /etc/group 文件中,利用 GID 可以找到对应的群组名。

做个小实验,笔者所用的 Linux 系统中,常用的有两个账户,分别为 root 超级管理员账户和 c.biancheng.net 普通账户,我们先使用 root 账号登陆并 Vim /etc/passwd,在该文件中找到 c.biancheng.net 账户并将其 UID 随意改一个数字,这时当你查看普通账户拥有的文件时,你会发现所有文件的拥有者不再是 c.biancheng.net,而是数字。

具体执行过程如下所示:

#查看系统中是否存在c.biancheng.net这个用户
[root@livecd ~]#grep 'c.biancheng.net' /etc/passwd
c.biancheng.net:x:500:500:c.biancheng.net:/home/centoslive:/bin/bash
[root@livecd ~]#ll -d /home/centoslive
drwx------. 23 c.biancheng.net centoslive 4096 Apr 9 09:37 /home/centoslive
[root@livecd ~]#vim /etc/passwd
#修改c.biancheng.net账户中的UID(第一个 500)为 2000
[root@livecd ~]#ll -d /home/centoslive
drwx------. 23 500 centoslive 4096 Apr 9 09:37 /home/centoslive
#可以看到,之前的 c.biancheng.net 变为了 500,因为修改了UID,导致 500 找不到对应的账号,因此显示数字
#记得最后将其再手动改正过来
[root@livecd ~]#vim /etc.passwd
#修改c.biancheng.net账户中的UID从 2000 改为 500
由于 c.biancheng.net 账户的 UID 已经改为 2000,但其 home 目录却记录的是 500,会导致此用户再次登录时无法进入自己的home目录。

注意,为了说明 ID 和用户名的对应关系,所以才将 /etc/passwd 文件中用户的 UID 做了更改。此操作很可能会导致某些程序无法进行,因此 /etc/passwd 文件不能随意修改。

4.1 用户

4.1.1 实际用户和有效用户

那么这两个用户到底是什么,它们之间有什么区别呢?

实际用户ID(实际组ID):标识当前用户(所属组)是谁,当用户登陆时取自口令文件。即标识我是谁。也就是登录用户的uid和gid。比如我的Linux以king用户登录,在Linux运行的所有的命令的实际用户ID都是king的uid,实际用户组ID都是king的gid(可以用id命令查看)
有效用户ID(有效组ID):用来决定我们(当前进程)对资源的访问权限或者对文件的访问权(即实际该进程是以那个用户运行的)
一般情况下,有效用户ID等于实际用户ID,有效用户组ID等于实际用户组ID。当设置-用户-ID(SUID)位设置,则有效用户ID等于文件的所有者的uid,而不是实际用户ID;同样,如果设置了设置-用户组-ID(SGID)位,则有效用户组ID等于文件所有者的gid,而不是实际用户组ID。

4.1.2 添加用户useradd

useradd命令对于系统管理员来说是非常有用的命令。 了解其参数和选项对于日常操作至关重要。 要获得有关useradd命令的快速帮助,请发出以下命令。

$ useradd -h
> **user 参数 用户名**
> 参数:
> -c comment 指定一段注释性描述
-d 目录 指定用户主目录,如果此目录不存在,则同时使用 -m选项,可以创建主目录。
-g 用户组 指定用户组所属的用户组。
-G 用户组,指定用户所属的附加组。
-s Shell文件 指定用户的登陆Shell。Linux用户使用Shell从命令行界面发出命令。 还有其他命令行界面。 默认和最受欢迎的命令行界面或外壳是bash 。 新创建的用户将使用bash作为默认外壳。 使用-s选项创建用户时,可以更改默认外壳程序。/bin/nologin 无shell选项,不允许使用shell。
-u 用户号,指定用户的用户号,如果同时有-o选项,则可以重复使用其他用户的标识号。
-M 创建没有主目录的新用户
-e YYYY-MM-DD 创建有过期日期的新账户
-f Days 创建有密码过期天数的账号,-1永不过期
-c "***" 为账户添加注释信息
用户名:指定新的账号用户名。 

在添加Linux用户之前,我们将列出现有用户以提供不冲突的用户名。

$ cat /etc/passwd | cut -d : -f 1

我们将使用名称测试创建新用户。 该用户将使用默认的shell和其他相关参数添加到/ etc / passwd文件中。

$ useradd test

在添加了具有帐户过期日期的用户后,我们可以使用如下的chage命令检查该日期。

chage -l 用户名

4.1.3 修改用户密码passwd


passwd 参数 用户名
参数:
-l 锁定口令,即禁用账号。
-u 口令解锁。
-d 使账号无口令。
-f 强迫用户下次登录时修改口令。

4.1.3.1 利用passwd更改密码

  • root账户修改其他普通账户密码:
  1. 方法一、
passwd 用户
输入两次密码

如果输入密码后提示:Password has been already used. Choose another.则说明设置的密码之前使用过,执行echo “” > /etc/security/opasswd后重试即可

  1. 方法二、
echo "密码"| passwd 用户名 --stdin
示例:
echo "Puluo@123"| passwd myuser --stdin

这个时候需要使用passwd myuser命令来修改密码,如果输入密码后提示:Password has been already used. Choose another.则说明设置的密码之前使用过,执行echo “” > /etc/security/opasswd后重试即可

  • 修改自己的密码
    输入passwd命令后按回车键后输入两次密码即可。

3.1.3.2 利用passwd临时锁定账户

在/etc/shadow文件中属于该用户的行的第二个字段(密码)前面加上就可以了。想恢复该用户,去掉即可。

或者使用如下命令关闭用户账号:

passwd peter –l

重新释放:

passwd peter –u

4.1.4 修改用户信息usermod

usermod 参数 用户名

4.1.5 永久删除用户userdel

 userdel 参数 用户名****
参数:
-f:强制删除用户,即使用户当前已登录;
-r:删除用户的同时,删除与用户相关的所有文件,不适用此参数,用户目录依然存在

4.2 用户组

4.2.1 新增用户组groupadd


groupadd [选项] 用户组
选项:
-g GID 指定新用户组的组标识号(GID)。
-o 一般与-g选项同时使用,表示新用户组的GID可以与系统已有用户组的GID相同

4.2.2 修改用户组


groupmod 参数 用户组
参数:-g GID 为用户组指定新的组标识号。
-o 与-g选项同时使用,用户组的新GID可以与系统已有用户组的GID相同。
-n新用户组 将用户组的名字改为新名字
示例:
groupmod -n new-usergroup usergroup 

4.2.3 用户组密码管理 gpasswd

[root@test ~]# gpasswd -h
Usage: gpasswd [option] GROUPOptions:
-a, --add USER 添加用户至用户组
-d, --delete USER 从用户组删除用户
-h, --help 显示帮助信息
-Q, --root CHROOT_DIR directory to chroot into
-r, --delete-password 删除用户组密码
-R, --restrict 现在成员对组的访问
-M, --members USER,... set the list of members of GROUP
-A, --administrators ADMIN,...
set the list of administrators for GROUP
Except for the -A and -M options, the options cannot be combined
示例:
groupadd newgroup
gpasswd newgroup 为用户组newgroup设置密码:
New Password:  新密码
Re-enter new password:  确认新密码
注意:设置密码要8位以上数字字母下划线密码,且输入过程不显示
gpasswd -r newgroup 删除newgroup 密码

4.3 切换用户su/sudo

4.3.1 su

如果以普通用户user1登陆系统后,要增加一个用户,但是普通有用又没有useradd的权限,那么可以有2个办法:

  1. 先用exit退出系统,然后在以root用户登陆,之后useradd增加用户。

  2. 使用su命令,su就是switch user切换用户。

(1)su命令在不加参数时,默认切换到root用户,只要输入root的密码,就可以切换到root身份,直到使用exit退出。

注意这里虽然切换到root,但实际上并没有自动切换家目录。
(2)su命令加上一个 - 参数,不但可以切换成root,还可以应用root的环境。
可以看到提示符从$变长了#。
(3)su命令还可以加上具体的用户名作为参数。

su 用户名

4.3.2 sudo

用其他用户身份和权限执行命令,而并不是切换用户。
上面的su命令虽然方便,但是需要预先知道切换用户的密码,如果泄漏出去,系统安全会受到严峻的挑战。
语法:用户MySQL要修改用user1的密码:sudo passwd user1 。

原理是:运行命令时,系统检查/etc/sudoers 配置文件,看这个用户是否有执行sudo的权限,如果有权限,系统要求输入用户自己的密码,如果密码输入正确,系统会以root身份运行 passwd xx命令。

/etc/sudoers文件可以用vi修改(不建议),但是考虑到配置文件很重要,linux提供了visudo命令来修改文件,并且在保存时会自动检测语法,防止配置错误导致没办法使用sudo命令。

4.3.3 visudo

visodo 是编辑 /etc/sudoers 的命令;也可以不用这个命令,直接用vi 来编辑 /etc/sudoers

的效果是一样的;

4.3.4 sudoedit

和sudo 功能差不多

4.4 其他有关用户命令

4.4.1 pwcov

同步用户从/etc/passwd 到/etc/shadow

4.4.2 pwck

pwck是校验用户配置文件/etc/passwd 和/etc/shadow 文件内容是否合法或完整;

4.4.3 pwunconv

是pwcov 的立逆向操作,是从/etc/shadow和/etc/passwd 创建/etc/passwd ,然后会删除 /etc/shadow 文件;

4.4.4 finger

查看用户信息工具

4.4.5 id

id 命令可以查询用户的UID、GID 和附加组的信息。命令比较简单,格式如下

[root@localhost ~]# id 用户名

4.4.6 chfn

更改用户信息工具

4.4.7 groups

显示用户所属的用户组

4.4.8 grpck

4.4.9 grpconv

通过/etc/group和/etc/gshadow 的文件内容来同步或创建/etc/gshadow ,如果/etc/gshadow不存在则创建;

4.4.10 grpunconv

通过/etc/group和/etc/gshadow 文件内容来同步或创建/etc/group ,然后删除gshadow文件;

Linux入门(四)

四、Linux用户(组)管理

Linux 是多用户多任务操作系统, 换句话说,Linux 系统支持多个用户在同一时间内登陆,不同用户可以执行不同的任务,并且互不影响。

例如,某台 Linux 服务器上有 4 个用户,分别是 root、www、ftp 和 mysql,在同一时间内,root 用户可能在查看系统日志、管理维护系统;www 用户可能在修改自己的网页程序;ftp 用户可能在上传软件到服务器;mysql 用户可能在执行自己的 SQL 查询,每个用户互不干扰,有条不紊地进行着自己的工作。与此同时,每个用户之间不能越权访问,比如 www 用户不能执行 mysql 用户的 SQL 查询操作,ftp 用户也不能修改 www 用户的网页程序。

不同用户具有不问的权限,毎个用户在权限允许的范围内完成不间的任务,Linux 正是通过这种权限的划分与管理,实现了多用户多任务的运行机制。

因此,如果要使用 Linux 系统的资源,就必须向系统管理员申请一个账户,然后通过这个账户进入系统(账户和用户是一个概念)。通过建立不同属性的用户,一方面可以合理地利用和控制系统资源,另一方面也可以帮助用户组织文件,提供对用户文件的安全性保护。

每个用户都有唯一的用户名和密码。在登录系统时,只有正确输入用户名和密码,才能进入系统和自己的主目录。

用户组是具有相同特征用户的逻辑集合。简单的理解,有时我们需要让多个用户具有相同的权限,比如查看、修改某一个文件的权限,一种方法是分别对多个用户进行文件访问授权,如果有 10 个用户的话,就需要授权 10 次,那如果有 100、1000 甚至更多的用户呢?

显然,这种方法不太合理。 最好的方式是建立一个组,让这个组具有查看、修改此文件的权限,然后将所有需要访问此文件的用户放入这个组中。那么,所有用户就具有了和组一样的权限,这就是用户组。

将用户分组是 Linux 系统中对用户进行管理及控制访问权限的一种手段,通过定义用户组,很多程序上简化了对用户的管理工作。

Linux用户和组的关系
用户和用户组的对应关系有以下 4 种:

一对一:一个用户可以存在一个组中,是组中的唯一成员;
一对多:一个用户可以存在多个用户组中,此用户具有这多个组的共同权限
多对一:多个用户可以存在一个组中,这些用户具有和组相同的权限
多对多:多个用户可以存在多个组中,也就是以上 3 种关系的扩展

Linux UID和GID(用户ID和组ID)
登陆 Linux 系统时,虽然输入的是自己的用户名和密码,但其实 Linux 并不认识你的用户名称,它只认识用户名对应的 ID 号(也就是一串数字)。Linux 系统将所有用户的名称与 ID 的对应关系都存储在 /etc/passwd 文件中。

  • /etc/passwd文件:是Linux系统识别用户的重要文件,所有的用户都记录在该文件中。一行表示一个用户的账户信息,有7个段位,依次为用户名、密码、用户标识号UID、用户所属的主要群组标识号GID、用户名全称、用户主目录、用户使用的Shell类型。UID是用户的ID值,在系统中每一位用户的UID值都是唯一的。UID是确认用户权限的标识,用户登录系统所处的角色是通过UID来实现的,而不是用户名。
  • /etc/shadow文件:是/etc/passwd的影子文件,与/etc/passwd是对应互补的,内容包括用户及被加密的密码以及其他/etc/passwd不能包括的信息,比如用户账户的有效期限等。该文件只有root用户可以读取和操作。

用户主组、附加组:一个用户账户可以属于多个组群,挑一个作为用户的主组,即用户登录系统后属于该组

  • /etc/group 注:用户组(group)配置文件;

  • /etc/gshadow 注:用户组(group)的影子文件;

用户功能
root超级用户,UID为0,其权限最高
系统用户虚拟用户、伪用户、假用户,是系统自身拥有的用户,UID为1~999,比如bin、daemon、adm、ftp、mail等,不具有登录Linux系统的能力,但却是系统运行不可缺少的用户。
普通用户UID为1000~60000,可以登录系统,操作自己目录的内容

说白了,用户名并无实际作用,仅是为了方便用户的记忆而已。

要论证 “Linux系统不认识用户名” 也很简单,在网络上下载过 “.tar.gz” 或 “.tar.bz2” 格式的文件,在解压缩之后的文件中,你会发现文件拥有者的属性显示的是一串数字,这很正常,就是因为系统只认识代表你身份的 ID,这串数字就是用户的 ID(UID)号。

Linux 系统中,每个用户的 ID 细分为 2 种,分别是用户 ID(User ID,简称 UID)和组 ID(Group ID,简称 GID),这与文件有拥有者和拥有群组两种属性相对应
读者可能会问,既然 Linux 系统不认识用户名,文件是如何判别它的拥有者名称和群组名称的呢?
每个文件都有自己的拥有者 ID 和群组 ID,当显示文件属性时,系统会根据 /etc/passwd 和 /etc/group 文件中的内容,分别找到 UID 和 GID 对应的用户名和群组名,然后显示出来。

在 /etc/passwd 文件中,利用 UID 可以找到对应的用户名;在 /etc/group 文件中,利用 GID 可以找到对应的群组名。

做个小实验,笔者所用的 Linux 系统中,常用的有两个账户,分别为 root 超级管理员账户和 c.biancheng.net 普通账户,我们先使用 root 账号登陆并 Vim /etc/passwd,在该文件中找到 c.biancheng.net 账户并将其 UID 随意改一个数字,这时当你查看普通账户拥有的文件时,你会发现所有文件的拥有者不再是 c.biancheng.net,而是数字。

具体执行过程如下所示:

#查看系统中是否存在c.biancheng.net这个用户
[root@livecd ~]#grep 'c.biancheng.net' /etc/passwd
c.biancheng.net:x:500:500:c.biancheng.net:/home/centoslive:/bin/bash
[root@livecd ~]#ll -d /home/centoslive
drwx------. 23 c.biancheng.net centoslive 4096 Apr 9 09:37 /home/centoslive
[root@livecd ~]#vim /etc/passwd
#修改c.biancheng.net账户中的UID(第一个 500)为 2000
[root@livecd ~]#ll -d /home/centoslive
drwx------. 23 500 centoslive 4096 Apr 9 09:37 /home/centoslive
#可以看到,之前的 c.biancheng.net 变为了 500,因为修改了UID,导致 500 找不到对应的账号,因此显示数字
#记得最后将其再手动改正过来
[root@livecd ~]#vim /etc.passwd
#修改c.biancheng.net账户中的UID从 2000 改为 500
由于 c.biancheng.net 账户的 UID 已经改为 2000,但其 home 目录却记录的是 500,会导致此用户再次登录时无法进入自己的home目录。

注意,为了说明 ID 和用户名的对应关系,所以才将 /etc/passwd 文件中用户的 UID 做了更改。此操作很可能会导致某些程序无法进行,因此 /etc/passwd 文件不能随意修改。

4.1 用户

4.1.1 实际用户和有效用户

那么这两个用户到底是什么,它们之间有什么区别呢?

实际用户ID(实际组ID):标识当前用户(所属组)是谁,当用户登陆时取自口令文件。即标识我是谁。也就是登录用户的uid和gid。比如我的Linux以king用户登录,在Linux运行的所有的命令的实际用户ID都是king的uid,实际用户组ID都是king的gid(可以用id命令查看)
有效用户ID(有效组ID):用来决定我们(当前进程)对资源的访问权限或者对文件的访问权(即实际该进程是以那个用户运行的)
一般情况下,有效用户ID等于实际用户ID,有效用户组ID等于实际用户组ID。当设置-用户-ID(SUID)位设置,则有效用户ID等于文件的所有者的uid,而不是实际用户ID;同样,如果设置了设置-用户组-ID(SGID)位,则有效用户组ID等于文件所有者的gid,而不是实际用户组ID。

4.1.2 添加用户useradd

useradd命令对于系统管理员来说是非常有用的命令。 了解其参数和选项对于日常操作至关重要。 要获得有关useradd命令的快速帮助,请发出以下命令。

$ useradd -h
> **user 参数 用户名**
> 参数:
> -c comment 指定一段注释性描述
-d 目录 指定用户主目录,如果此目录不存在,则同时使用 -m选项,可以创建主目录。
-g 用户组 指定用户组所属的用户组。
-G 用户组,指定用户所属的附加组。
-s Shell文件 指定用户的登陆Shell。Linux用户使用Shell从命令行界面发出命令。 还有其他命令行界面。 默认和最受欢迎的命令行界面或外壳是bash 。 新创建的用户将使用bash作为默认外壳。 使用-s选项创建用户时,可以更改默认外壳程序。/bin/nologin 无shell选项,不允许使用shell。
-u 用户号,指定用户的用户号,如果同时有-o选项,则可以重复使用其他用户的标识号。
-M 创建没有主目录的新用户
-e YYYY-MM-DD 创建有过期日期的新账户
-f Days 创建有密码过期天数的账号,-1永不过期
-c "***" 为账户添加注释信息
用户名:指定新的账号用户名。 

在添加Linux用户之前,我们将列出现有用户以提供不冲突的用户名。

$ cat /etc/passwd | cut -d : -f 1

我们将使用名称测试创建新用户。 该用户将使用默认的shell和其他相关参数添加到/ etc / passwd文件中。

$ useradd test

在添加了具有帐户过期日期的用户后,我们可以使用如下的chage命令检查该日期。

chage -l 用户名

4.1.3 修改用户密码passwd


passwd 参数 用户名
参数:
-l 锁定口令,即禁用账号。
-u 口令解锁。
-d 使账号无口令。
-f 强迫用户下次登录时修改口令。

4.1.3.1 利用passwd更改密码

  • root账户修改其他普通账户密码:
  1. 方法一、
passwd 用户
输入两次密码

如果输入密码后提示:Password has been already used. Choose another.则说明设置的密码之前使用过,执行echo “” > /etc/security/opasswd后重试即可

  1. 方法二、
echo "密码"| passwd 用户名 --stdin
示例:
echo "Puluo@123"| passwd myuser --stdin

这个时候需要使用passwd myuser命令来修改密码,如果输入密码后提示:Password has been already used. Choose another.则说明设置的密码之前使用过,执行echo “” > /etc/security/opasswd后重试即可

  • 修改自己的密码
    输入passwd命令后按回车键后输入两次密码即可。

3.1.3.2 利用passwd临时锁定账户

在/etc/shadow文件中属于该用户的行的第二个字段(密码)前面加上就可以了。想恢复该用户,去掉即可。

或者使用如下命令关闭用户账号:

passwd peter –l

重新释放:

passwd peter –u

4.1.4 修改用户信息usermod

usermod 参数 用户名

4.1.5 永久删除用户userdel

 userdel 参数 用户名****
参数:
-f:强制删除用户,即使用户当前已登录;
-r:删除用户的同时,删除与用户相关的所有文件,不适用此参数,用户目录依然存在

4.2 用户组

4.2.1 新增用户组groupadd


groupadd [选项] 用户组
选项:
-g GID 指定新用户组的组标识号(GID)。
-o 一般与-g选项同时使用,表示新用户组的GID可以与系统已有用户组的GID相同

4.2.2 修改用户组


groupmod 参数 用户组
参数:-g GID 为用户组指定新的组标识号。
-o 与-g选项同时使用,用户组的新GID可以与系统已有用户组的GID相同。
-n新用户组 将用户组的名字改为新名字
示例:
groupmod -n new-usergroup usergroup 

4.2.3 用户组密码管理 gpasswd

[root@test ~]# gpasswd -h
Usage: gpasswd [option] GROUPOptions:
-a, --add USER 添加用户至用户组
-d, --delete USER 从用户组删除用户
-h, --help 显示帮助信息
-Q, --root CHROOT_DIR directory to chroot into
-r, --delete-password 删除用户组密码
-R, --restrict 现在成员对组的访问
-M, --members USER,... set the list of members of GROUP
-A, --administrators ADMIN,...
set the list of administrators for GROUP
Except for the -A and -M options, the options cannot be combined
示例:
groupadd newgroup
gpasswd newgroup 为用户组newgroup设置密码:
New Password:  新密码
Re-enter new password:  确认新密码
注意:设置密码要8位以上数字字母下划线密码,且输入过程不显示
gpasswd -r newgroup 删除newgroup 密码

4.3 切换用户su/sudo

4.3.1 su

如果以普通用户user1登陆系统后,要增加一个用户,但是普通有用又没有useradd的权限,那么可以有2个办法:

  1. 先用exit退出系统,然后在以root用户登陆,之后useradd增加用户。

  2. 使用su命令,su就是switch user切换用户。

(1)su命令在不加参数时,默认切换到root用户,只要输入root的密码,就可以切换到root身份,直到使用exit退出。

注意这里虽然切换到root,但实际上并没有自动切换家目录。
(2)su命令加上一个 - 参数,不但可以切换成root,还可以应用root的环境。
可以看到提示符从$变长了#。
(3)su命令还可以加上具体的用户名作为参数。

su 用户名

4.3.2 sudo

用其他用户身份和权限执行命令,而并不是切换用户。
上面的su命令虽然方便,但是需要预先知道切换用户的密码,如果泄漏出去,系统安全会受到严峻的挑战。
语法:用户MySQL要修改用user1的密码:sudo passwd user1 。

原理是:运行命令时,系统检查/etc/sudoers 配置文件,看这个用户是否有执行sudo的权限,如果有权限,系统要求输入用户自己的密码,如果密码输入正确,系统会以root身份运行 passwd xx命令。

/etc/sudoers文件可以用vi修改(不建议),但是考虑到配置文件很重要,linux提供了visudo命令来修改文件,并且在保存时会自动检测语法,防止配置错误导致没办法使用sudo命令。

4.3.3 visudo

visodo 是编辑 /etc/sudoers 的命令;也可以不用这个命令,直接用vi 来编辑 /etc/sudoers

的效果是一样的;

4.3.4 sudoedit

和sudo 功能差不多

4.4 其他有关用户命令

4.4.1 pwcov

同步用户从/etc/passwd 到/etc/shadow

4.4.2 pwck

pwck是校验用户配置文件/etc/passwd 和/etc/shadow 文件内容是否合法或完整;

4.4.3 pwunconv

是pwcov 的立逆向操作,是从/etc/shadow和/etc/passwd 创建/etc/passwd ,然后会删除 /etc/shadow 文件;

4.4.4 finger

查看用户信息工具

4.4.5 id

id 命令可以查询用户的UID、GID 和附加组的信息。命令比较简单,格式如下

[root@localhost ~]# id 用户名

4.4.6 chfn

更改用户信息工具

4.4.7 groups

显示用户所属的用户组

4.4.8 grpck

4.4.9 grpconv

通过/etc/group和/etc/gshadow 的文件内容来同步或创建/etc/gshadow ,如果/etc/gshadow不存在则创建;

4.4.10 grpunconv

通过/etc/group和/etc/gshadow 文件内容来同步或创建/etc/group ,然后删除gshadow文件;

与本文相关的文章

发布评论

评论列表 (0)

  1. 暂无评论