手把手,从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)

相关推荐
IguoChan39 分钟前
D2L(1) — 线性回归
后端
8***293140 分钟前
Go基础之环境搭建
开发语言·后端·golang
梅花1441 分钟前
基于Django房屋租赁系统
后端·python·django·bootstrap·django项目·django网站
提笔了无痕42 分钟前
go web开发表单知识及表单处理详解
前端·后端·golang·web
qq_12498707531 小时前
基于SpringBoot技术的企业请假审批管理系统的设计与实现(源码+论文+部署+安装)
java·spring boot·后端·信息可视化·毕业设计
小哀21 小时前
🌸 入职写了一个月全栈next.js 感想
前端·后端·ai编程
ziwu1 小时前
【民族服饰识别系统】Python+TensorFlow+Vue3+Django+人工智能+深度学习+卷积网络+resnet50算法
人工智能·后端·图像识别
程序员Easy哥1 小时前
ID生成器第一讲:原理和常见几种生成器
后端
q***73551 小时前
SpringBoot中使用TraceId进行日志追踪
spring boot·后端·状态模式
Penge6661 小时前
Elasticsearch 跳表(Skip List):有序结果合并的 “性能电梯”
后端