Linux 创建用户
Linux 创建用户
在 CentOS 系统中创建一个用户来管理 Web 服务器是一个常见的安全实践。以下是创建和管理 Web 服务器用户的步骤:
1. 创建新用户
sudo useradd webadmin
这个命令创建一个名为 webadmin
的新用户。在 Linux 系统中,每个用户都有一个唯一的用户名,这里我们选择了 webadmin
作为管理 Web 服务器的用户名。
2. 设置密码
sudo passwd webadmin
这个命令为新创建的用户 webadmin
设置密码。出于安全考虑,系统不会显示密码输入,但你需要确保输入一个强密码。
3. 配置 SSH 访问(如果需要)
如果需要通过 SSH 远程管理服务器,需要确保 SSH 配置允许新用户登录。
编辑 SSH 配置文件:
sudo vi /etc/ssh/sshd_config
这个命令打开 SSH 的配置文件,允许你修改 SSH 的设置。
设置 SSH 配置:
PermitRootLogin no AllowUsers webadmin
这些行分别禁止了 root 用户通过 SSH 登录(增强安全性),并允许
webadmin
用户通过 SSH 登录。重启 SSH 服务:
sudo systemctl restart sshd
这个命令重启 SSH 服务,使配置更改生效。
4. 安装 Web 服务器
安装 Apache 或 Nginx 作为 Web 服务器。
安装 Apache:
sudo yum install httpd
这个命令安装 Apache HTTP 服务器。
安装 Nginx:
sudo yum install nginx
这个命令安装 Nginx Web 服务器。
5. 配置 Web 服务器
配置 Web 服务器以使用新用户运行。
对于 Apache:
sudo vi /etc/httpd/conf/httpd.conf
这个命令编辑 Apache 的主配置文件,以便设置运行 Apache 的用户和组。
对于 Nginx:
sudo vi /etc/nginx/nginx.conf
这个命令编辑 Nginx 的主配置文件,设置运行 Nginx 的用户。
6. 设置文件权限
sudo chown -R webadmin:webadmin /var/www/html
sudo chmod -R 755 /var/www/html
这些命令更改 Web 服务器的根目录 /var/www/html
的所有权,使其归属于 webadmin
用户和组,并设置适当的权限。755
权限意味着目录对所有用户可读可执行,但只有所有者可以写入。
7. 授予 sudo 权限(如果需要)
如果需要让新用户执行管理任务,可以授予 sudo 权限。
编辑 sudoers 文件:
sudo visudo
这个命令以安全的方式编辑 sudoers 文件,该文件控制了哪些用户可以执行哪些 sudo 命令。
添加 sudo 权限:
webadmin ALL=(ALL) NOPASSWD: /path/to/command
这行配置允许
webadmin
用户无需密码即可执行指定的命令。
8. 重启 Web 服务器
应用配置更改并重启 Web 服务器。
重启 Apache:
sudo systemctl restart httpd
这个命令重启 Apache 服务。
重启 Nginx:
sudo systemctl restart nginx
这个命令重启 Nginx 服务。
9. 监控和维护
最后,监控 Web 服务器的性能和安全性,并定期进行维护,以确保系统的稳定性和安全性。
通过这些步骤,你创建了一个具有适当权限的新用户来管理 Web 服务器,同时增强了系统的安全性。
10.权限区别
新用户 webadmin
与 root 用户在权限上的主要区别在于它们对系统资源的访问级别和执行系统命令的能力。以下是具体的不同点:
系统访问权限:
- root 用户:拥有最高权限,可以访问系统上的所有文件和目录,执行任何命令,包括系统级别的配置和更改。
- webadmin 用户:作为一个普通用户,其访问权限受到限制,不能直接访问或修改系统级别的配置文件,也不能执行需要 root 权限的命令。
sudo 权限:
- root 用户:不需要使用 sudo 来执行命令,因为 root 本身就有执行任何命令的权限。
- webadmin 用户:除非在
/etc/sudoers
文件中明确配置,否则不能使用 sudo 来执行需要更高权限的命令。即使配置了 sudo 权限,通常也会限制只能执行特定的命令。
文件和目录所有权:
- root 用户:可以更改任何文件和目录的所有者和权限。
- webadmin 用户:只能更改其拥有或有权限更改的文件和目录的权限。
服务管理:
- root 用户:可以启动、停止、重启系统服务,如 Web 服务器。
- webadmin 用户:除非有明确的 sudo 权限,否则不能直接管理服务。但是,可以通过执行具有 sudo 权限的命令来间接管理服务。
系统配置文件:
- root 用户:可以编辑几乎所有的系统配置文件,如
/etc/
下的文件。 - webadmin 用户:通常只能编辑与其相关的配置文件,例如 Web 服务器为其分配的工作目录中的配置文件。
- root 用户:可以编辑几乎所有的系统配置文件,如
SSH 访问:
- root 用户:通常被禁止通过 SSH 直接登录以增强安全性。
- webadmin 用户:根据 SSH 配置文件
/etc/ssh/sshd_config
中的设置,可能被允许通过 SSH 登录。
系统监控和维护:
- root 用户:可以执行系统级别的监控和维护任务,如查看所有系统日志、管理系统服务等。
- webadmin 用户:通常只能监控和维护与其职责相关的部分,如 Web 服务器的状态和日志。
文件系统访问:
- root 用户:可以访问挂载的文件系统上的任何文件。
- webadmin 用户:通常只能访问其有权访问的文件系统部分。
通过以上命令创建的 webadmin
用户是为了管理 Web 服务器而设计的,因此其权限将主要局限于 Web 服务器的管理和维护,而不是整个系统的管理。这是为了遵循最小权限原则,即只授予用户完成其工作所必需的最小权限,从而增强系统的安全性。
11.适用场景
创建用户进行管理通常基于以下几个具体场景:
- 多用户环境: 在多用户工作环境中,不同的用户需要访问不同的系统资源。创建特定的用户账户可以确保每个用户只能访问其被授权的资源。
- 职责分离: 为了实现职责分离的原则,不同的管理任务可以分配给不同的用户。例如,Web 服务器的管理可以交给一个用户,而数据库的管理可以交给另一个用户。
- 安全性: 创建具有有限权限的用户可以增强系统的安全性。如果一个用户账户被攻击,攻击者只能访问该用户有限的权限,而不是整个系统的控制权。
- 审计和合规性: 在需要审计用户活动或符合特定合规要求的环境中,为不同的任务创建不同的用户账户可以更容易地跟踪和记录谁执行了什么操作。
- 服务运行: 运行特定的系统服务(如 Web 服务器、邮件服务器等)时,通常会创建一个具有较少权限的用户来运行这些服务,以减少潜在的安全风险。
- 开发和测试: 在软件开发和测试过程中,创建特定的用户账户可以模拟不同用户的行为和权限,帮助开发团队确保应用程序的安全性和功能性。
- 用户个性化: 用户可能希望根据自己的喜好和需求定制工作环境。为每个用户创建独立的账户可以保存个性化设置和工作环境。
- 资源配额管理: 在共享主机或云服务环境中,创建用户可以帮助管理系统资源的使用,如磁盘空间、内存和处理器时间等。
- 团队协作: 在团队项目中,创建用户可以帮助管理对项目文件和资源的访问,确保团队成员可以协作但又不会相互干扰。
- 系统维护: 系统管理员可能需要创建用户账户来进行日常的系统维护和管理工作,如监控系统性能、更新软件包等。
- 客户服务: 为客户提供访问其托管服务的用户账户,可以让他们管理自己的网站或应用程序,同时确保他们不能访问其他客户的服务。
在所有这些场景中,创建用户进行管理有助于提高效率、增强安全性、满足合规要求,并提供更好的用户体验。