linux 实现普通用户只允许使用部分命令
linux 实现普通用户只允许使用部分命令
由于公司奇葩需求,需要给所有开发用户开通所有服务器的只能查看权限,结合现有jumpserver实现扩展,搭建jumpserver省略,推送一个普通用户
接下来的操作都是在系统里,这里我写了一个脚本用于实现,只允许check_user用户执行 cat ls tail tailf命令
#!/bin/bash User="check_user" Command="cat ls tail tailf" ln -s /bin/bash /bin/rbash User_alive=`cat /etc/passwd | grep check_user|wc -l` if [ $User_alive -eq 1 ] then sed -i "/$User/s/\/bin\/bash/\/bin\/rbash/" /etc/passwd mkdir /home/$User/bin touch /home/$User/.bash_profile if [ -f /home/$User/.bash_profile ] then chown root. /home/$User/.bash_profile chmod 755 /home/$User/.bash_profile echo > /home/$User/.bash_profile cat >> /home/$User/.bash_profile <<EOF # .bash_profile # Get the aliases and functions if [ -f ~/.bashrc ]; then . ~/.bashrc fi # User specific environment and startup programs PATH=\$HOME/bin EOF else echo "profile is not exist" exit "6" fi else echo "User is not exist" exit 5 fi for i in $Command do dir=`whereis $i | awk "{print $2}"` ln -s $dir /home/$User/bin done
以上转自:转自https://blog.51cto.com/chentianwang/2062053
实现后发现后续问题目前还没有解决
1,本想把cd加上,但是centos是可以,ubuntu是不可以,因为cd在ubuntu里不算命令是内置内核里的,不知怎么解决
2,tab补全功能有的机器可以,有的不可以不知道为什么
这边测试了直接cd 不行
centos7和centos6的cd位置也不一样
后面发现cd 需要先执行一下bash才可以,而且必须是root切换到read_user才可以。
https://en.wikipedia.org/wiki/Restricted_shell
在/usr/bin下查看cd 还是需要bash执行。
只能修改Command=”bash cd cat ls tail tailf”,这样用户会有执行bash的权限。还是要根据实际情况设置。
1. 本站所有资源来源于用户上传和网络,因此不包含技术服务请大家谅解!如有侵权请邮件联系客服!10210454@qq.com
2. 本站不保证所提供所有下载的资源的准确性、安全性和完整性,资源仅供下载学习之用!如有链接无法下载、失效或广告,请联系客服处理,有奖励!
3. 您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容资源!如用于商业或者非法用途,与本站无关,一切后果请用户自负!
4. 如果您也有好的资源或教程,您可以投稿发布,成功分享后有RB奖励和额外RMB收入!
磊宇堂正在使用的服务器 维护管理由磊宇云服务器提供支持
磊宇堂 » linux 实现普通用户只允许使用部分命令
2. 本站不保证所提供所有下载的资源的准确性、安全性和完整性,资源仅供下载学习之用!如有链接无法下载、失效或广告,请联系客服处理,有奖励!
3. 您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容资源!如用于商业或者非法用途,与本站无关,一切后果请用户自负!
4. 如果您也有好的资源或教程,您可以投稿发布,成功分享后有RB奖励和额外RMB收入!
磊宇堂正在使用的服务器 维护管理由磊宇云服务器提供支持
磊宇堂 » linux 实现普通用户只允许使用部分命令