通过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管理
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创建容器参数配置参考:
通过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)
郑重提示:①本文不允许转载,若认可本文,可点赞收藏关注。
②若有疑问,可在评论区留言相互讨论。