シェルスクリプトに関する総合スレッドです。
全般
・荒しは無視しましょう。
・丁寧な姿勢を心掛けましょう。
・ネチケット(死語)を意識しましょう。
・「○○(他の言語)でいいやん」は禁止。他のスレに行ってください。
シェルスクリプト総合 その33
https://mevius.5ch.net/test/read.cgi/tech/1584893550/
シェルスクリプト総合 その34
■ このスレッドは過去ログ倉庫に格納されています
2020/08/21(金) 15:17:55.64ID:mArnj/tT
797デフォルトの名無しさん
2020/11/03(火) 21:21:56.76ID:xZyzqOA2 C言語にとってのPOSIXは、ほとんどすべてのことができるのに対して
シェルスクリプトにとってのPOSIXは必要最小限のことしかできない
ここ、大きな違いな
シェルスクリプトにとってのPOSIXは必要最小限のことしかできない
ここ、大きな違いな
798デフォルトの名無しさん
2020/11/03(火) 21:33:57.64ID:j7Eu4w5F799デフォルトの名無しさん
2020/11/05(木) 08:37:54.68ID:aaXXoIST 最近使う機会のあったTinyCoreLinuxはashで >>2 のリストからしたらPOSIXみたいだけど
コマンドが無かったりして/proc依存しまくりで何の意味もなかったわありがとう!
コマンドが無かったりして/proc依存しまくりで何の意味もなかったわありがとう!
800デフォルトの名無しさん
2020/11/05(木) 14:20:57.02ID:NJa4xvXv ・TinyCoreLinuxに入っているashはPOSIXシェル
・TinyCoreLinuxにPOSIXコマンドがない・/procに依存している
この二つは何の関係もないんですが……
皮肉を言うのはいいけど,ちゃんと勉強してからにしような!
・TinyCoreLinuxにPOSIXコマンドがない・/procに依存している
この二つは何の関係もないんですが……
皮肉を言うのはいいけど,ちゃんと勉強してからにしような!
801デフォルトの名無しさん
2020/11/05(木) 16:46:58.38ID:qZMsdltc802デフォルトの名無しさん
2020/11/05(木) 17:55:36.75ID:5VWi+ROf803デフォルトの名無しさん
2020/11/05(木) 18:16:46.91ID:NJa4xvXv >>801
それ本気で言ってる?
それ本気で言ってる?
804デフォルトの名無しさん
2020/11/05(木) 18:57:50.01ID:qZMsdltc805デフォルトの名無しさん
2020/11/05(木) 19:06:50.80ID:xxBKaUpW 全部だろ、アホ
806デフォルトの名無しさん
2020/11/05(木) 19:48:26.44ID:qZMsdltc POSIXはなくてもええわ、カス
807デフォルトの名無しさん
2020/11/05(木) 19:56:20.59ID:xxBKaUpW おまえんなかではそうなんだろうなw
808デフォルトの名無しさん
2020/11/05(木) 20:52:05.33ID:qZMsdltc んなもん、あたりまえやw
そして、数少ない原理主義者以外にとってもな!
そして、数少ない原理主義者以外にとってもな!
809デフォルトの名無しさん
2020/11/05(木) 22:54:42.95ID:5bWXoO+B POSIXよりもうちょっと実用的な標準作られないの?
810デフォルトの名無しさん
2020/11/06(金) 10:03:54.52ID:a8jj0K4f ここの住人って本気で
POSIXを越える規格を作って
それを世界が受け入れてくれる!
って思ってそうよねw
POSIXを越える規格を作って
それを世界が受け入れてくれる!
って思ってそうよねw
811デフォルトの名無しさん
2020/11/06(金) 10:15:50.10ID:UqYVvhfA いや、POSIXを発展させようと思ってるだけだが。
POSIXに影響を与えれば、POSIX自体が成長する。
POSIXを超えるのではなく、POSIX自体がPOSIXを超える。
だからそれはPOSIXのままだと言える
POSIXに影響を与えれば、POSIX自体が成長する。
POSIXを超えるのではなく、POSIX自体がPOSIXを超える。
だからそれはPOSIXのままだと言える
812デフォルトの名無しさん
2020/11/06(金) 10:45:16.28ID:vuRZSDYg POSIXを越えられるのは、POSIXだけだ!
熱いな
熱いな
813デフォルトの名無しさん
2020/11/06(金) 10:47:09.27ID:UqYVvhfA 当たり前じゃん。アレだけおもちゃと馬鹿にされた
JavaScriptを超える言語はJavaScriptだけだった
JavaScriptを超える言語はJavaScriptだけだった
814デフォルトの名無しさん
2020/11/06(金) 11:50:47.48ID:pxoM2z0f >>810
いや、そんな規格にはそれほど意味がない、と思うやろ。
目安程度にしかならんというか。
淘汰圧にはならんというか。
WebブラウザやC++コンパイラみたいに、非準拠なら非難轟々、とはなってないからな。
いや、そんな規格にはそれほど意味がない、と思うやろ。
目安程度にしかならんというか。
淘汰圧にはならんというか。
WebブラウザやC++コンパイラみたいに、非準拠なら非難轟々、とはなってないからな。
815デフォルトの名無しさん
2020/11/06(金) 12:01:23.28ID:UqYVvhfA 非準拠なら単に使われないってだけだな
WebブラウザやC++コンパイラが非難轟々なのは
準拠してますって宣言した上で、非準拠なことするからだよ
最初から準拠していませんって言っていれば
同じように使われないってだけ
WebブラウザやC++コンパイラが非難轟々なのは
準拠してますって宣言した上で、非準拠なことするからだよ
最初から準拠していませんって言っていれば
同じように使われないってだけ
816デフォルトの名無しさん
2020/11/06(金) 22:41:33.89ID:a8jj0K4f これ >>815
原理主義者が鬱陶しいのは同意するけど
だからといってPOSIXを無視していれば
損するのは自分よ。
たとえ「世界中の人間に使ってほしい」とか
そういう意図がなくても,POSIXに準じてたほうが
維持管理・保守の面だけでもどれだけの労力を減らせるか。
原理主義者が鬱陶しいのは同意するけど
だからといってPOSIXを無視していれば
損するのは自分よ。
たとえ「世界中の人間に使ってほしい」とか
そういう意図がなくても,POSIXに準じてたほうが
維持管理・保守の面だけでもどれだけの労力を減らせるか。
817デフォルトの名無しさん
2020/11/07(土) 00:32:05.33ID:FicFgdCX 検証不能だけどな。
まあ、ひょっこり出てきたものがかっさらう可能性もあるからなんとも。
まあ、ひょっこり出てきたものがかっさらう可能性もあるからなんとも。
818デフォルトの名無しさん
2020/11/09(月) 13:44:59.81ID:b7PWfh7Z 昔々、TinyCoreLinuxの日本語訳をバイナリでしか公開しなかったライセンス違反のおじさんがいたな
819デフォルトの名無しさん
2020/11/10(火) 07:28:20.01ID:2U042Zc8 POSIX に自信ある人おるっぽいから質問なんだけど!
date コマンドの POSIX 仕様書を見てみると、出力フォーマットに %F とか %z がないんだけど、これって使うとまずい?
%T は載ってるんだけどなぁ
strftime のほうには全部載ってるんだけど
date コマンドの POSIX 仕様書を見てみると、出力フォーマットに %F とか %z がないんだけど、これって使うとまずい?
%T は載ってるんだけどなぁ
strftime のほうには全部載ってるんだけど
820デフォルトの名無しさん
2020/11/10(火) 12:00:26.68ID:9k3Gk+Qe 「POSIXに準拠する」なら,マズい。
「俺はPOSIXなんか知らねえ! 俺の手元ではdateコマンドに%zを使えるから
使うんだ!」っていう考え方なら,全然使っても構わない。
ちなみに私は前者。
「俺はPOSIXなんか知らねえ! 俺の手元ではdateコマンドに%zを使えるから
使うんだ!」っていう考え方なら,全然使っても構わない。
ちなみに私は前者。
821デフォルトの名無しさん
2020/11/10(火) 12:04:37.65ID:9k3Gk+Qe822デフォルトの名無しさん
2020/11/10(火) 12:11:36.00ID:08CevRpc 正直言うと z 使うと保守が面倒臭くなる
手離れ悪い
手離れ悪い
823デフォルトの名無しさん
2020/11/10(火) 13:09:49.18ID:2U042Zc8824デフォルトの名無しさん
2020/11/10(火) 13:24:27.74ID:wuzfZjuS 来年サマータイム導入します(キリっ
825デフォルトの名無しさん
2020/11/10(火) 13:51:26.00ID:9k3Gk+Qe826デフォルトの名無しさん
2020/11/10(火) 14:08:32.86ID:2U042Zc8 >>825
なるほど... ありがとうございました!
なるほど... ありがとうございました!
827デフォルトの名無しさん
2020/11/11(水) 06:40:35.05ID:AeLDZcCA828デフォルトの名無しさん
2020/11/11(水) 08:59:35.27ID:KkaNKXcC >>827
膠っていう考え方ね。
膠っていう考え方ね。
829デフォルトの名無しさん
2020/11/11(水) 16:14:40.51ID:o7ye760s 合成の誤膠って奴かな?
830デフォルトの名無しさん
2020/11/11(水) 17:25:57.68ID:2Y4tzM/7 シェルスクリプトで済むんなら使った方が良い。
831デフォルトの名無しさん
2020/11/11(水) 17:29:00.12ID:uSbtgdeR 結局シェルスクリプトが一番適切だって思うから、みんなシェルスクリプトを使うわけで
そのあとシェルスクリプト使って後悔するなら、シェルスクリプト力(技術力)をつけたほうが良いってことだよ
他の言語に乗り換えるってのは、適切じゃない言語を使うってこと。単に慣れてるだけ。
そのあとシェルスクリプト使って後悔するなら、シェルスクリプト力(技術力)をつけたほうが良いってことだよ
他の言語に乗り換えるってのは、適切じゃない言語を使うってこと。単に慣れてるだけ。
832デフォルトの名無しさん
2020/11/11(水) 17:41:19.52ID:EWytaMfd >>831
アホがおるw
アホがおるw
833デフォルトの名無しさん
2020/11/11(水) 18:13:47.22ID:KDi/CYCF834デフォルトの名無しさん
2020/11/11(水) 18:15:50.79ID:uSbtgdeR ほら、反論なしと(笑)
835デフォルトの名無しさん
2020/11/11(水) 19:29:10.44ID:KFC8J5w+ 真面目に反論する気にもならないアホな論てあるんやで
自覚ないとおわかりになられんでしょうけど
自覚ないとおわかりになられんでしょうけど
836デフォルトの名無しさん
2020/11/11(水) 20:20:09.72ID:1NS/Ttdd シェルスクリプトの欠点の一つとして
シェル変数を気軽に上書きできるという点がある
うっかりシステムに関係する変数を書き換えると
大騒ぎになるかも
シェル変数を気軽に上書きできるという点がある
うっかりシステムに関係する変数を書き換えると
大騒ぎになるかも
837デフォルトの名無しさん
2020/11/11(水) 20:37:56.82ID:auS5YaT3 システムに関係するシェル変数ってなに?
他の言語じゃその変数を書き換えることは無理なの?
他の言語じゃその変数を書き換えることは無理なの?
838デフォルトの名無しさん
2020/11/11(水) 20:46:46.52ID:KFC8J5w+ うっかり=意図せずにだろ
他の言語では環境変数を書き換えるという明確な意思がなければ変わらないだろう
他の言語では環境変数を書き換えるという明確な意思がなければ変わらないだろう
839デフォルトの名無しさん
2020/11/11(水) 21:13:01.49ID:auS5YaT3 え?システムに関係するシェル変数って環境変数のことだったの?
環境変数を書き換えても、他のプロセスには影響ないんだけど?
それでシステムに影響がある環境変数の名前はなに?
環境変数を書き換えても、他のプロセスには影響ないんだけど?
それでシステムに影響がある環境変数の名前はなに?
840デフォルトの名無しさん
2020/11/11(水) 21:13:24.60ID:VcjQlt7C >>836
readonlyというのがあるじゃん
readonlyというのがあるじゃん
841デフォルトの名無しさん
2020/11/11(水) 21:14:32.87ID:KFC8J5w+ 自分が読めないだけだろ
そしてそのしつこさは...w
そしてそのしつこさは...w
842デフォルトの名無しさん
2020/11/11(水) 21:17:25.54ID:KFC8J5w+ >>840
localというのもあるなw
localというのもあるなw
843デフォルトの名無しさん
2020/11/11(水) 21:20:32.92ID:auS5YaT3 シェル変数といったり環境変数といったり
めちゃくちゃだよなw
めちゃくちゃだよなw
844デフォルトの名無しさん
2020/11/11(水) 22:41:53.94ID:s9R9EURF path=...
があるだけで、以降の処理はだいたい残念なことになってまう、みたいなシェルはあったような。
でも、しゃあない。
そういう事故は飲むしかない。
イヤでもあきらめろ。
があるだけで、以降の処理はだいたい残念なことになってまう、みたいなシェルはあったような。
でも、しゃあない。
そういう事故は飲むしかない。
イヤでもあきらめろ。
845デフォルトの名無しさん
2020/11/12(木) 00:04:37.86ID:BEseEgkn シェルスクリプトが環境変数の書き換えに弱いというのはまだ分かるんだが,
それを「シェルスクリプト特有の」欠点みたいに呼ぶのはよく分からん。
・環境変数を「意図せず」書き換えてしまうこと
・環境変数を「悪意を持って」書き換えられること
こういう事態に弱いのは別にシェルスクリプトに限ったことじゃないでしょう。
具体例を出さなきゃ納得できない人もいそうなんで一つだけ挙げますね。
$LD_LIBRARY_PATH。
それを「シェルスクリプト特有の」欠点みたいに呼ぶのはよく分からん。
・環境変数を「意図せず」書き換えてしまうこと
・環境変数を「悪意を持って」書き換えられること
こういう事態に弱いのは別にシェルスクリプトに限ったことじゃないでしょう。
具体例を出さなきゃ納得できない人もいそうなんで一つだけ挙げますね。
$LD_LIBRARY_PATH。
846デフォルトの名無しさん
2020/11/12(木) 01:27:16.52ID:V4Sk/AjY 環境変数を意図せず書き換えてしまうとは、環境変数を触るつもりが全くないのにってことでしょ
シェルスクリプトに限らずって、他にそういうのなんかあったっけ
シェルスクリプトに限らずって、他にそういうのなんかあったっけ
847デフォルトの名無しさん
2020/11/12(木) 04:20:19.45ID:kQyOkhX7 環境変数ってUnixやLinuxに限らず
Windowsにだってめちゃくちゃ使われてるぞ
Windowsにだってめちゃくちゃ使われてるぞ
848デフォルトの名無しさん
2020/11/12(木) 04:34:19.99ID:1ZLHCloS 環境変数PATH、有名なので間違えて書き換えたりしない
LD_LIBRARY_PATH、名前がかぶることはまずない
なぁ、実害あるん?
LD_LIBRARY_PATH、名前がかぶることはまずない
なぁ、実害あるん?
849デフォルトの名無しさん
2020/11/12(木) 05:19:49.92ID:DEOHcohA シェルスクリプトは変数と環境変数のアクセスする違いがないってことだろうに
あくまでもローカル変数と使うつもりだったのにうっかりという
システムでの環境変数って言ってもそんな有名どころのではなくてもオレオレでというのはあるだろうに
視野が広いのか狭いのかなんなのか、ズレテルな
あくまでもローカル変数と使うつもりだったのにうっかりという
システムでの環境変数って言ってもそんな有名どころのではなくてもオレオレでというのはあるだろうに
視野が広いのか狭いのかなんなのか、ズレテルな
850デフォルトの名無しさん
2020/11/12(木) 08:59:00.57ID:NniWGdD3 プログラムのテストでシェルスクリプト使うだろ。
使わないのはテストしないからか
使わないのはテストしないからか
851デフォルトの名無しさん
2020/11/12(木) 10:16:41.65ID:1ZLHCloS852デフォルトの名無しさん
2020/11/12(木) 12:18:32.48ID:1kfP87l6853デフォルトの名無しさん
2020/11/12(木) 12:21:54.36ID:1kfP87l6854デフォルトの名無しさん
2020/11/12(木) 13:43:18.74ID:OA6SFmf/ 環境変数を「意図せず」書き換えてしまうことはあるが
その結果、問題が発生することはないって話だよ
だって環境変数を書き換えたとしても、最悪でも
自分とその子孫のプロセスにか影響がないから
システムを壊したりすることがない
その結果、問題が発生することはないって話だよ
だって環境変数を書き換えたとしても、最悪でも
自分とその子孫のプロセスにか影響がないから
システムを壊したりすることがない
855デフォルトの名無しさん
2020/11/12(木) 13:48:31.03ID:1kfP87l6856デフォルトの名無しさん
2020/11/12(木) 14:09:44.21ID:OA6SFmf/ >>836でかいてあるだろ
> うっかりシステムに関係する変数を書き換えると
> 大騒ぎになるかも
システムに関する変数を書き換えても、自分のプロセスとそれ以下にしか
影響がないから大騒ぎになんかならん
それにシステムに関する変数といっても数えられる程度しかない
> うっかりシステムに関係する変数を書き換えると
> 大騒ぎになるかも
システムに関する変数を書き換えても、自分のプロセスとそれ以下にしか
影響がないから大騒ぎになんかならん
それにシステムに関する変数といっても数えられる程度しかない
857デフォルトの名無しさん
2020/11/12(木) 14:57:57.53ID:kygpD0ad プログラムってシェルから起動するんじゃないの?
858デフォルトの名無しさん
2020/11/12(木) 15:13:27.21ID:f5BAQJxF fork元がshellならそうだね
859デフォルトの名無しさん
2020/11/12(木) 15:30:36.85ID:1kfP87l6 >>856
大物の起動スクリプトとかでやらかすと、騒ぎにはなりうる。
init系とか.*rcとかcronとかでも。
初見ではわけがわからんかったりするしな。
まあ、個人的には、そういうものだと思ってるが。
おかげでラクなところもあるし、しゃあない。
大物の起動スクリプトとかでやらかすと、騒ぎにはなりうる。
init系とか.*rcとかcronとかでも。
初見ではわけがわからんかったりするしな。
まあ、個人的には、そういうものだと思ってるが。
おかげでラクなところもあるし、しゃあない。
860デフォルトの名無しさん
2020/11/12(木) 16:55:55.29ID:s02jb8N+ WindowsだとADと連携させたりして、レジストリのアクセス制御が容易とか、そういう話?
861デフォルトの名無しさん
2020/11/12(木) 17:49:14.13ID:OA6SFmf/ >>859
> 大物の起動スクリプトとかでやらかすと、
だから何をやらかすんだよw
環境変数PATHを書き換えてしまったんだ
って「だけ」の話をしてるんか?
何をやらかしたのかを言わずに、
ずっとやらかししまうって言ってるだけじゃんか
> 大物の起動スクリプトとかでやらかすと、
だから何をやらかすんだよw
環境変数PATHを書き換えてしまったんだ
って「だけ」の話をしてるんか?
何をやらかしたのかを言わずに、
ずっとやらかししまうって言ってるだけじゃんか
862デフォルトの名無しさん
2020/11/13(金) 02:11:25.86ID:Rmv9apnz ↑ こいつの知見の無さが半端ない。なのになぜか偉そう。頭悪そう
863デフォルトの名無しさん
2020/11/13(金) 02:52:22.83ID:F3tZoo3K わからないから質問してるのに
それにたいしてわからんのかと言われても
最初から、わからんと言ってるんだがとしか言えない
それで、何をやらかすんだ?
それにたいしてわからんのかと言われても
最初から、わからんと言ってるんだがとしか言えない
それで、何をやらかすんだ?
864デフォルトの名無しさん
2020/11/13(金) 11:56:10.07ID:4qY0TlDt 具体的なケースはわりとどうでもいいから。
パスでもプロキシでも、環境変数はちょくちょく影響がある。
それが想像つかんのなら、もうからまんでええんちゃう?
パスでもプロキシでも、環境変数はちょくちょく影響がある。
それが想像つかんのなら、もうからまんでええんちゃう?
865デフォルトの名無しさん
2020/11/13(金) 12:58:09.35ID:es502k4w 複数のシェルスクリプトをカスケードで読む場合
変数の管理がめんどくさくなるかな
sourceしたりして他のシェルスクリプトと非同期で
動かすとさらに複雑になる
変数の管理がめんどくさくなるかな
sourceしたりして他のシェルスクリプトと非同期で
動かすとさらに複雑になる
866デフォルトの名無しさん
2020/11/13(金) 13:19:38.00ID:A88QmKc9 >>864
逃げるなよw
具体的なケースが重要
PATH変数とHTTP_PROXY変数だっていいたのだろうが "それだけ" だろう?
しかもシステム設定を変えるわけじゃない。
何度も言うが自分と子プロセスにしか影響がない。
意図せず変更してしまう可能性がどれだけあるのかと
あと環境変数じゃないなら小文字使えや
逃げるなよw
具体的なケースが重要
PATH変数とHTTP_PROXY変数だっていいたのだろうが "それだけ" だろう?
しかもシステム設定を変えるわけじゃない。
何度も言うが自分と子プロセスにしか影響がない。
意図せず変更してしまう可能性がどれだけあるのかと
あと環境変数じゃないなら小文字使えや
867デフォルトの名無しさん
2020/11/13(金) 13:23:59.15ID:A88QmKc9 >>865
また知ってる単語を使ってみましたみたいな文章だなw
カスケードで読むってなんだよ。誰がそんな用語使ってるんだ?
シェルスクリプトが別なら変数は共有されない
非同期で動かすというなら、それぞれ別のサブシェルになるから
これも変数は共有されない
sourceしたりというなら、グローバル変数のことだろうが
それなら、シェルスクリプトはグローバル変数しかないから
大規模に向かないって言えばいいだけのことだろ?
グローバル変数しかなくてもプリフィックス(を名前空間として考える)を
変数名につければいいだけだがな。それはPOSIXにこだわらないなら
localとかtypesetでローカル変数作れるし
また知ってる単語を使ってみましたみたいな文章だなw
カスケードで読むってなんだよ。誰がそんな用語使ってるんだ?
シェルスクリプトが別なら変数は共有されない
非同期で動かすというなら、それぞれ別のサブシェルになるから
これも変数は共有されない
sourceしたりというなら、グローバル変数のことだろうが
それなら、シェルスクリプトはグローバル変数しかないから
大規模に向かないって言えばいいだけのことだろ?
グローバル変数しかなくてもプリフィックス(を名前空間として考える)を
変数名につければいいだけだがな。それはPOSIXにこだわらないなら
localとかtypesetでローカル変数作れるし
868デフォルトの名無しさん
2020/11/13(金) 14:48:01.16ID:4qY0TlDt869デフォルトの名無しさん
2020/11/13(金) 15:20:10.18ID:S1mNTw0c 結局,「自分が思う(無根拠な)あやうさ」
を放言した結果,鉞が四方八方から飛んできて収集付かなくなった感じかね。
元の発言
> シェルスクリプトの欠点の一つとして
> シェル変数を気軽に上書きできるという点がある
> うっかりシステムに関係する変数を書き換えると
> 大騒ぎになるかも
からしてまあシェルスクリプト分かってんのかってツッコみたくなる点が幾つもあるし。
もう散々上で叩いたからこれ以上は責めるのを止すが。
を放言した結果,鉞が四方八方から飛んできて収集付かなくなった感じかね。
元の発言
> シェルスクリプトの欠点の一つとして
> シェル変数を気軽に上書きできるという点がある
> うっかりシステムに関係する変数を書き換えると
> 大騒ぎになるかも
からしてまあシェルスクリプト分かってんのかってツッコみたくなる点が幾つもあるし。
もう散々上で叩いたからこれ以上は責めるのを止すが。
870デフォルトの名無しさん
2020/11/13(金) 18:14:52.09ID:4qY0TlDt それは双方同等。
「自分が思う(無根拠な)大丈夫さ」だから。
ま、一回事故らんと身に染みないことではある。
「自分が思う(無根拠な)大丈夫さ」だから。
ま、一回事故らんと身に染みないことではある。
871デフォルトの名無しさん
2020/11/13(金) 18:21:34.11ID:A88QmKc9872デフォルトの名無しさん
2020/11/13(金) 18:22:01.01ID:A88QmKc9873デフォルトの名無しさん
2020/11/13(金) 18:27:23.64ID:A88QmKc9 自分の体験談を言えばいいだけだと思うんだがねぇ
たまたま自分のアプリで LD_LIBRARY_PATHという変数を使っていたら
これと同じ環境変数を○○アプリが使っていて困りましたとかさぁ
実際の体験談ね。架空の体験談じゃなくてw
たまたま自分のアプリで LD_LIBRARY_PATHという変数を使っていたら
これと同じ環境変数を○○アプリが使っていて困りましたとかさぁ
実際の体験談ね。架空の体験談じゃなくてw
874デフォルトの名無しさん
2020/11/13(金) 19:29:50.68ID:du2laNOa PATHを書き換えて、コマンドサーチパスの優先順位変わって意図しないバージョンのコマンドを実行してしまって、コマンドの互換性に問題あって、大事なファイルを破壊してしまったとか
そういうのはあるんじゃない
そういうのはあるんじゃない
875デフォルトの名無しさん
2020/11/13(金) 19:55:53.16ID:A88QmKc9876デフォルトの名無しさん
2020/11/13(金) 21:49:53.46ID:uCeIaRFr877デフォルトの名無しさん
2020/11/14(土) 00:25:29.47ID:ZrW/GOpe878デフォルトの名無しさん
2020/11/14(土) 00:37:43.34ID:3AniUInE879デフォルトの名無しさん
2020/11/14(土) 12:11:16.48ID:ZrW/GOpe ここまで問いつめて一つも実例が出ない……。
あのね,自分の考えを矯正せざるえない正しい情報は耳障りかも知れないけど,
もう一度聞いてくれ。
「環境変数(⊂シェル変数)を外部から書き換えて,システムに損害を及ぼす」
ことは可能だけど,
シェル引数がプロセス間でどう引き継がれるかというのはPOSIXで定められていて,
要すれば「変数の書き換えの影響が及ぶのはその書き換え後にそのプロセスから
遂行したシェル(スクリプト)のみ」っていう決まりなのよ。
で,「変数を書き換えるとシステムに損害を及ぼす」ようなシェルスクリプトっていうのは
「システムを管理するシェルスクリプト」であって,
そんなシェルスクリプトを「遂行する前に」変数を書き換えられるような状態においては,
もはや「環境変数の書き換え」なんていう攻撃℃闥iを取らなくても,
簡単にシステムをぶっ壊せる。
逆に例えばマトモな許可設定がなされてるサーバーに対して,
クライアントが環境変数を書き換えてサーバーのシステムを壊すなんてことはできない。
あのね,自分の考えを矯正せざるえない正しい情報は耳障りかも知れないけど,
もう一度聞いてくれ。
「環境変数(⊂シェル変数)を外部から書き換えて,システムに損害を及ぼす」
ことは可能だけど,
シェル引数がプロセス間でどう引き継がれるかというのはPOSIXで定められていて,
要すれば「変数の書き換えの影響が及ぶのはその書き換え後にそのプロセスから
遂行したシェル(スクリプト)のみ」っていう決まりなのよ。
で,「変数を書き換えるとシステムに損害を及ぼす」ようなシェルスクリプトっていうのは
「システムを管理するシェルスクリプト」であって,
そんなシェルスクリプトを「遂行する前に」変数を書き換えられるような状態においては,
もはや「環境変数の書き換え」なんていう攻撃℃闥iを取らなくても,
簡単にシステムをぶっ壊せる。
逆に例えばマトモな許可設定がなされてるサーバーに対して,
クライアントが環境変数を書き換えてサーバーのシステムを壊すなんてことはできない。
880デフォルトの名無しさん
2020/11/14(土) 12:14:10.37ID:ZrW/GOpe はぁ〜〜無駄な熱量を使っちまった……
バカは放っておくのが一番なのは理解しているんだが,
初学者がもしもこのバカの発言を間に受けたら
勉強が進んで己の知識を修正するまで
間違った知識で行動する訳で,それは可哀そうなのでね。
バカは放っておくのが一番なのは理解しているんだが,
初学者がもしもこのバカの発言を間に受けたら
勉強が進んで己の知識を修正するまで
間違った知識で行動する訳で,それは可哀そうなのでね。
881デフォルトの名無しさん
2020/11/14(土) 12:19:51.30ID:WE59Iknb シェルスクリプトはセキュリティホール
揺るぎない真実に向き合え
揺るぎない真実に向き合え
882デフォルトの名無しさん
2020/11/14(土) 12:30:38.87ID:kdUuCuZx >>879
攻撃の話はしてないよ
単に環境変数を書き換えることで他のプロセスに影響を与えることはできるけど
そもそもその環境変数なんてわずかしかないんだから
大騒ぎするまでのことはないよねって話してる
それに対して問題がー、問題がーってしつこく言ってるやつが居るから
お前実際にどんな問題が起きたことあるんだ?って聞いてるんだが
その答えは帰ってこないし、帰ってきてもそれだけだよね?程度の話だった
これがここまでの結論
攻撃の話はしてないよ
単に環境変数を書き換えることで他のプロセスに影響を与えることはできるけど
そもそもその環境変数なんてわずかしかないんだから
大騒ぎするまでのことはないよねって話してる
それに対して問題がー、問題がーってしつこく言ってるやつが居るから
お前実際にどんな問題が起きたことあるんだ?って聞いてるんだが
その答えは帰ってこないし、帰ってきてもそれだけだよね?程度の話だった
これがここまでの結論
883デフォルトの名無しさん
2020/11/14(土) 12:35:19.46ID:QzputhfI 日本語がぎこちないので ID:ZrW/GOpe は馬鹿確定
884デフォルトの名無しさん
2020/11/14(土) 13:34:21.21ID:ZrW/GOpe 知識で勝てなくて悔しいのう
885デフォルトの名無しさん
2020/11/14(土) 13:42:24.75ID:5XkrS48F 俺が実際どんな問題があった?って聞いてるんだから
俺の話を横取りするな
俺の話を横取りするな
886デフォルトの名無しさん
2020/11/14(土) 14:45:22.49ID:i/Cc0DGY 自分も具体例を聞きたい
887デフォルトの名無しさん
2020/11/14(土) 14:48:05.38ID:DnZAmAgg ワイもワイも
888デフォルトの名無しさん
2020/11/14(土) 15:46:11.26ID:hNMhXONs セキュリティの問題ではないけど
PWDをシェルスクリプトの中で変数として使うと
システムに勝手に書き変えられて
思ったように動かないかもしれないな
PWDをシェルスクリプトの中で変数として使うと
システムに勝手に書き変えられて
思ったように動かないかもしれないな
889デフォルトの名無しさん
2020/11/14(土) 21:48:21.52ID:9DKCECFD 責任の遂行
890デフォルトの名無しさん
2020/11/14(土) 23:28:38.65ID:ZrW/GOpe891デフォルトの名無しさん
2020/11/14(土) 23:40:33.62ID:1QU8t+0x シェルスクリプト以外でPWDを使うことってあるんだろうか?
そもそもPWDはシェル変数ではあるが環境変数なのか?
他の言語でPWDがあることを前提としていいのだろうか?
またシェルスクリプトとかでは起動時に現在のカレントディレクトリに
設定されると思うので影響があるのは自分自身だけだろうな
そもそもPWDはシェル変数ではあるが環境変数なのか?
他の言語でPWDがあることを前提としていいのだろうか?
またシェルスクリプトとかでは起動時に現在のカレントディレクトリに
設定されると思うので影響があるのは自分自身だけだろうな
892デフォルトの名無しさん
2020/11/15(日) 09:04:33.27ID:bhsguIlX ん? 相対名でファイルをオープンするときとかどうなってると?
893デフォルトの名無しさん
2020/11/15(日) 11:54:09.26ID:ofPGnU/6 >>892
PWDはただのカレントディレクトリを
変数に入れただけだよ
カレントディレクトリのことではない
cdしたときにシェル変数PWDとOLDPWDに
カレントディレクトリを入れるだけのこと
他の言語ではPWDやOLDPWDは参照しない
環境変数でしかないから
PWDはただのカレントディレクトリを
変数に入れただけだよ
カレントディレクトリのことではない
cdしたときにシェル変数PWDとOLDPWDに
カレントディレクトリを入れるだけのこと
他の言語ではPWDやOLDPWDは参照しない
環境変数でしかないから
894デフォルトの名無しさん
2020/11/15(日) 18:03:22.63ID:h835C+/M ていうかシェルでもPWDを参照することは少ないでしょう。
「カレントディレクトリ」を指し示したかったらpwdを使うかな。
ちなみに,当然分かっているとは思うけど,
C言語やPythonでも$PWDは参照できる。
ただまぁ,それをやってるプログラムは,$PWDを参照している
シェルスクリプトと同じくらい数少ないと思うけどね。
「カレントディレクトリ」を指し示したかったらpwdを使うかな。
ちなみに,当然分かっているとは思うけど,
C言語やPythonでも$PWDは参照できる。
ただまぁ,それをやってるプログラムは,$PWDを参照している
シェルスクリプトと同じくらい数少ないと思うけどね。
895デフォルトの名無しさん
2020/11/15(日) 18:36:18.33ID:bhsguIlX なるほど。
カレントディレクトリを知りたいときにPWDを参照したら楽かもねってだけか。
それ以外には影響を及ぼさない。
勝手にPWDに依存するスクリプトやコマンドはあるかもしれんがw
カレントディレクトリを知りたいときにPWDを参照したら楽かもねってだけか。
それ以外には影響を及ぼさない。
勝手にPWDに依存するスクリプトやコマンドはあるかもしれんがw
896デフォルトの名無しさん
2020/11/15(日) 18:41:31.75ID:ofPGnU/6 え?普通$PWDの方を使うでしょ
pwdにメリットなんてあるの?
デメリットならいくつか言える
外部コマンドなので遅い
ほどんどの場合、結局変数に入れて使う
変数に入れる時に標準出力経由でやるから更に遅い
変数展開が使えないから、/foo/bar/baz からbazだけを取るのが面倒で遅い
(まずありえないけど)改行で終わるディレクトリが正しく取れない(工夫すれば取れるけど)
唯一のメリットはPWDの内容と実際のカレントディレクトリが違う場合が
あることだけど、PWDはシェルスクリプト起動時に初期化されるので
意図的に変更しないとそうはならない。どうしてもPWDを
カレントディレクトリに初期化したいなら cd . でも実行すればいい
> C言語やPythonでも$PWDは参照できる。
それはPWDが環境変数としてエクスポートされてる場合でしょ?
unset PWDしてから起動しても参照できるって保証はあるの?
pwdにメリットなんてあるの?
デメリットならいくつか言える
外部コマンドなので遅い
ほどんどの場合、結局変数に入れて使う
変数に入れる時に標準出力経由でやるから更に遅い
変数展開が使えないから、/foo/bar/baz からbazだけを取るのが面倒で遅い
(まずありえないけど)改行で終わるディレクトリが正しく取れない(工夫すれば取れるけど)
唯一のメリットはPWDの内容と実際のカレントディレクトリが違う場合が
あることだけど、PWDはシェルスクリプト起動時に初期化されるので
意図的に変更しないとそうはならない。どうしてもPWDを
カレントディレクトリに初期化したいなら cd . でも実行すればいい
> C言語やPythonでも$PWDは参照できる。
それはPWDが環境変数としてエクスポートされてる場合でしょ?
unset PWDしてから起動しても参照できるって保証はあるの?
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 中国通ジャーナリスト「高市首相が反省、撤回必要ない…こういう外交待っていた」「日本のレッドラインを明確に示した」 ★2 [お断り★]
- 高市首相を「こんなバカ」呼ばわりで物議…人気ミュージシャンが声明「感情的で稚拙だった。適切な言い方でなかった」 [muffin★]
- 舛添要一「日本は亡国への道をひた走り」「相対的国力は中国が増大し日本が低下している」 [冬月記者★]
- 芸能界ケンカ最強番付を発表「リングなら岡田准一」 横浜流星&新田真剣佑の名前も 1番強いのは誰か [牛丼★]
- 【物価高対策】「おこめ券を配布しません」大阪府交野の市長が明言「経費率が高い」「今高い米をムリして…」 [1ゲットロボ★]
- たぬかなの“結婚隠し”に「弱者男性ビジネス」の声…本人が異例の対応「支払いの履歴持ってきてくれたら返金するから連絡してや」 [muffin★]
- プーアノンの王たる俺が次の世代の日本の権力者になることは決定してる。お前ら、今のうちにゴマすっておいたほうがいいぞ [805596214]
- Vプリカ便利すぎワロタ
- 今の政治家って「上辺だけでも国民にいいとこ見せとくか」みたいなのすらもう無いよな。完全に舐められきってる。こんな国に誰がした? [976717553]
- 「ドイツの科学は世界一ィィィィ!」👈これをどう英訳するかで英語力モロバレルだよWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
- TBS山本恵里伽アナ「今の日本社会は世界平和や反戦など当たり前のことを言えない空気になっている」これもう新しい戦前だろ高市 [931948549]
- 🌳🪨🏡🪨🪨🌳🪨🏡🏜
