linux 怎麼限制使用命令?
現在在用外國的VPS利用SSH連接構建socks5代理,以此實現跨欄看世界。因為要提供給其他人使用,需要創建用戶,為了保證安全,有沒有辦法可以限制指定的用戶只能訪問自己的home目錄,或者禁止使用指定的命令(cd,ls,cat等等)....這個linux有方法設置嗎??謝謝了!!!
讀了一下題,題主的要求就是讓別人能ssh代理不能ssh訪問VPS吧,那直接禁止其shell登錄就是。chsh username -s /usr/sbin/nologin
直接配置好 PATH,裡邊只放你認可的命令,然後 shell 改成 rbash/rzsh 之類的限制版,這樣對方就只能執行 PATH 里的程序啦。
如果你沒有 rbash 這個命令,可以自己做個叫 rbash 的軟鏈接指向 bash。你也可以用 bash -r 進入受限 bash shell。用shadowsocks來做代理,而不是直接用ssh。
配置openvpn就好了。
chroot jail + GNU rush http://puszcza.gnu.org.ua/software/rush/
兩個問題:
(1)用戶訪問自己的home目錄:
useradd -d /home/zhangsan -g group1 -m zhangsan 創建組為group1的用戶zhangsan 主目錄為/home/zhangsan
passwd zhangsan 設置密碼
chmod 700 /home/zhangsan 只能root用戶及用戶所有者也就是zhangsan可以訪問
(2)限制命令:一般來說 cat ls沒必要禁吧 我們運維都是禁掉諸如rz sz crontab的危險命令
這個怎麼限制呢? 一般這些命令都是在/usr/bin目錄下 可以chmod 700 命令 那就只有root用戶可以執行了
而對於/usr/bin目錄下的命令如何精確設置到用戶A能夠訪問命令Z 而用戶B不能訪問命令Z 本人也不知道 一般只是許可權限制為root
擴展一下:如何設置crontab的用戶執行許可權?
可以在/etc目錄下創建文件 cron.allow 或cron.deny來控制許可權
如果 /etc/cron.allow 文件存在,那麼該文件中的用戶可以使用 crontab命令, 同時 /etc/cron.deny文件被忽略;
如果 /etc/cron.allow 文件不存在,那麼文件 /cron.deny 中列出的用戶將不能用使用 cron
ss5不是可以建立虛擬賬戶嗎
為了個代理的目的折騰系統不值,不如用個代理軟體算了。
推薦閱讀:
※Linux交換空間可以和其他目錄放在不同的硬碟中嗎?
※大家都用linux做什麼?我剛安裝debian9,如何用它學習編程?
※如何可以方便地閱讀大量 Linux Shell 腳本?