http://www.apple.com/jp/support/panther/index.html
アップル - サポート - Mac OS X v10.3 Panther
たぶん、それは無理です。
や、できるのかな…。
writeを許可した時点で、内容を白紙、もしくは、
スペース文字1文字とかたったの1文字とかに
書き換えられたら、それは消去と同じような気がするからです。
なんだか、変な答えですいません…。
僕にもわかりませんが、思った事を回答してみました。
http://www.sixnine.net/cygwin/cygwin-doc/alias.html
alias を利用した小技
aliasを張り替えるのはどうでしょう。
消去命令そのものを別の命令で置き換えてやる。
alias rm=’echo Cannot Delete it! Terminated.’
とか。
ログインユーザに限定したいのでしたら、
シェルをBashにするとすると、
~/home/[ログインユーザー名]/.bashrc
を開いて、上記命令を加えるとうまく動くと思いますよ。
上記URLにaliasの利用方法についての説明があります。
ありがとうございます。参考になりました。UNIX自体まだ初心者なので、すぐには確認できませんが、試してみます。
Mac OS Xのログインユーザーの管理では、書き込みのみを許可するか、閲覧のみを許可するかreadもwriteも許可するか、すべてのアクセスを許可しないかの4パターンなので、ご質問の「readもwriteも許可」した場合は消去もできてしまうはず・・・・だと思います。
消去を防ぐ手だてはないとしても定期的なバックアップである程度の防御は可・・・?
また、複数ユーザーのアクセス権の管理を行うときにはMac OSX Serverが優れもの。
ありがとうございます。やっぱりパーミッションがそれだけの設定しかないのですから、普通に考えたら無理ですよね。前の回答者のymlabさんからシェルのaliasを使うという大変興味深い手法をアドバイス頂いたので、その辺りで試してみます。
http://www.kent-web.com/pubc/axsken/
パーミッションについて
Unix系OSではファイルの削除は書き込みと同じ意味を持ちます。従って、削除のみを不許可にすることは不可能です。
aliasによる方法は、ユーザがTerminalでアクセスする場合は有効ですが、Finderでは残念ながら意味をなしません。
どうしてもユーザの不慮の操作に対する削除を制御したいのであれば、代替手段ですが、ファイルのシンボリックリンクを作成するという方法があります。つまり、別のところにあるオリジナルファイルは残しつつ(書き込みはできます)、作成したリンクファイルをユーザに公開し削除を防ぐことができます。
Finderの「ファイル」->「エイリアスを作る」でエイリアスファイルを作成し、作成したそのファイルユーザに公開する場所におきます。
Terminalからの場合は以下の通りです。
作成したい場所にカレントディレクトリを移動します。
% cd <ディレクトリ>
作成したいファイルのシンボリックリンクを作成します。
% ln -s <オリジナルファイルのパス名>
こうすることで、ユーザがそのファイルを削除してもオリジナルファイルは残っていますので、その場合はまたエイリアス又はリンクを作ればよいわけです。
http://www.ep.sci.hokudai.ac.jp/~inex/y2004/1022/1022.2.html#sti...
最低限 UNIX / Linux [II]
スティッキ−ビットを設定してください。
特定の階層以下すべてを一気に変更するなら
chmod -R 1775 ’ディレクトリ’
ありがとうございます。参考になります。
例えば、ゲストに対して読み書きはOKで削除を制限と過程して、スティキーズを設定したデイレクトリを作成しました。(drwxrwxrwt )
確かにこのレイレクトリ自体は、renameおよび、読み書きはOKで削除はできません。しかし、Macのファインダーからネットワーク越しに書き込んだファイルはユーザーがnobodyで-rw-rw-rw- となり、消去ができてしまいます。
根本的な部分で何か間違っていますでしょうか?
それと、前の回答者へ戻ってコメントする方法が分からないのでkimbaraさんへのレスをここに記します。シェルを使った場合terminalのみ有効ということであれば、ダメですね。ファイルのシンボリックリンクを作成するといった手法の場合、ファイルを公開するだけという目的なら、よさそうですが、ファイルサーバとして随時ファイルの書き込みがあるという前提では難しいよう思いますが、いかがでしょうか?
otaku_mania様の回答は大正解です。先ほどMac OS X 10.3.6で実験してうまくいくことが確認できました。
Terminalを起動して以下の操作をします。
対象ファイルのあるディレクトリに移動します。
% cd <ディレクトリ>
カレントディレクトリに対して、以下のコマンドでスティッキービットを設定します。
% chmod 1777 .
そのディレクトリにあるゲストに読み書きさせたいファイルの権限を設定します。
% chmod 666 <ファイル名>
以上です。別のマシンからFinderでゲストで接続して、そのファイルに対して読み込みができ、また、ファイルの名前変更/削除ができないことを確認しました。Finderでそのファイルの名前変更あるいは削除をしようとするとエラーダイアログが表示されます。なお、設定したスティキービットは設定したフォルダの下全てのファイルに対して影響しますので、そのフォルダはユーザ書き込み可だけど削除は不可のファイルだけをいれて運用する必要があります。
otaku_mania様に対して感謝するとともに、telme様の質問に対して不完全な回答をしてしまったことお詫びいたします。
ありがとうございます。確かにotaku_maniaさんの回答のとおり、スチッキービッとを追加した場合、readとwriteはOKで削除は禁止という項目は果たせます。しかし、私の質問が悪かったのですが、目的はファイルサーバのような形で運用したときに、ユーザーに不用意は削除をさせたくないちょいうことです。
そこで、共有ディレクトリのオーナーにuser1、グループにuserでネットワーク越しのアクセスはuser2で行う。削除はuser1のみで行うという形を望んでいます。
user1 全権限
user2 read+writeはOKで削除NG
group user(user1・user2)
現状では、ネットワーク越しにuser2で書き込んだファイルはuser2で削除できてしまうと思うのですが、いかがでしょうか?
URLはダミー。
アクセス権の設定でそのようなことはできるかもしれませんが、アプリケーションによっては正常に動作しなくなる可能性があります。
たとえば、あるアプリケーションがファイルを保存するときに次のような動作するとしましょう。
(1)現在の内容を適当なファイル名で書き込む
(2)古いファイルを削除
(3)(1)で書き込んだファイルのファイル名を変更
このアプリケーションは、(2)でファイル削除に失敗するので結果的にファイルの保存に失敗することになります。
このような動作をするアプリケーションは結構あります(Win版Microsoft Wordは有名)。
ですので、ファイルを消されないようにするよりはファイルを消されても困らない、つまりファイルのバックアップ方法をちゃんと検討した方が良いでしょう。
返事が遅くなってすいません。そですね、もう一度、根本から考え直す必要がありますね。
普通に考えたらダメそうでずけど。ただ、上書きはOKで削除のみ制御したいんですが。