Linux学习笔记(二)——Linux用户管理


Linux 是一个可以实现多用户登录的操作系统,他们共享一些主机的资源,但他们也分别有自己的用户空间,用于存放各自的文件。但实际上他们的文件都是放在同一个物理磁盘上的甚至同一个逻辑分区或者目录里,但是由于 Linux 的 用户管理权限机制,不同用户不可以轻易地查看、修改彼此的文件。

查看用户

打开终端,输入命令:

$ who am i

# 或者

$ who mom likes

(关于who mom likes👇)https://unix.stackexchange.com/questions/108145/is-who-mom-likes-a-real-linux-command
在这里插入图片描述
输出的第一列表示打开当前伪终端的用户的用户名(要查看当前登录用户的用户名,去掉空格直接使用 whoami 即可)
第二列的 pts/0pts 表示伪终端,所谓伪是相对于 /dev/tty 设备而言的,上一节讲终端时的那七个使用 Ctrl + Alt + F1~F7 进行切换的 /dev/tty 设备是“真终端”,当你在图形用户界面使用 /dev/tty7 时每打开一个终端就会产生一个伪终端,pts/0 后面那个数字就表示打开的伪终端序号,再打开一个终端,然后在里面输入 who am i,第二列就变成 pts/1
第三列则表示当前伪终端的启动时间。
还有一点需要注意的是,在某些环境中 who am iwho mom likes 命令不会输出任何内容,这是因为当前使用的 SHELL 不是登录时的 SHELL,没有用户与 who 的 stdin 相关联,因此不会输出任何内容。例如在本地的 Ubuntu 系统上输入这个命令就不会有提示。

创建用户

在 Linux 系统里, root 账户拥有整个系统至高无上的权利,比如 新建/添加 用户。root 权限是系统权限的一种,可以与 SYSTEM 权限理解成一个概念,但高于 Administrator 权限,root 是 Linux 和 UNIX 系统中的超级管理员用户帐户,该帐户拥有整个系统至高无上的权力,可以操作所有对象。
大部分 Linux 系统在安装时都会建议用户新建一个用户而不是直接使用 root 用户进行登录,当然也有直接使用 root 登录的例如 Kali(基于 Debian 的 Linux 发行版,集成大量工具软件,主要用于数字取证的操作系统)。
一般我们登录系统时都是以普通账户的身份登录的,要创建用户需要 root 权限,这里就要用到 sudo 这个命令了。使用这个命令有两个大前提:一是要知道当前登录用户的密码二是当前用户必须在 sudo 用户组

su,su- 与 sudo
su <user> 可以切换到用户 user,执行时需要输入目标用户的密码
sudo <cmd> 可以以特权级别运行 cmd 命令,需要当前用户属于 sudo 组,且需要输入当前用户的密码
su - <user> 命令也是切换用户,但是同时用户的环境变量和工作目录也会跟着改变成目标用户所对应的
新建一个叫 lilei 的用户:

$ sudo adduser lilei

在这里插入图片描述
实验楼的环境目前设置为 shiyanlou 用户执行 sudo 不需要输入密码,通常此处需要按照提示输入 shiyanlou 密码(shiyanlou 用户密码可以通过 sudo passwd shiyanlou命令进行设置)。然后是给 lilei 用户设置密码,Linux 下密码输入是不显示任何内容的,后面的选项的一些内容可以选择直接回车使用默认值。
这个命令不但可以添加用户到系统,同时也会默认为新用户在 /home 目录下创建一个工作目录:

$ ls /home

在这里插入图片描述
切换登录用户输入刚刚设置的 lilei 的密码:

$ su -l lilei

在这里插入图片描述
退出当前用户跟退出终端一样,可以使用 exit 命令或者使用快捷键Ctrl + D
在这里插入图片描述

用户组

用户组简单地理解就是一组用户的集合,它们共享一些资源和权限,同时拥有私有资源,就跟家的形式差不多,你的兄弟姐妹(不同的用户)属于同一个家(用户组),你们可以共同拥有这个家(共享资源),爸妈对待你们都一样(共享权限),你偶尔写写日记,其他人未经允许不能查看(私有资源和权限)。当然一个用户是可以属于多个用户组的,正如你既属于家庭,又属于学校或公司。
Linux 里如何知道自己属于哪些用户组呢?
方法一:使用 groups 命令

$ groups shiyanlou

在这里插入图片描述
其中冒号之前表示用户,后面表示该用户所属的用户组。这里可以看到 shiyanlou 用户属于 shiyanlou 用户组。
默认情况下在 sudo 用户组里的可以使用 sudo 命令获得 root 权限。shiyanlou 用户也可以使用 sudo 命令,为什么没有显示 shiyanlou 用户在 sudo 用户组里呢?可以查看下 /etc/sudoers.d/shiyanlou 文件,我们在 /etc/sudoers.d 目录下创建了这个文件,从而给 shiyanlou 用户赋予了 sudo 权限。
在这里插入图片描述
方法二:查看 /etc/group 文件

$ cat /etc/group | sort

这里 cat 命令用于读取指定文件的内容并打印到终端输出。 | sort 表示将读取的文本进行一个字典排序再输出,然后你将看到如下一堆输出,你可以在最下面看到 shiyanlou 的用户组信息:
在这里插入图片描述
/etc/group 文件格式说明
/etc/group 的内容包括用户组(Group)、用户组口令、GID(组 ID) 及该用户组所包含的用户(User),每个用户组一条记录。格式如下:

group_name:password:GID:user_list

password 字段为一个 x,表示密码不可见。需要注意的是,如果用户的 GID 等于用户组的 GID,那么最后一个字段 user_list 就是空的,这里的 GID 是指用户默认所在组的 GID,可以使用 id 命令查看。例如 shiyanlou 用户,在 /etc/group 中的 shiyanlou 用户组后面是不会显示的。lilei 用户,在 /etc/group 中的 lilei 用户组后面是不会显示的。

将其它用户加入 sudo 用户组
默认情况下新创建的用户是不具有 root 权限的,也不在 sudo 用户组,可以让其加入 sudo 用户组从而获取 root 权限:

# 注意 Linux 上输入密码是不会显示的
$ su -l lilei
$ sudo ls

在这里插入图片描述
会提示 lilei 不在 sudoers 文件中,意思就是 lilei 不在 sudo 用户组中。
使用 usermod 命令可以为用户添加用户组,使用该命令必须有 root 权限,你可以直接使用 root 用户为其它用户添加用户组,或者用其它已经在 sudo 用户组的用户使用 sudo 命令获取权限来执行该命令。
这里用 shiyanlou 用户执行 sudo 命令将 lilei 添加到 sudo 用户组,首先我们切换回 shiyanlou 用户:

$ su - shiyanlou

👆此处需要输入 shiyanlou 用户密码

# 使用 usermod 命令为用户添加用户组
$ groups lilei
$ sudo usermod -G sudo lilei
$ groups lilei

在这里插入图片描述
然后切换回 lilei 用户,现在就可以使用 sudo 获取 root 权限了。
在这里插入图片描述

删除用户和用户组

删除用户:

$ sudo deluser lilei --remove-home

在这里插入图片描述
使用 --remove-home 参数在删除用户时候会一并将该用户的工作目录一并删除。如果不使用那么系统会自动在 /home 目录为该用户保留工作目录:
在这里插入图片描述
删除用户组可以使用 groupdel 命令,倘若该群组中仍包括某些用户,则必须先删除这些用户后,才能删除群组。

参考:
https://www.shiyanlou.com/courses/1/learning/?id=3

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值