藍森林首頁 | 返回主頁 | 本站地圖 | 站內搜索 | 聯繫信箱 |
 您目前的位置:首頁 > 自由軟件 > 技術交流 > 應用編程


    

藍森林 http://www.lslnet.com 2006年6月26日 11:18


請教:如何限制用戶登陸後可訪問的目錄?

qdans01:/var/sawork/bin:which cd
/bin/cd
qdans01:/var/sawork/bin:/bin/cd /tmp
qdans01:/var/sawork/bin:cd /tmp
qdans01:/tmp:
我輸入全路徑,結果cd命令不執行,去掉路徑後就可以了。不知道是什麼原因?
以下是/bin/cd的內容:
#!/bin/ksh -p
#
#ident  "@(#)alias.sh   1.2     00/02/15 SMI"
#
# Copyright (c) 1995 by Sun Microsystems, Inc.
#
cmd=`basename $0`
$cmd "$@"

請教:如何限制用戶登陸後可訪問的目錄?

cd是shell的一個內建命令,一旦啟動了shell,cd就駐留在內存裡,是不需要什麼路徑的!

請教:如何限制用戶登陸後可訪問的目錄?

我在別的系統上試了一下,結果一樣。只要在cd命令前面加上路徑,cd命令就不好用了。真奇怪!

請教:如何限制用戶登陸後可訪問的目錄?

那就是說,我們沒發來重寫cd命令了?
我本來想重寫一下cd命令,來限制用戶可以訪問的目錄。不知各位大俠有什麼好辦法嗎?

請教:如何限制用戶登陸後可訪問的目錄?

用戶要求某個用戶登陸後,只能訪問其home和另外一個指定目錄。大家有什麼方案嗎?

請教:如何限制用戶登陸後可訪問的目錄?

在bash中
使用 bash -r不可以啟用一個受限shell

請教:如何限制用戶登陸後可訪問的目錄?

請教:如何限制用戶登陸後可訪問的目錄?

斑竹能說的稍微詳細點兒嗎?謝謝先。

請教:如何限制用戶登陸後可訪問的目錄?

-->


但是你不可能設置系統所有目錄的權限呀..

請教:如何限制用戶登陸後可訪問的目錄?

[code][waker@proxy d1]$ bash -r
[waker@proxy d1]$ ls
b.bac.bac  bb.bac.bac  c  d  d3  d4  dd2  tt  tt.sh
[waker@proxy d1]$ whereis ls
ls: /bin/ls /usr/share/man/man1p/ls.1p.gz /usr/share/man/man1/ls.1.gz
[waker@proxy d1]$ /bin/ls
bash: /bin/ls: restricted: cannot specify `/' in command names
[waker@proxy d1]$
[/code]


 bash本身也有一定的限制功能,就是通過其(受限shell)restricted shell功能,所做的限制包括:阻止用戶改變目錄和環境變量;重定向輸出;使用絕對路徑運行命令;使用exec命令和其它一些操作。如果bash是以rbash為名啟動,或者使用-r選項運行,它就稱為受限shell。受限shell能夠使系統環境更好控制。如果啟動受限shell,以下操作將被禁止:

    * 使用cd命令切換目錄;

    * 設置或者取消SHELL、PATH、ENV或者BASH_ENV環境變量;

    * 以絕對路徑運行命令;

    * 使用絕對路徑指定的文件名作為內置命令.的參數;

    * 使用絕對路徑指定的文件名作為內置命令hash的參數;

    * 在啟動時,從shell環境導入函數的定義;

    * 在啟動時,解析SHELLOPTS的值;

    * 使用

>、>|、<>、>&、&>和>>

      等重定向操作重定向輸出;

    * 使用exec命令使其它的命令代替當前shell;

    * 使用-f和-d選項打開/關閉內置命令;

    * 對內置命令使用-p選項;

    * 關閉受限模式。

請教:如何限制用戶登陸後可訪問的目錄?

對csh沒什麼瞭解,所以只能以bash舉個例子

請教:如何限制用戶登陸後可訪問的目錄?

-->

可以呀,一個命令搞定。用超級用戶進入
cd /
chmod -R 700 *
然後更改用戶可訪問的目錄為777即可。
chown是更換用戶組的也可以。

請教:如何限制用戶登陸後可訪問的目錄?

斑竹,運行bash -r後的PATH變量是在那裡設的?我在.profile, .bash_profile, .bashrc中設都不行。所以進入bash -r 模式後,只能運行當前目錄下的命令..

請教:如何限制用戶登陸後可訪問的目錄?

-->

這樣也行?

請教:如何限制用戶登陸後可訪問的目錄?

-->


不行呀,我們的server是很多人共享,這樣的話,組權限就都沒了。

請教:如何限制用戶登陸後可訪問的目錄?

組權限再用chown改嘛。

請教:如何限制用戶登陸後可訪問的目錄?

我的sco又沒有bash,,唉......又失敗......

請教:如何限制用戶登陸後可訪問的目錄?

請教:如何限制用戶登陸後可訪問的目錄?

最後,總結一下:

看來目前除了Restricted shell之外,沒有更好的方法能將telnet登陸的用戶限制在用戶的home目錄下。但是restricted shell限制太多,用戶甚至無法訪問自己home下的子目錄。所以實際中很難應用。

謝謝Waker及各位的幫助。

請教:如何限制用戶登陸後可訪問的目錄?

先建一個 chroot 的環境, 含基本的 bin, etc, lib ... 相關目錄與文件.
(最好先知道啥是 chroot 及 chroot 環境)
然後, 找一下 pam 的 chroot module 的說明.



Copyright © 1999-2000 LSLNET.COM. All rights reserved. 藍森林網站 版權所有。 E-mail : webmaster@lslnet.com