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

相关推荐
Victor35629 分钟前
MongoDB(87)如何使用GridFS?
后端
Victor35632 分钟前
MongoDB(88)如何进行数据迁移?
后端
小红的布丁1 小时前
单线程 Redis 的高性能之道
redis·后端
GetcharZp1 小时前
Go 语言只能写后端?这款 2D 游戏引擎刷新你的认知!
后端
宁瑶琴2 小时前
COBOL语言的云计算
开发语言·后端·golang
普通网友3 小时前
阿里云国际版服务器,真的是学生党的性价比之选吗?
后端·python·阿里云·flask·云计算
IT_陈寒3 小时前
Vue的这个响应式问题,坑了我整整两小时
前端·人工智能·后端
Soofjan4 小时前
Go 内存回收-GC 源码1-触发与阶段
后端
shining4 小时前
[Golang]Eino探索之旅-初窥门径
后端
掘金者阿豪4 小时前
Mac 程序员效率神器:6 个我每天都在用的 Mac 工具推荐(Alfred / Paste / PixPin / HexHub / iTerm2 /)
后端