目录
一、账号管理
账号管理涉及到对用户的创建、删除、修改、权限分配等操作。每个 Linux 用户都与系统资源(如文件、进程等)相关联,管理员通过有效管理用户账号来确保系统安全和资源的有效利用。
1、用户账号类型
- 用户(User):在 Linux 系统中,每个登录的个体(无论是管理员还是普通用户)都需要一个唯一的标识符(用户名和用户ID,UID)。系统会根据这些标识符来区分不同用户。
- UID(User ID):用户的唯一标识符。UID为0是超级用户(root),UID 1~999是程序用户,UID 1000~60000是普通用户。
- GID(Group ID):用户所属的组的GID。每个用户至少属于一个用户组。
2、组账号
用户组不仅方便权限管理,还能为多个用户提供一致的访问控制。通过将用户组织到组中,系统管理员可以方便地管理用户对资源的访问权限。
每个组都有以下基本信息,这些信息通常存储在/etc/group
文件中:
组名:组的名称,用于标识一组用户。
GID:组用户的唯一标识符。用户通常属于一个或多个用户组,组内的用户可以共享一些权限。
3、用户文件
用户文件管理每个用户的设置、权限、文件存储位置等。
- /etc/passwd:存储系统所有用户的基本信息,包括用户名、UID、GID、用户主目录和默认shell等。
- /etc/shadow:存储用户加密密码、密码的其他信息和账户过期等信息。只有root用户可以访问。
- /etc/group:存储系统所有用户组信息。
- /etc/gshadow:存储用户组的加密信息
- /etc/skel:存储新创建用户的默认配置文件和模板文件。创建新用户时,系统自动复制文件到新用户的家目录。
4、账号管理命令
4.1、useradd
useradd功能是创建并设置用户信息
语法格式:useradd 参数 用户名
-u | 设置用户UID号 | -G | 设置用户的附加用户组 |
-d | 设置新用户登录使用的家目录 | -M | 不建立用户家目录 |
-e | 设置用户的失效时间 | -s | 设置用户的默认shell |
-g | 设置用户的基本用户组 | -m | 创建用户目录 |
参考示例:
[root@localhost ~]# useradd -m -s /bin/bash -G wheel zzz
[root@localhost ~]# id zzz
uid=1001(zzz) gid=1001(zzz) 组=1001(zzz),10(wheel)
4.2、passwd
password缩写,功能是修改用户的密码值;同时也可以对用户进行锁定等操作,但需要管理员身份才可以执行。
常用格式:passwd 参数 用户名
-d | 清除已有密码 | -S | 显示当前密码状态 |
-l | 锁定用户密码 | -u | 解锁用户密码 |
-f | 强制执行操作 |
参考示例:
[root@localhost ~]# passwd zzz
更改用户 zzz 的密码 。
新的 密码:
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
[root@localhost ~]# passwd -l zzz
锁定用户 zzz 的密码 。
passwd: 操作成功
[root@localhost ~]# tail -1 /etc/shadow
zzz:!!:20114:0:99999:7:::
[root@localhost ~]# passwd -d zzz
清除用户的密码 zzz。
passwd: 操作成功
[root@localhost ~]# passwd -fu zzz
解锁用户 zzz 的密码。
passwd: 操作成功
4.3、usermod
user modify的缩写,功能是修改用户信息中的各项参数。
语法格式:usermod 参数 用户名
-l | 修改用户名称 | -e | 修改用户的有效期限 |
-L | 锁定用户密码 | -g | 修改用户所属组 |
-u | 修改用户UID号 | -G | 修改用户附加组 |
-U | 解锁密码锁定 | -s | 修改用户登陆后使用的shell |
-d | 修改用户登录时的家目录 |
参考示例:
[root@localhost zzz]# usermod -L zzz //锁定密码
[root@localhost zzz]# passwd -S zzz
zzz LK 2025-01-26 0 99999 7 -1 (密码已被锁定。)
[root@localhost zzz]# passwd -U zzz //解锁密码
[root@localhost zzz]# passwd -S zzz
zzz PS 2025-01-26 0 99999 7 -1 (密码已设置,使用 SHA512 算法。)
[root@localhost ~]# usermod -l xqc zzz //修改用户名
[root@localhost ~]# id zzz
id: zzz: no such user
[root@localhost ~]# id xqc
uid=1001(xqc) gid=1001(zzz) 组=1001(zzz),10(wheel)
4.4、userdel
user delete的缩写,功能是删除用户信息。
语法格式:userdel 参数 用户名
-f | 强制删除用户 |
-r | 删除用户的家目录及其内全部子文件 |
参考示例:
[root@localhost ~]# userdel -r xqc
[root@localhost ~]# id xqc
id: xqc: no such user
[root@localhost ~]# cd /home
[root@localhost home]# ls
123123
5、组管理命令
5.1、groupadd
功能是创建新的用户组。
语法格式:groupadd 参数 用户组
参考示例:
[root@localhost home]# groupadd xqc
[root@localhost home]# tail -1 /etc/group
xqc:x:1002:
5.2、gpasswd
group passwd的缩写,功能是设置管理用户组。
语法格式:gpasswd 参数 用户组名
-a | 添加用户到指定组 | -d | 从组中删除用户 |
-M | 设置组成员 |
参考示例:
[root@localhost home]# gpasswd -a QAQ xqc
正在将用户“QAQ”加入到“xqc”组中
[root@localhost home]# gpasswd -d QAQ xqc
正在将用户“QAQ”从“xqc”组中删除
5.3、groupdel
delete a group的缩写,功能是删除用户组。
语法格式:groupdel 参数 群组名
参考示例
[root@localhost home]# groupdel xqc
6、查询命令
- w是单词who的缩写,功能是显示已登录用户的信息。
- who功能是显示当前登录用户的信息,包含登陆的用户名、终端、日期时间、进程等信息。
- users功能是显示当前登录系统的所有用户的用户列表。
[root@localhost home]# w
20:45:44 up 34 min, 2 users, load average: 0.00, 0.03, 0.05
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/0 192.168.153.1 20:12 0.00s 0.18s 0.00s w
root pts/1 192.168.153.1 20:44 8.00s 0.13s 0.05s bash
[root@localhost home]# who
root pts/0 2025-01-26 20:12 (192.168.153.1)
root pts/1 2025-01-26 20:44 (192.168.153.1)
[root@localhost home]# users
root root
二、文件和目录权限
1、文件权限
在 Linux 中,通过为用户、用户组和文件设置不同的权限,来控制谁可以访问、修改、执行哪些文件和程序。Linux 使用文件权限和访问控制列表(ACL)来管理文件和目录的访问权限。
每个文件和目录都有三个权限角色:
- 所有者(Owner):文件的创建者或者管理员指定的用户。
- 用户组(Group):文件所属的用户组中的所有用户。
- 其他用户(Others):除了所有者和用户组外的其他所有用户。
每个文件和目录的都有三种基本权限:
- 读取权限(r,4):允许查看文件内容或列出目录内容。
- 写入权限(w,2):允许修改文件内容或在目录中创建、删除文件。
- 执行权限(x,1):允许执行文件或进入目录。
- 如果某个权限不存在,则用 - 表示。
2、chmod
change mode的缩写,功能是改变文件或目录权限的命令。
语法格式:chmod 参数 文件名
-R | 递归处理所有子文件 |
参考示例:
[root@localhost opt]# ll
-rw-r--r--. 1 root root 2341 1月 26 21:06 passwd
[root@localhost opt]# chmod g+w passwd
[root@localhost opt]# ll
-rw-rw-r--. 1 root root 2341 1月 26 21:06 passwd
[root@localhost opt]# chmod o= passwd
[root@localhost opt]# ll
-rw-rw----. 1 root root 2341 1月 26 21:06 passwd
[root@localhost opt]# chmod u=rwx,g=rw,o=r passwd
[root@localhost opt]# ll
-rwxrw-r--. 1 root root 2341 1月 26 21:06 passwd
[root@localhost opt]# chmod 622 passwd
[root@localhost opt]# ll
-rw--w--w-. 1 root root 2341 1月 26 21:06 passwd
3、chown
change owner的缩写,功能是改变文件或目录的用户和用户组信息。
语法格式:chown 参数 所属主:所属组 文件名
-R | 递归处理所有子文件 |
参考示例:
[root@localhost opt]# chown padoru:QAQ passwd
[root@localhost opt]# ll
drwxr-xr-x. 2 root root 106 1月 26 21:18 aa
-rw--w--w-. 1 padoru QAQ 2341 1月 26 21:06 passwd
[root@localhost opt]# chown -R padoru:QAQ aa
[root@localhost opt]# ll /opt/aa
-rw-r--r--. 1 padoru QAQ 0 1月 26 21:18 0a
-rw-r--r--. 1 padoru QAQ 0 1月 26 21:18 1a
-rw-r--r--. 1 padoru QAQ 0 1月 26 21:18 2a
-rw-r--r--. 1 padoru QAQ 0 1月 26 21:18 3a
-rw-r--r--. 1 padoru QAQ 0 1月 26 21:18 4a
4、umask
umask是一个用于设置新创建文件或目录的默认权限的命令或环境变量。umask的作用是控制新文件和目录的权限掩码,即通过指定不应给予的权限,来确定文件或目录的默认权限。
Linux系统中的默认权限通常是:
- 文件:通常是666(rw-rw-rw-),即所有用户都具有读和写权限。
- 目录:通常是777(rwxrwxrwx),即所有用户都具有读、写、执行权限。
计算方式:
如果umask设置没022
- 文件的权限=666-022=644(rw-r--r--)
- 目录的权限=777-022=755(rwxr-xr-x)
语法格式:umask 参数 权限掩码
参考示例:
[root@localhost opt]# umask
0022
[root@localhost opt]# umask 012
[root@localhost opt]# umask
0012