目前机器上需要3个用户帐号,分別供3个人使用。其中一个用户需要拥有管理员权限,另外两人无管理员权限。同时对于挂载在/media/data
分区,所有人都拥有进行读写执行(rwx)权限。同时, 为保证用户数据安全,每个用户之间不能互相访问家目录。
4.1 用户配置
这里我们假设拥有管理员权限的用户为A,另外两个普通用户为B、C。为方便管理,我们3个用户都放置在stdents用户组中。注意,以下操作均是使用root
用户。
- 新建用户组
bash
groupadd -r students
- 增加用户
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
- 为用户设置登录密码
css
echo "xxxx" | passwd --stdin A
echo "xxxx" | passwd --stdin B
echo "xxxx" | passwd --stdin C
或
sudo su root
使用root账号通过命令"sudo passwd 用户名" 更新对应用户的密码
该方式不用重复输入密码,比较方便。但是会将记录保存在history中,因此,在操作完成后记得清空history。
- 为用户A增加管理员权限
bash
vim /etc/sudoers
# 在文件末尾添加如下内容
A ALL=(ALL:ALL) ALL
# 保存并退出文件
- 设置各个用户家目录权限,其它用户不可以访问
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,该部分完成,可自行进行测试。