用户和组

空~2022年10月12日
  • linux
大约 6 分钟

用户和组

用户管理

管理用户

切换管理员身份

su

注销当前用户(需要运行级别)

logout

添加用户

useradd [-d] [指定目录名] 用户名

默认该用户的主目录为 /home/用户名/, 也可以添加参数给用户指定主目录.

-d: directory

创建一个用户 king 并指定主目录为 /home/king

useradd -d /home/king king

设置密码

passwd 用户名

king 设置密码

passwd king

查看当前用户所在的目录

pwd

删除用户

userdel [-r] 用户名

删除用户 king 并保留主目录

userdel king

删除用户和主目录

userdel -r king

查询用户信息

id 用户名

切换用户

su 用户名

高权限切换到低权限不需要密码.

返回原来的用户需要 exit/logout 指令.

查看初始登录用户

whoami | who am i

带空格分隔可显示详细信息.

只会显示第一个登录的用户, 中间通过 su 命令切换不会记录.

用户组

新增组

groupadd 组名

删除组

groupdel 组名

新增用户时放入一个组

useradd -g 用户组 用户名

不指定组的时候默认会创建一个和用户名同名的组, 该组默认只有该用户一人.

[root@Linux home]# id root
uid=0(root) gid=0(root)=0(root)

修改用户组

usermod -g 用户组 用户名

相关文件

用户的配置文件:

/etc/passwd

每一行都对应一个用户

含义:

用户名:口令:用户标识符:组标识符:注释性描述:主目录:登录 Shell

显示 x 为无法查看

登录 Shell: 登录命令经过 sh 解析后的命令(bash(国内), tcsh, csh 等等)

Shell 可以看做是一个命令解释器,为我们提供了交互式的文本控制台界面,我们可以通过终端控制台来输入命令,由 shell 进行解释并最终交给内核执行

root:x:0:0:root:/root:/bin/bash
admin:x:1000:1000:admin:/home/admin:/bin/bash

口令配置文件:

/etc/shadow

含义: 登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志

没有密码显示为 !!

root:$6$xr04p.ELb1j3qIIo$Tw42zWccKfIpWQ7bP/3y8f2a7Cz44tYEM3.HAIMLYqrwfUahAsNRkohiSwyMlF.ocd3KsSSjZGZ4A5NffC4Lo/::0:99999:7:::
king5:!!:19264:0:99999:7:::

组配置文件:

/etc/group

含义: 组名:口令:组标识号:组内用户列表

组内用户可能会被隐藏无法查看

root:x:0:
admin:x:1000:admin

组管理

Linux 中的每个用户都必须属于一个组, 不能独立于组外. 在 Linux 中每个文件都有所有者, 所在组, 其他组的概念.

所有者

查看文件所有者

ls -ahl

image-20221010174556638

修改文件所有者

chown [选项] 用户名 文件名/目录

修改文件所有者和所在组

chown [选项] 用户名:用户组 文件/目录

参数选项

-R 多级目录需要递归

使用 root 创建一个文件 apple.txt, 将所有者修改为 admin

touch apple.txt
chown admin apple.txt

/home/test 目录下的所有文件和目录的所有者都改成 tom

chown -R /home/test

所在组

查看 文件/目录 所在组

cd /home
ls -ahl

image-20221010180032725

创建组

基本语法

groupadd 组名

创建一个组 monster, 创建一个用户 fox, 放入 monster 组中

groupadd monster
useradd -g monster fox

修改文件所在组

chgrp [选项] 组名 文件/目录

参数选项

-R 多级目录需要递归

其他组

除文件所有者和所在组用户外, 系统的其他用户都是文件的其他组.

修改用户所在组

需要 root 权限.

usermod -g 组名 用户名

修改该用户登录的初始目录

usermod -d 目录名 用户名

该用户要拥有进入新目录的权限, 否则失败.

文件权限类

文件属性

Linux 系统是一种典型的多用户系统,不同的用户处于不同的地位,拥有不同的权限。为了保护系统的安全性,Linux 系统对不同的用户访问同一文件(包括目录文件)的权限做了不同的规定。在 Linux 中我们可以使用 ll 或者 ls -l 来显示一个文件的属性以及文件所属的用户和组

从左到右的 10 个字符标识

image-20220517231040047

如果没有权限,就会出现减号 - ,从左至右用 0-9 这些数字来表示.

  • 0 位表示类型

在 Linux 中第一个字符代表这个文件是目录、文件或链接文件

- 代表文件

d 代表目录

c 代表字符设备文件(鼠标, 键盘)

b 代表块设备(硬盘)

l 链接文档 (link file)

  • 第 1-3 位确定属主(该文件的所有者)拥有该文件的权限。User

  • 第 4-6 位确定属组(所有者的同组用户)拥有该文件的权限。Group

  • 第 7-9 位确定其他用户拥有该文件的权限 Other

rwx 作用文件和目录的不同解释

作用到文件:

【r】: 代表可读(read) 可以读取,查看

【w】:代表可写(write) 可以修改,但是不代表可以删除该文件,删除一个文件的前提条件是对该文件所在的目录有写权限,才能删除该文件

【x】:代表可执行(execute) 可以被系统执行

作用到目录:

【r】: 代表可读(read) 可以读取,ls 查看目录内容

【w】:代表可写(write) 可以修改,目录内创建+删除+重命名目录

【x】:代表可执行(execute) 可以进入该目录

文件基本属性介绍

image-20220517232953855

(1)如果查看到是文件:链接数指的是硬链接个数。

(2)如果查看的是文件夹:链接数指的是子文件夹个数。

chmod 改变权限

image-20220517233623454

权限可以用数字表示为: r=4, w=2, x=1

rwx = 4 + 2 + 1

示例

# 增加执行权限
chmod +x nginx.conf

# chmod [u|g|o|a] +-= {rwx} 文件或目录
chmod u+x nginx.conf
chmod u-x nginx.conf
chmod u=x nginx.conf
chmod a+x nginx.conf
chmod a=rwx nginx.conf

# r=4 w=2 x=1
# 直接用数字修改权限
chmod 777 nginx.conf

# 修改整个文件夹的所有者,所属组,其他用户都具有可读可写可执行权限
chmod -R 777 nginx.conf