作者 主題: 請問這shell程式是什麼意思  (閱讀 10046 次)

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

gwochern

  • 可愛的小學生
  • *
  • 文章數: 25
    • 檢視個人資料
請問這shell程式是什麼意思
« 於: 2002-03-23 20:15 »
# mkfifo /tmp/pipe    <--告訴我這是在做什麼東東
# chmod 666 /tmp/pipe <--下指令這我知道

==== userA.sh ==== 使用者A shell檔案
#!/bin/sh
umask 066
while [ 1 ]; do cat /tmp/pipe >> /tmp/userA.out
==================

# su - userA -c "/tmp/userA.sh &" <---下指令 告訴我這是在做什麼東東

==== anyuser.sh ==== 任何使用者 shell檔案
#!/bin/sh
echo "my uid is `id -u`, running pid is $$" > /tmp/pipe
=====================
可否告訴我這是在做什麼東東...還有我在Linux系統照打為什麼無法動作
謝謝.....

Anonymous

  • 訪客
請問這shell程式是什麼意思
« 回覆 #1 於: 2002-03-23 21:44 »
引用

在 2002-03-23 20:15, gwochern 寫了:
# mkfifo /tmp/pipe    <--告訴我這是在做什麼東東
# chmod 666 /tmp/pipe <--下指令這我知道

==== userA.sh ==== 使用者A shell檔案
#!/bin/sh
umask 066
while [ 1 ]; do cat /tmp/pipe >> /tmp/userA.out
==================

# su - userA -c "/tmp/userA.sh &" <---下指令 告訴我這是在做什麼東東

==== anyuser.sh ==== 任何使用者 shell檔案
#!/bin/sh
echo "my uid is `id -u`, running pid is $$" > /tmp/pipe
=====================
可否告訴我這是在做什麼東東...還有我在Linux系統照打為什麼無法動作
謝謝.....

嗯﹐我也看不太懂具體是要做什麼﹖您那邊有看到錯誤信息嗎﹖
mkfifo 是建立一個 name pipe 檔﹐通常是用來供其他程式使用的。
至於後面的程式﹐我就看不出其所以然了。

gwochern

  • 可愛的小學生
  • *
  • 文章數: 25
    • 檢視個人資料
請問這shell程式是什麼意思
« 回覆 #2 於: 2002-03-24 01:18 »
謝謝你回答我
你可以看看我在LinuxFab所POST的文章
http://www.linuxfab.cx/indexForumData.php?FID=23&PAGE=0&DETAILTHREAD=169&POSTID=2#169-2

http://www.linuxfab.cx/indexForumData.php?FID=23&PAGE=0&DETAILTHREAD=170&POSTID=3#170-3

其使主要我是要讓一些USER登入建立一個檔案
建完之後這些使用者就不能修改所輸入的內容和觀看
只有由USER A可以看這個檔的內容

這個程式是回答我的人寫的..
以下是我打完程式執行所碰的問題
1. 在下su - userA -c "/tmp/userA.sh &"
系統會說 -bash:/root/userA.sh:Permission denied
2. 我執行anyuser.sh 時
我可以輸入任何字,但程式卻跳不出去
我在用root 登入去看pipe 這個檔也沒變化
在用這些user登入下 vi pipe就當掉
3. user A去執行userA.sh 時
會說我的while do有問題,且也沒產生userA.out
所以我才會在POST文章來問

netman 還是有別的方法寫這程式,我真的找不到
可以跨越權限和自己建立的檔案卻不能看和改的指令而去寫成一個shell
這對我剛開始起步的網管人太難.
這程式最主要的用意是我只要開一個帳號出來讓新來的學生,都用這個帳號
登入執行一個shell然後輸入 學號 user name passwd
這樣的話我就不用一個一個去問,你或雪|問為什麼不直接
user name 學號 passwd 學號 再自行去修改passwd,可是我覺得這樣太不安全了
且user name為學號這種有規律性的東東,由其對一些懂Linux的人,真的太那個了..
這是我想做的東東,只是一直用不出來,不知netman可否用寫過..
反正先謝謝你啦......... :grin: :grin: :grin:





[ 這篇文章被編輯過:  gwochern 在 2002-03-24 01:24 ]

Anonymous

  • 訪客
請問這shell程式是什麼意思
« 回覆 #3 於: 2002-03-24 02:01 »
首先﹐我對 programing 也不是很熟識﹐這是真的。
其次﹐我覺得您這個需求不合理﹕既然是自己建的﹐為什麼不能看﹖
真要這樣做的話﹐我想應該由 root 來執行﹐以轉換權限的設定。
如果您能讓 user 執行 su 或 sudo 去修改權限﹐那也可以再次將權限修改回來。

gwochern

  • 可愛的小學生
  • *
  • 文章數: 25
    • 檢視個人資料
請問這shell程式是什麼意思
« 回覆 #4 於: 2002-03-24 18:12 »
因為我是想先用一個帳號讓新來的學生登入,且所有的新學生都是執行同樣的
shell,shell產生的檔案也是同一個(所有資料都會放在同一個檔案內,才不用一個一個去找檔案),那如果可看可改(要改的話自行再執行一次shell),那其它先執行的學生它們的user name 和 passwd不是被看光光,更可怕是密碼被更改那不是都完了還有我還想過若有人輸入其它人的學號那怎麼辨,但我想還是先把這個shell先寫出來再說.....

Anonymous

  • 訪客
請問這shell程式是什麼意思
« 回覆 #5 於: 2002-03-25 13:47 »
對我來說﹐這好像是要寫 OS 一樣~~  ^_^

劍客

  • 活潑的大學生
  • ***
  • 文章數: 238
    • 檢視個人資料
    • http://kalug.ks.edu.tw
請問這shell程式是什麼意思
« 回覆 #6 於: 2002-03-26 18:41 »
==== userA.sh ==== 使用者A shell檔案
#!/bin/sh
umask 066
while [ 1 ]; do cat /tmp/pipe >> /tmp/userA.out
==================
done    

我想你可能少打一行 done

另外 你執行的時候出現 permission denied ,所以應該是 userA.sh 沒有執行權限。你可以 chmod +x userA.sh 看看。

我跑起來是可以的。

gwochern

  • 可愛的小學生
  • *
  • 文章數: 25
    • 檢視個人資料
請問這shell程式是什麼意思
« 回覆 #7 於: 2002-03-27 01:38 »
劍客:
你可以再教教我嗎
我下
#su - userA -c "/tmp/userA.sh &"
就出現
#/tmp/userA.sh: line 3: syntax error near unexpected token 'do'
/tmp/userA.sh: line 3: 'while[1];do cat /tmp/pipe>>/tmp/userA.out

這是語法錯誤嗎,還是我的sh沒有do這個指令
我用7.0和7.2都是一樣的結果,可否告訴我
還有先謝謝你回答我問題...........

Anonymous

  • 訪客
請問這shell程式是什麼意思
« 回覆 #8 於: 2002-03-27 09:53 »
引用

在 2002-03-27 01:38, gwochern 寫了:
劍客:
你可以再教教我嗎
我下
#su - userA -c "/tmp/userA.sh &"
就出現
#/tmp/userA.sh: line 3: syntax error near unexpected token 'do'
/tmp/userA.sh: line 3: 'while[1];do cat /tmp/pipe>>/tmp/userA.out

這是語法錯誤嗎,還是我的sh沒有do這個指令
我用7.0和7.2都是一樣的結果,可否告訴我
還有先謝謝你回答我問題...........



while [ 1 ]; do .....

while 跟 [] 要有空隔,[] 也是一個獨立的指令。

劍客

  • 活潑的大學生
  • ***
  • 文章數: 238
    • 檢視個人資料
    • http://kalug.ks.edu.tw
請問這shell程式是什麼意思
« 回覆 #9 於: 2002-03-27 18:26 »
其實回歸你的需求,我想為學生設定初始密碼,然後讓學生自己改。至於密碼設定如果嫌麻煩,可以看看 mkpasswd 這個指令會不會減輕你的負擔。

gwochern

  • 可愛的小學生
  • *
  • 文章數: 25
    • 檢視個人資料
請問這shell程式是什麼意思
« 回覆 #10 於: 2002-03-27 19:36 »
netman:
如果沒有你的回答可能沒人理我

隨班附讀路人甲:
忘記 [ ] 這個是一個test的指令

劍客:
其實我是想讓它們有自己的user name,且用學號當user name 真的很不好因為學號是規律性的東東.......  

反正謝謝你們.....我終於成奶F
真的太感謝你們了

還有一點會想用shell寫程式的,總之就是一個字 "懶"  
也說聲對不起你們,讓你們煩心,成就我這個懶人
謝謝無限次  對不起無限次...... :grin: :lol: