• 欢迎访问 winrains 的个人网站!
  • 本网站主要从互联网整理和收集了与Java、网络安全、Linux等技术相关的文章,供学习和研究使用。如有侵权,请留言告知,谢谢!

linux实现普通用户只允许使用部分命令

Linux技术 winrains 来源:转身撞墙角 1年前 (2019-08-31) 65次浏览

写了一个脚本用于实现,只允许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

实现后发现后续问题目前还没有解决
1,本想把cd加上,但是centos是可以,ubuntu是不可以,因为cd在ubuntu里不算命令是内置内核里的,不知怎么解决;
2,tab补全功能有的机器可以,有的不可以不知道为什么。

作者:转身撞墙角

来源:https://blog.51cto.com/chentianwang/2062053


版权声明:文末如注明作者和来源,则表示本文系转载,版权为原作者所有 | 本文如有侵权,请及时联系,承诺在收到消息后第一时间删除 | 如转载本文,请注明原文链接。
喜欢 (0)