操作linux上用户
# Linux 用户和用户组管理
Linux 是一个多用户操作系统,用户和用户组的管理是确保系统安全和高效的重要组成部分。本文将介绍 Linux 的用户、用户组、创建用户、用户权限,以及相关命令和参数的详细说明。
# 1. 用户
在 Linux 中,用户是指可以登录系统并执行命令的个体。每个用户都有一个唯一的用户名和用户 ID(UID)。
# 常用命令
查看当前用户:
whoami
1查看所有用户:
cat /etc/passwd
1
# 2. 用户组
用户组是在 Linux 中将多个用户组织在一起的方式,目的是简化权限管理。每个用户可以属于一个或多个用户组。
# 常用命令
查看当前用户所在的组:
groups username
1查看所有组:
cat /etc/group
1
# 3. 创建用户
可以使用 useradd
命令来创建新用户,通常需要超级用户(root)权限。
# 创建用户的基本命令
sudo useradd -m username
-m
选项会创建用户的主目录。
# 设置用户密码
创建用户后,需要为用户设置密码:
sudo passwd username
# 4. 添加 root 用户
在某些情况下,您可能需要创建具有 root 权限的新用户。可以通过以下步骤实现:
# 创建用户并添加至 sudo
组
创建用户(例如
newadmin
)并设置密码:sudo useradd -m newadmin sudo passwd newadmin
1
2将用户添加到
sudo
组,以赋予其管理权限:sudo usermod -aG sudo newadmin
1
现在,newadmin
用户可以通过 sudo
命令执行需要 root 权限的操作。
# 5. 修改用户
使用 usermod
命令可以修改现有用户的属性,例如更改用户组或用户信息。
# 示例命令
将用户添加到新组:
sudo usermod -aG groupname username
1更改用户的主组:
sudo usermod -g newgroup username #移除root组 sudo gpasswd -d newadmin root
1
2
3
4
5
# 6. 删除用户
要删除用户,可以使用 userdel
命令。
# 删除用户的基本命令
sudo userdel username
- 使用
-r
选项可以同时删除用户的主目录和邮件池。
sudo userdel -r username
# 7. 用户权限
在 Linux 中,权限管理是确保系统安全的重要部分。每个文件和目录都有相关的用户和组权限。
# 权限类型
- 读(r): 允许读取文件或目录。
- 写(w): 允许修改文件或创建/删除目录中的文件。
- 执行(x): 允许执行文件或访问目录。
# 查看文件权限
使用 ls -l
命令查看文件的权限和所有者。
ls -l filename
# 修改文件权限
使用 chmod
命令修改文件或目录的权限。
chmod u+x filename # 给文件所有者添加执行权限
chmod g-w filename # 移除文件所属组的写权限
2
# 修改文件所有者
使用 chown
命令更改文件或目录的所有者。
sudo chown newowner filename
# 8. 相关命令及其参数详细说明
# 8.1 useradd
用于创建新用户。
参数 | 全名 | 说明 |
---|---|---|
-m | create home directory | 创建用户的主目录(默认在 /home/username )。 |
-d | home directory | 指定用户的主目录,默认情况下为 /home/username 。 |
-s | shell | 指定用户的登录 shell(例如 /bin/bash )。 |
-G | groups | 指定用户所属的附加组,可以同时指定多个组,用逗号分隔。 |
-p | password | 指定用户的加密密码。如果不使用,该用户将没有密码。 |
-u | user ID | 指定用户的 UID,默认情况下自动分配。 |
# 8.2 usermod
用于修改现有用户的属性。
参数 | 全名 | 说明 |
---|---|---|
-a | append | 将用户添加到附加组而不移除其原有组。 |
-G | groups | 指定用户所属的新附加组,可以同时指定多个组。 |
-g | primary group | 指定用户的新主组。 |
-s | shell | 更改用户的登录 shell。 |
-u | user ID | 更改用户的 UID。 |
-l | login name | 更改用户的用户名。 |
# 8.3 userdel
用于删除用户。
参数 | 全名 | 说明 |
---|---|---|
-r | remove | 删除用户的主目录及其邮件池。 |
# 8.4 passwd
用于更改用户密码。
参数 | 全名 | 说明 |
---|---|---|
-e | expire | 强制用户在下次登录时更改密码。 |
-l | lock | 锁定用户账户,禁止其登录。 |
-u | unlock | 解锁用户账户,允许其登录。 |
# 8.5 groups
用于显示用户所属的组。
参数 | 全名 | 说明 |
---|---|---|
username | target user | 指定要查看的用户,默认查看当前用户。 |
# 示例
查看指定用户的组:
groups newuser
# 用户权限在 Linux 系统中的管理至关重要,因为它们直接关系到系统的安全性和用户的操作能力。
# 1. 权限类型
在 Linux 中,文件和目录权限主要包括三种类型:
# 1.1 读(r)
- 文件: 允许用户查看文件内容。
- 目录: 允许用户列出目录中的文件和子目录。
# 1.2 写(w)
- 文件: 允许用户修改文件内容。
- 目录: 允许用户在目录中创建、删除或重命名文件和子目录。
# 1.3 执行(x)
- 文件: 允许用户执行该文件(如果是可执行文件,如脚本或程序)。
- 目录: 允许用户进入该目录(即使用
cd
命令)。
# 2. 权限的表示方法
在 Linux 中,文件和目录权限通常使用以下方式表示:
-rwxr-xr--
每一位的含义如下:
- 第一个字符表示文件类型(
-
表示文件,d
表示目录)。 - 接下来的三个字符表示文件所有者的权限(如
rwx
表示读、写和执行权限)。 - 接下来的三个字符表示用户组的权限(如
r-x
表示读和执行权限)。 - 最后三个字符表示其他用户的权限(如
r--
表示只有读权限)。
# 示例
-rwxr-xr--
:- 文件类型: 普通文件
- 所有者权限: 读、写、执行
- 用户组权限: 读、执行
- 其他用户权限: 仅读
# 3. 权限管理命令
# 3.1 查看权限
使用 ls -l
命令查看文件或目录的权限。
ls -l filename
# 3.2 修改权限
使用 chmod
命令更改文件或目录权限。
# 3.2.1 使用符号方式
chmod u+x filename # 为文件所有者添加执行权限
chmod g-w filename # 移除文件所属组的写权限
chmod o+r filename # 为其他用户添加读权限
2
3
# 3.2.2 使用八进制方式
权限也可以使用数字的方式表示:
- 读(r)= 4
- 写(w)= 2
- 执行(x)= 1
例如,设置文件权限为所有者可读写,用户组可读,其他人无权限:
chmod 640 filename # 设置为 rw-r----- (即 6 4 0)
# 3.3 修改所有者和用户组
使用 chown
命令更改文件或目录的所有者及用户组。
sudo chown newowner:newgroup filename
# 3.4 管理用户组
使用 groupadd
、groupdel
和 gpasswd
命令管理用户组。
创建新组:
sudo groupadd groupname
1删除组:
sudo groupdel groupname
1将用户添加到组:
sudo gpasswd -a username groupname
1
# 4. 特殊权限
除了基本的读、写和执行权限外,Linux 还有一些特殊的权限设置:
# 4.1 SUID(Set User ID)
- 当可执行文件设置了 SUID 位时,运行该文件的用户将临时获得文件所有者的权限。
- 使用方式:在权限中设置 SUID 位,通常通过将权限的第一个数字设置为
4
。
示例:
chmod 4755 filename # 设置 SUID 位
# 4.2 SGID(Set Group ID)
- 当目录设置 SGID 位时,所有在该目录中创建的文件将继承该目录的组,运行该文件的用户将临时获得文件所属组的权限。
- 使用方式:在权限中设置 SGID 位,通常通过将权限的第二个数字设置为
2
。
示例:
chmod 2755 directoryname # 设置 SGID 位
# 4.3 Sticky Bit
- 当目录设置 Sticky Bit 时,只有文件的所有者和根用户可以删除或重命名该目录中的文件。
- 使用方式:在权限中设置 Sticky Bit,通常通过将权限的第三个数字设置为
1
。
示例:
chmod 1777 directoryname # 设置 Sticky Bit
# 5. 示例
# 设置文件权限
假设您有一个名为 script.sh
的脚本文件,您希望设置如下权限:
- 所有者:读、写、执行
- 用户组:读、执行
- 其他用户:无权限
可以使用以下命令:
chmod 750 script.sh
# 更改所有者和用户组
将文件 script.sh
的所有者更改为 user1
,用户组更改为 group1
:
sudo chown user1:group1 script.sh
# 总结
用户权限管理是 Linux 系统安全的重要组成部分。通过使用合适的权限设置,可以有效地保护系统文件和用户数据,确保用户在进行操作时仅能访问其所需的资源。理解并善用权限管理命令及特殊权限功能能帮助用户和管理员更好地维护系统安全。如需更多信息或有其他问题,请告诉我!