linux系统,ssh远程登入怎么设置禁止root用户访问特定文件夹

首页 2024-12-18 17:45:35



在配置SSH远程登录时,禁止root用户访问特定文件夹的内容,是一个涉及权限管理和安全性的重要任务。以下是实现这一目标的步骤:
 
1.设置非root用户
 
首先,为了增强安全性,建议创建一个非root用户来进行日常操作。这样可以减少直接使用root账户的风险。
 
 
sudo adduser newuser  替换newuser为实际用户名
sudo passwd newuser 为新用户设置密码
 
 
2.配置SSH以禁止root登录
 
编辑SSH配置文件`/etc/ssh/sshd_config`,禁用root用户的SSH登录。
 
 
sudo nano /etc/ssh/sshd_config
 
 
找到并修改以下行(如果未找到,可以手动添加):
 
 
PermitRootLogin no
 
 
保存并退出编辑器,然后重启SSH服务以应用更改。
 
 
sudo systemctl restart sshd
 
 
3.设置文件夹权限
 
假设有一个文件夹`/path/to/protected_folder`,需要禁止root用户访问其内容。首先,确保该文件夹的所有者和权限设置得当。
 
更改文件夹所有者(如果需要)
 
 
sudo chown newuser:newuser /path/to/protected_folder
 
 
设置文件夹权限
 
为了确保非拥有者(包括root)无法访问文件夹内容,可以设置适当的权限。例如,只允许所有者读取、写入和执行(rwx)权限:
 
 
sudo chmod 700 /path/to/protected_folder
 
 
4.使用ACL(访问控制列表)进一步细化权限
 
如果需要更细粒度的权限控制,可以使用ACL。例如,可以明确拒绝root用户的访问权限。
 
 
setfacl m u:root:0 /path/to/protected_folder
 
 
此命令将root用户的访问权限设置为0(无权限)。
 
5.验证配置
 
通过非root用户(如`newuser`)登录SSH,并尝试访问受保护的文件夹以验证配置是否正确。
 
 
ssh newuser@your_server_ip
cd /path/to/protected_folder  应该能够成功访问
sudo ls /path/to/protected_folder 使用sudo(切换到root)尝试访问,应该被拒绝
 
 
6.日志和监控
 
为了持续监控和记录对受保护文件夹的访问尝试,可以配置系统的日志记录机制,如使用`auditd`等工具。
 
 
sudo aptget install auditd  在Debian/Ubuntu系统上安装auditd
sudo auditctl w /path/to/protected_folder p rwxa kprotected_folder_access
 
 
这将记录对`/path/to/protected_folder`的所有读写执行和属性更改尝试,并标记为`protected_folder_access`。
 
 
通过上述步骤,您可以有效地禁止root用户通过SSH远程登录,并限制其对特定文件夹内容的访问。这些措施将显著提高系统的安全性,减少潜在的安全风险。