天天看点

支持多用户的远程编译服务器搭建一、账户管理二、SSH管理三、其它

通过SSH以root用户登录远程服务器(主要是要有超级管理员权限),可以是远程服务器主机,亦可是安装在远程服务器主机上的docker、podman等容器(需提前启动)。

在远程服务器上配置好编译环境,然后添加低权限用户(所有用户共用一个端口,使用同一个容器):

一、账户管理

命令行创建新的用户账户:

使用useradd时若不设置其它参数,可能出现在/home目录未创建和用户名同名的目录,且存在密码泄漏风险(密码记录在/etc/passwd而不是/etc/shadow),推荐使用adduser。

useradd <username> -m -b /home -d /home/<username> -p <passwords> -s /bin/bash  //或使用passwd <username>添加密码
adduser <username>
           

默认情况下,在Ubuntu上,sudo组的成员被授予sudo访问权限。如果希望新创建的用户具有管理权限,请将用户添加到sudo组:

sudo usermod -aG sudo username  //更通用的方式是使用

visudo

命令编辑

/etc/sudoers

文件

visudo -f /etc/sudoers
           

命令行删除用户账户:

推荐使用deluser

userdel <username>
           

要删除用户而不删除用户文件,请运行:

deluser <username>
           

如果要删除并且删除用户的家目录和邮件使用

--remove-home选项

deluser --remove-home <username>
           

查看所有用户和用户组:

cat /etc/shadow  //查看系统中存在的所有用户。
cat /etc/group  //查看系统中存在的所有用户组。
           

修改文件(夹)所有者和访问权限:

chown(英文全拼:change owner)命令用于设置文件(夹)的所有者和关联组

chmod(英文全拼:change mode)命令是控制用户对文件的权限的命令

支持多用户的远程编译服务器搭建一、账户管理二、SSH管理三、其它

二、SSH管理

service ssh status
service ssh start  //容器中在root用户启动ssh后,只要不使用podman stop <container-name>,容器中的ssh针对所有用户均保持启动状态。
service ssh restart
           

容器中启动ssh状态总是sshd is not running

Linux用户管理和SSH远程配置

问题:单容器多用户,直接在宿主机使用低权限用户登录进容器,当前环境变量配置均是root,比如 echo $HOME,echo $USER,echo $LOGNAME 等均是root用户的配置。但远程PC使用SSH登录容器时却不会这样???

三、其它

podman创建容器参数配置参考:

支持多用户的远程编译服务器搭建一、账户管理二、SSH管理三、其它

通过SSHFS可将远程服务器目录挂载到本地计算机。

mount: sshfs [email protected]:/home/slf/SSHMountDir /home/pc/246_Server -p 60040
umount: fusermount -u /home/pc/246_Server
           

有多个用户的分布式远程文件系统较常使用诸如苹果归档协议(AFP)、网络文件系统(NFS)和服务器消息块(SMB)。SSHFS是这些协议的备选方案,仅适合用于用户确信文件和目录不会同时在被另一个用户写入。

SSHFS在与其他网络文件系统协议相比时的优点是,由于用户已具有对主机的SSH访问,它不需要任何额外的配置工作,也不需要在防火墙中打开额外的传入端口。

查看已经开启的端口:sudo ufw status

打开端口:sudo ufw allow <port>

开启防火墙:sudo ufw enable

重启防火墙:sudo ufw reload

查看命令用法:sudo ufw --help(不支持 -h)

郑重提示:①本文不允许转载,若认可本文,可点赞收藏关注。

                  ②若有疑问,可在评论区留言相互讨论。

继续阅读