一、Linux 多用户
1. Linux系统可以有多个用户2. 用户管理 二、用户分类
1. 用户类别2. 用户组3. id 命令4. uid、gid 三、用户主目录
1. Linux中,用户主目录(家目录)为:`~`2. 不同用户的主目录相互独立
(1)工作目录(2)用户主目录 参考链接
一、Linux 多用户 1. Linux系统可以有多个用户
Linux系统是一个多用户多任务的分时操作系统。
任何一个要使用系统资源的用户,都必须首先向系统管理员(root)申请一个账号,然后以这个账号的身份进入系统。
每个用户账号都拥有一个唯一的用户名和各自的口令。用户在登录时键入正确的用户名和口令后,就能够进入系统和 自己的主目录 。
用户的账号一方面可以帮助系统管理员对使用系统的用户进行跟踪,并控制他们对系统资源的访问;
另一方面也可以帮助用户组织文件,并为用户提供安全性保护。
linux 是多用户系统,root 用户具有最高权限,只有 root 用户才能创建和删除用户(useradd and userdel),其他用户无此权限。
实现用户账号的管理,要完成的工作主要有如下几个方面:
用户账号的添加、删除与修改。用户口令的管理。用户组的管理。
用户管理的具体操作参考:Linux 用户和用户组管理或Linux用户和用户组管理详解
用户之间可以使用 su 命令进行切换。需要输入想切换到的用户的登陆密码。
二、用户分类 1. 用户类别
Linux系统上的用户分为两类:管理员用户(root)和普通用户。
其中,普通用户又分为两类:系统用户和登录用户。
不同的用户有不同的身份 / 权限:
系统用户:仅运行服务程序。
登录用户:系统资源的正常使用者。
相应地,Linux用户组分两类:管理员组和普通组。
其中,普通组又分为两类:系统组和登录组。
系统会把每个用户组用数字来标识,不同系统上数字标识可能不同。
组ID的范围:
管理员组:0
系统组:1-499、1-999
登录组:1000+
id命令:可以查看当前登录用户所在的用户组。
可以通过执行命令id查看自己的组号:
wsl@xd:~$ id uid=1006(wsl) gid=1006(wsl) groups=1006(wsl)
可以看到,我的uid是1006,gid是1006。
所以我是登陆组,属于登录用户。
查看其他人的id:
id 用户名
首先,系统中都有谁可以通过/home目录查看:
wsl@xd:~$ cd .. //从主目录/home/wsl退到/home wsl@xd:/home$ cd .. //从目录/home退到/ wsl@xd:/$ pwd / wsl@xd:/$ ls bin cdrom etc lib lib64 lost+found mnt proc run snap swapfile tmp var boot dev home lib32 libx32 media opt root sbin srv sys usr wsl@xd:/$ cd home wsl@xd:/home$ ls chy edward hjt jh wqj wsl xd
查看其中一个用户 hjt 的 id :
wsl@xd:~$ id hjt uid=1004(hjt) gid=1004(hjt) groups=1004(hjt),113(ssl-cert)4. uid、gid
登陆 Linux 系统时,你虽然输入的是自己的用户名和密码,但其实 Linux 并不认识你的用户名,它只认识与用户名对应的 ID 号(也就是一串数字)。Linux 系统将所有用户名与 ID 的对应关系都存储在 /etc/passwd 文件中。
一般情况下,当登录Linux操作系统时,会先寻找/etc/passwd是否有输入账号,如果没有,则跳出,如果有,则读取对应的UID与GID,随后进入/etc/shadow核对密码,一切完成后,则进入shell管控。进入Linux系统之后,不认用户名,只认UID与GID。
Linux 系统中,每个用户的 ID 细分为 2 种,分别是用户 ID(User ID,简称UID)和组 ID(Group ID,简称GID),这与 文件 有 拥有者 和 拥有群组 两种属性相对应:
从上图可以看到,文件属性中显示的并不是uid和gid(数字),而是用户名和组名(root)。
在Linux系统中,每个文件都有自己的拥有者 ID 和群组 ID,当用户需要显示文件属性时,Linux系统会根据 /etc/passwd 和 /etc/group 文件中的内容,分别找到 UID 和 GID 所对应的用户名和群组名,然后显示出来。
在 /etc/passwd 文件中,利用 UID 可以找到对应的用户名;在 /etc/group 文件中,利用 GID 可以找到对应的群组名。
由此可见,UID与GID在日常的账户管理中,发挥着非常重要的作用,因为一不小心就可能访问不了自己的文件,所以温馨提示大家,不要随便改动自己的/etc/passwd与/etc/group文件。(使用root账号登录并执行命令vim /etc/passwd是可以更改文件内容的)
这两个文件的内容可以通过 cat 命令查看:(这两个文件对所有用户都是可读的)
cat /etc/passwd cat /etc/group
只查看 /etc/passwd 文件中关于自己的内容:
cat /etc/passwd | grep 你的用户名
例子:
wsl@xd:~$ cat /etc/passwd | grep wsl wsl:x:1006:1006::/home/wsl:/bin/bash
三、用户主目录
实际上,当你登录 linux 系统之后,就位于自己的主目录中。
1. Linux中,用户主目录(家目录)为:~对一般用户,~为/home/用户名
对于root用户,~为/root
如果要查看~的真实面貌(绝对路径),有两种方法:
可以先进入~目录,然后用pwd -P命令查看~的绝对路径:
cd ~ pwd -P
或者,用户的家目录可以在 /etc/passwd 中的第6项找到(每一项之间用:分隔)
wsl@xd:/$ cat /etc/passwd root:x:0:0:root:/root:/bin/bash daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin bin:x:2:2:bin:/bin:/usr/sbin/nologin ... chy:x:1001:1001::/home/chy:/usr/bin/fish edward:x:1002:1002::/home/edward:/usr/bin/fish glances:x:129:136::/var/lib/glances:/usr/sbin/nologin wqj:x:1003:1003::/home/wqj:/bin/sh hjt:x:1004:1004::/home/hjt:/bin/bash xrdp:x:130:137::/run/xrdp:/usr/sbin/nologin jh:x:1005:1005::/home/jh:/bin/bash wsl:x:1006:1006::/home/wsl:/bin/bash
以上面为例, root 的家目录在 /root ,所以当 root 登陆之后,就会立刻跑到 /root 目录里头啦!
我在最后一行,用户wsl,我的家目录是/home/wsl,所以我登陆系统之后,就位于自己的家目录中。
例:
我一进系统,就位于:wsl@xd:~$ ,其中的~说明我位于自己的主目录,可以通过pwd查看自己绝对路径:
wsl@xd:~$ pwd /home/wsl
我的主目录是/home/wsl。
从逻辑上讲,用户在登录到 Linux 系统中之后,每时每刻都处在某个目录之中,此目录被称做工作目录或当前目录(Working Directory)。工作目录是可以随时改变的。
用户初始登录到系统中时,其主目录(Home Directory)就成为其工作目录。
工作目录用“.”表示,其父目录用“..”表示。
(2)用户主目录用户主目录是系统管理员增加用户时创建起来的(以后也可以改变),每个用户都有自己的主目录,不同用户的主目录一般互不相同。
用户刚登录到系统中时,其所在的工作目录便是该用户主目录,通常与用户的登录名相同。
用户可以通过一个~字符来引用自己的主目录。
例如,进入到主目录:
wsl@xd:~$ cd ~ wsl@xd:~$ pwd /home/wsl
参考链接
- Linux系统用户和权限管理Linux 用户和用户组管理Linux UID和GID(用户ID和组ID)linux中用户的主目录~



