作者 主題: 請教一下cd這個指令的路徑在那  (閱讀 3680 次)

0 會員 與 1 訪客 正在閱讀本文。

treble

  • 活潑的大學生
  • ***
  • 文章數: 215
    • 檢視個人資料
    • 牛的大腦
請教一下cd這個指令的路徑在那
« 於: 2010-08-26 20:58 »
各位大大好

請教一下cd這個指令的路徑在那
我執行which cd顯示
/usr/bin/which: no cd in (/usr/kerberos/sbin:/usr/kerberos/bin:/usr/lib/ccache:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin)
我以為是我的which壞了,在試試which pwd,疑,有找到pwd的路徑為/bin/pwd
為什麼cd絕對路徑找不到呢@@
想教一下各位大大為什麼
感謝
[牛的大腦  http://systw.net ] 用來放一些筆記資料
[單字我朋友  http://systw.net/word ] 練英文用的
2分鐘檢測你的單字能力 http://systw.net/word/q.php

Yamaka

  • 俺是博士!
  • *****
  • 文章數: 4875
    • 檢視個人資料
    • http://www.ecmagic.com
回覆: 請教一下cd這個指令的路徑在那
« 回覆 #1 於: 2010-08-26 21:09 »
shell builtin command

treble

  • 活潑的大學生
  • ***
  • 文章數: 215
    • 檢視個人資料
    • 牛的大腦
回覆: 請教一下cd這個指令的路徑在那
« 回覆 #2 於: 2010-08-26 21:17 »
疑,那就槽糕了
我原本想用visudo禁止某個使用者不可使用cd指令
打算在裡面增加
user all=(user) !cd path
現在知道他沒有路徑了,那這樣我是不是就沒有其他辦法了@@?
[牛的大腦  http://systw.net ] 用來放一些筆記資料
[單字我朋友  http://systw.net/word ] 練英文用的
2分鐘檢測你的單字能力 http://systw.net/word/q.php

slime

  • 俺是博士!
  • *****
  • 文章數: 1692
    • 檢視個人資料
回覆: 請教一下cd這個指令的路徑在那
« 回覆 #3 於: 2010-08-26 22:45 »
我原本想用visudo禁止某個使用者不可使用cd指令
打算在裡面增加
user all=(user) !cd path
現在知道他沒有路徑了,那這樣我是不是就沒有其他辦法了@@?

不要給他用任何 shell ....
冷笑話: 我的 IP 是 127.0.0.1

hongbin

  • 憂鬱的高中生
  • ***
  • 文章數: 98
    • 檢視個人資料
回覆: 請教一下cd這個指令的路徑在那
« 回覆 #4 於: 2010-08-27 10:59 »
提供一個不是解法的方法
用 alias ..

例如  alias cd='test1'
當使用者要cd 到某一個目錄時,就不行了
當然,使用者也可再unalias



« 上次編輯: 2010-08-27 11:23 由 hongbin »

treble

  • 活潑的大學生
  • ***
  • 文章數: 215
    • 檢視個人資料
    • 牛的大腦
回覆: 請教一下cd這個指令的路徑在那
« 回覆 #5 於: 2010-09-02 20:22 »
感謝樓上大大的暫緩之計
是否可以設定讓他從ssh登入後,只可以在home目錄內移動之類的嗎
我有看到chroot但只有提到關於ftp,sftp登入,似乎無法對ssh做限制
想請教一下這方面的技術應該參考那些文章
感謝
« 上次編輯: 2010-09-02 20:29 由 treble »
[牛的大腦  http://systw.net ] 用來放一些筆記資料
[單字我朋友  http://systw.net/word ] 練英文用的
2分鐘檢測你的單字能力 http://systw.net/word/q.php

hongbin

  • 憂鬱的高中生
  • ***
  • 文章數: 98
    • 檢視個人資料
回覆: 請教一下cd這個指令的路徑在那
« 回覆 #6 於: 2010-09-02 21:53 »
提供給您參考一下
http://www.cdchen.idv.tw/post/527

treble

  • 活潑的大學生
  • ***
  • 文章數: 215
    • 檢視個人資料
    • 牛的大腦
回覆: 請教一下cd這個指令的路徑在那
« 回覆 #7 於: 2010-09-02 21:58 »
這個對我很有幫助
感謝大大提供的好文章
[牛的大腦  http://systw.net ] 用來放一些筆記資料
[單字我朋友  http://systw.net/word ] 練英文用的
2分鐘檢測你的單字能力 http://systw.net/word/q.php

harrier

  • 榮譽博士
  • 俺是博士!
  • *****
  • 文章數: 1856
  • 性別: 男
    • 檢視個人資料
    • 國屬武裝兵
...90Net(90:1200/1203),GameNET(99:700/707),ALLNet(92:9200/3111),InfoNet(30:100/103)..MaximusCBCS(浮懷),AirNet,TenderNet,StormNet,FidoNet...
<<- www.nas.vg ->>

Mr.wang

  • 可愛的小學生
  • *
  • 文章數: 2
    • 檢視個人資料
回覆: 請教一下cd這個指令的路徑在那
« 回覆 #9 於: 2010-09-17 14:18 »
你好
針對你的問題 我提出我的答案
////////////////////////////////////////////////////
基本上 cd 這個指令 在shell中 是把它歸類成 內部命令
所以
你是找不cd的bin file 在哪裡

shell 是一個命令語言解釋器
擁有自己內建的 shell 命令集。
不論何時你鍵入一個命令,它都被Linux shell所解釋

shell 首先檢查命令是否是內部命令,不是的話再檢查是否是一個應用程序。
如果你鍵入的命令不是一個內部命令
並且在內定路徑裡沒有找到這個可執行文件,將會顯示一條錯誤信息。

而如果命令被成功的找到的話,
shell的內部命令或應用程序將被分解為系統調用並傳給Linux內核。 

treble

  • 活潑的大學生
  • ***
  • 文章數: 215
    • 檢視個人資料
    • 牛的大腦
回覆: 請教一下cd這個指令的路徑在那
« 回覆 #10 於: 2010-09-17 22:24 »
大大您好

看完你的說明,我現在又多了解指令的運作原理,感謝

在此感謝之前各位大大建議的CHROOT做法
小弟研究了一下,才知道原來不用另外裝軟體也可以做chroot
在此分享小弟的實作筆記

..........................


建環境
1
將有需要的目錄建立好
mkdir -p /home/chroot/dev
mkdir -p /home/chroot/bin
mkdir -p /home/chroot/home
mkdir -p /home/chroot/lib
mkdir -p /home/chroot/etc
mkdir -p /home/chroot/usr/lib
mkdir -p /home/chroot/usr/bin
mkdir -p /home/chroot/proc
mkdir -p /home/chroot/dev/pts

2
設定ssh可遠端登入
mount proc /home/chroot/proc -t proc 
mount devpts /home/chroot/dev/pts -t devpts 

3
建立zero,null,ptmx
在/home/chroot/dev下執行
mknod zero c 13 12 && mknod null c 13 12 && mknod ptmx c 5 2

............

建指令
1
將有需要用到的指令複製到chroot
複製/bin/bash到chroot
cp -a /bin/bash /home/chroot/bin/

2
將指令所需函式庫複製到chroot
顯示/bin/bash所需用到的函式庫
ldd /bin/bash   
    linux-gate.so.1 =>  (0x00110000)
       libtinfo.so.5 => /lib/libtinfo.so.5 (0x0501d000)
       libdl.so.2 => /lib/libdl.so.2 (0x00c0f000)
       libc.so.6 => /lib/libc.so.6 (0x00ab4000)
       /lib/ld-linux.so.2 (0x00a95000)
根據ldd所顯示的函式庫複製
cp -f /lib/libtinfo.so.5  /home/chroot/lib
cp -f /lib/libdl.so.2  /home/chroot/lib
cp -f /lib/libc.so.6  /home/chroot/lib
cp -f /lib/ld-linux.so.2  /home/chroot/lib

ps:
若需要在chroot使用其他指令,根據以上建指令步驟即可

...........

設定pam
用ssh登入會chroot
將pam_chroot.so加入/etc/pam.d/ssh
vi /etc/pam.d/sshd
session    optional     pam_chroot.so

ps:
用su切換會chroot
將pam_chroot.so加入/etc/pam.d/su
vi /etc/pam.d/su
session         optional        pam_chroot.so

ps:
終端機登入會chroot
將pam_chroot.so加入/etc/pam.d/login
vi /etc/pam.d/login
session         optional        pam_chroot.so


...........

設定使用者
1
將使用者加入chroot
vi /etc/security/chroot.conf
ray            /home/chroot

2
根據passwd設定使用者家目錄
在/home/chroot/home/建立家目錄
mkdir /home/chroot/home/ray
or
將使用者家目錄複製過去
mv /home/ray /home/chroot/home/

3
複製部份passwd到chroot
cat /etc/passwd | grep ray: > /home/chroot/etc/passwd
[牛的大腦  http://systw.net ] 用來放一些筆記資料
[單字我朋友  http://systw.net/word ] 練英文用的
2分鐘檢測你的單字能力 http://systw.net/word/q.php

rainday

  • 鑽研的研究生
  • *****
  • 文章數: 708
  • 性別: 男
  • enhancing and optimizing
    • 檢視個人資料
回覆: 請教一下cd這個指令的路徑在那
« 回覆 #11 於: 2010-09-18 09:12 »
看起來很實用,玩玩看
<0  =_=  Don't learn to hack , hack to learn.