手把手,从0搭建一台深度学习的机器【四】用户权限配置

上一篇:手把手,从0搭建一台深度学习的机器【三】实现内网穿透 - 掘金 (juejin.cn)

目前机器上需要3个用户帐号,分別供3个人使用。其中一个用户需要拥有管理员权限,另外两人无管理员权限。同时对于挂载在/media/data分区,所有人都拥有进行读写执行(rwx)权限。同时, 为保证用户数据安全,每个用户之间不能互相访问家目录。

4.1 用户配置

这里我们假设拥有管理员权限的用户为A,另外两个普通用户为B、C。为方便管理,我们3个用户都放置在stdents用户组中。注意,以下操作均是使用root用户。

  1. 新建用户组
bash 复制代码
groupadd -r students
  1. 增加用户
bash 复制代码
useradd -g students -md /media/jixie1/A -c "用户A,拥有管理员权限" -s /bin/bash A
useradd -g students -md /media/jixie1/B -c "用户B" -s /bin/bash B
useradd -g students -md /media/jixie1/C -c "用户C" -s /bin/bash C
  1. 为用户设置登录密码
css 复制代码
echo "xxxx" | passwd --stdin A
echo "xxxx" | passwd --stdin B
echo "xxxx" | passwd --stdin C
或
sudo su root 
使用root账号通过命令"sudo passwd 用户名" 更新对应用户的密码 

该方式不用重复输入密码,比较方便。但是会将记录保存在history中,因此,在操作完成后记得清空history。

  1. 为用户A增加管理员权限
bash 复制代码
vim /etc/sudoers
# 在文件末尾添加如下内容
A ALL=(ALL:ALL) ALL
# 保存并退出文件
  1. 设置各个用户家目录权限,其它用户不可以访问
bash 复制代码
chmod 700  -R A
chmod 700  -R B 
chmod 700 -R  /media/jixie1/C

4.2 共享空间Data盘配置

配置data盘,保证所有人都具有读写执行权限,参数-R为递归执行,既包含设置子文件的权限。

bash 复制代码
chmod -R 770 /media/data
# s权限是保证新添加的文件/目录也会拥有相同权限
chmod +s /media/data

4.3 关闭密码登录

首先,我们在个人笔记本上生成3个不同的密钥和公钥,用于稍后的分发密钥并指定其文件的存放位置和文件名。

bash 复制代码
ssh-keygen -t rsa -C "user A" -f ~/.ssh/A/A_id_rsa
ssh-keygen -t rsa -C "user B" -f ~/.ssh/B/B_id_rsa
ssh-keygen -t rsa -C "user C" -f ~/.ssh/C/C_id_rsa

在我的个人笔记本上含有多个密钥,因此需要创建ssh的配置文件来管理这些密钥。通过vim ~/.ssh/config创建配置文件,格式如下:

javascript 复制代码
Host 远程主机别名
	HostName 远程主机的域名或ip
	Port 远程主机的端口号(可选,默认22)
	User 登录的用户名(若没有指定,则默认使用当前执行用户的用户名)
    PreferredAuthentications publickey 验证方式
    IdentityFile ~/.ssh/A/A_id_rsa  密钥存放位置

如下是我config中的配置,可做参考:

config 复制代码
# 实验室server05 A
Host aServer05
        HostName 123.123.123.123
        Port 10005
        User A
        PreferredAuthentications publickey
        IdentityFile ~/.ssh/A/A_id_rsa

# 实验室server05 B
Host bServer05
        HostName 123.123.123.123
        Port 10005
        User B
        PreferredAuthentications publickey
        IdentityFile ~/.ssh/B/B_id_rsa

# 实验室server05 c
Host cServer05
        HostName 123.123.123
        Port 10005
        User C
        PreferredAuthentications publickey
        IdentityFile ~/.ssh/C/C_id_rsa

# github
Host github.com
        HostName github.com
        User git
        PreferredAuthentications publickey
        IdentityFile ~/.ssh/github/github_id_rsa

分别登录对应用户,并将公钥 写入到对应用户家目录下的authorized_keys文件中。

复制代码
.ssh
└── authorized_keys

设置该文件的权限为仅拥有者具有读写执行权限。

bash 复制代码
chmod 700 .ssh
chmod 600 authorized_keys

由于服务器暴露在公网上,使用密码登录有大概率被暴力破解,因此为保证安全性,作者将服务器禁止了密码登录和root用户登录。该部分的配置文件是在/etc/ssh/sshd_config,我们首先通过vim打开配置文件:

bash 复制代码
#禁止使用密码验证登录
PasswordAuthentication no    
ChallengeResponseAuthentication no 
# 启RSA验证
RSAAuthentication yes  
#是否使用公钥验证
PubkeyAuthentication yes   
#公钥的保存位置
AuthorizedKeysFile .ssh/authorized_keys
# 禁止root用户登录
PermitRootLogin no

配置完文件后,保存并退出,重启ssh服务

bash 复制代码
sudo service sshd restart

ok,该部分完成,可自行进行测试。

下一篇:手把手,从0搭建一台深度学习的机器【五】搭建Anaconda环境 - 掘金 (juejin.cn)

相关推荐
ai小鬼头5 小时前
Ollama+OpenWeb最新版0.42+0.3.35一键安装教程,轻松搞定AI模型部署
后端·架构·github
萧曵 丶6 小时前
Rust 所有权系统:深入浅出指南
开发语言·后端·rust
老任与码6 小时前
Spring AI Alibaba(1)——基本使用
java·人工智能·后端·springaialibaba
华子w9089258596 小时前
基于 SpringBoot+VueJS 的农产品研究报告管理系统设计与实现
vue.js·spring boot·后端
星辰离彬7 小时前
Java 与 MySQL 性能优化:Java应用中MySQL慢SQL诊断与优化实战
java·后端·sql·mysql·性能优化
GetcharZp8 小时前
彻底告别数据焦虑!这款开源神器 RustDesk,让你自建一个比向日葵、ToDesk 更安全的远程桌面
后端·rust
jack_yin9 小时前
Telegram DeepSeek Bot 管理平台 发布啦!
后端
小码编匠9 小时前
C# 上位机开发怎么学?给自动化工程师的建议
后端·c#·.net
库森学长9 小时前
面试官:发生OOM后,JVM还能运行吗?
jvm·后端·面试
转转技术团队9 小时前
二奢仓店的静默打印代理实现
java·后端