Linux 如何限制普通用户只能ssh登陆不能使用命令?
发布网友
发布时间:2022-04-26 17:35
我来回答
共2个回答
热心网友
时间:2023-10-17 20:55
在linux中出于安全的需要,我们会禁止某些用户SSH登陆系统进行操作。我这里以centos操作系统为例记录下如何进行处理。
1、打开sshd的配置文件
vi /etc/ssh/sshd_config2、修改该配置文件,增加或修改如下行
# 禁止用户user1登陆,多个空格分隔DenyUsers user1 # 禁止用户组group1的所有用户登录,多个空格分隔DenyGroups group13、保存配置后,重启sshd
/etc/rc.d/init.d/sshd restart 完成上面的配置后,就可以禁止用户或用户组的用户进行登录了,第2步中的两个是可以只填一个的,可以根据需要进行调整。配置完毕后,在其他linux机器上使用如下命令进行测试:
# 使用ssh测试[root@ServerA ~]# ssh user1@192.168.1.168user1@192.168.1.168's password: Permission denied, please try again. # 使用sftp测试[root@ServerA ~]# sftp user1@192.168.1.168user1@192.168.1.168's password: Permission denied, please try again. 可以看到,确实被系统禁止了,从而也就完成了我们想要的控制了。但这个有一个缺陷是,无法禁止只允许sftp而不允许ssh,如果要这样做,估计只能够单独搭建ftp服务器,比如vsftp,后续再考虑这个。追问拜托能不能不要复制粘贴............现在是要使用ssh连接来构建socks5代理服务,禁止了ssh我还问什么问题..........
热心网友
时间:2023-10-17 20:55
编辑 /etc/profile,添加
if [ "$USER" == "user01" ]; then
mkdir $HOME/bin >/dev/null 2>&1
ln -s /usr/bin/ssh $HOME/bin/ >/dev/null 2>&1
PATH=${HOME}/bin
export PATH
fi
需要指出的是: 如果用户登录成功后,命令前 加全路径,这个方法就失效了,
例如:
/bin/cat ~/.bash_pforile #直接cat ~./bash_profile是无效的命令
/bin/rm ~/.bash_profile #直接rm 是无效的命令
/usr/bin/xxx 等等命令