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 腳本?

TAG:Linux | Linux系統管理 | Linux軟體 | 終端命令 |