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

相关推荐
一 乐1 小时前
婚纱摄影网站|基于ssm + vue婚纱摄影网站系统(源码+数据库+文档)
前端·javascript·数据库·vue.js·spring boot·后端
码事漫谈2 小时前
Protocol Buffers 编码原理深度解析
后端
码事漫谈2 小时前
gRPC源码剖析:高性能RPC的实现原理与工程实践
后端
踏浪无痕4 小时前
AI 时代架构师如何有效成长?
人工智能·后端·架构
程序员小假4 小时前
我们来说一下无锁队列 Disruptor 的原理
java·后端
武子康5 小时前
大数据-209 深度理解逻辑回归(Logistic Regression)与梯度下降优化算法
大数据·后端·机器学习
maozexijr5 小时前
Rabbit MQ中@Exchange(durable = “true“) 和 @Queue(durable = “true“) 有什么区别
开发语言·后端·ruby
源码获取_wx:Fegn08955 小时前
基于 vue智慧养老院系统
开发语言·前端·javascript·vue.js·spring boot·后端·课程设计
独断万古他化6 小时前
【Spring 核心: IoC&DI】从原理到注解使用、注入方式全攻略
java·后端·spring·java-ee
毕设源码_郑学姐6 小时前
计算机毕业设计springboot基于HTML5的酒店预订管理系统 基于Spring Boot框架的HTML5酒店预订管理平台设计与实现 HTML5与Spring Boot技术驱动的酒店预订管理系统开
spring boot·后端·课程设计