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

相关推荐
Asthenia04123 小时前
浏览器缓存机制深度解析:电商场景下的性能优化实践
后端
databook4 小时前
『Python底层原理』--Python对象系统探秘
后端·python
超爱吃士力架5 小时前
MySQL 中的回表是什么?
java·后端·面试
追逐时光者5 小时前
Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
后端·.net
苏三说技术6 小时前
10亿数据,如何迁移?
后端
bobz9656 小时前
openvpn 显示已经建立,但是 ping 不通
后端
customer087 小时前
【开源免费】基于SpringBoot+Vue.JS个人博客系统(JAVA毕业设计)
java·vue.js·spring boot·后端·开源
qq_459238497 小时前
SpringBoot整合Redis和Redision锁
spring boot·redis·后端
灰色人生qwer7 小时前
SpringBoot 项目配置日志输出
java·spring boot·后端
阿华的代码王国7 小时前
【从0做项目】Java搜索引擎(6)& 正则表达式鲨疯了&优化正文解析
java·后端·搜索引擎·正则表达式·java项目·从0到1做项目