2017-11-16 10 views
1

私はSolarisサーバーで作業しています。私はすべてのアクセスを持つADMINユーザーを使用していますが、他の同僚はアクセスが制限された別のユーザーを使用しています。 他の人がログにアクセスしたいときは、手動でログフォルダにchmod 755を付けなければなりません。新しいファイルが生成されたら、もう一度chmodを実行しなければなりません。chmodを連続して実行するスクリプト

継続的にいくつかのフォルダ上のすべての2分のchmodを実行するスクリプトを作成する方法はありますか?

+0

[すべての問題は爪ですか?](https://en.wikipedia.org/wiki/Law_of_the_instrument)実際には、作成するファイルの*問題*を、あなたのニーズに合わない権限でロガーの設定、または 'umask'の設定)、不要な複雑さを追加しています。 –

答えて

0

必要なものはcronです。セットアップするには

cronタスク、あなたのADMINユーザーとして次のコマンドを実行します。

crontab -e 

それはあなたが新しい仕事を入力するためのテキストエディタを開きます。テキストエディタ内で次の行を書き、[file1 file2 ... fileN]に置き換えて、ファイルをchmodに置き換えて保存します。 2分ごとにchmodコマンドを実行する必要があります。

*/2 * * * * chmod 755 [file1 file2 ... fileN] 

この最初の解決方法は、すべてのシステムで機能しません。私はSolarisについて本当に知っていませんが、最初の形式に問題がある場合は、分0、分2、分4などで毎時コマンドを実行する回避策があります。分58:

0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,3 6,38,40,42,44,46,48,49,50,52,54,56,58 * * * * chmod 755 [file1 file2 ... fileN] 

あなたはあなたの仕事があなたのcronタスクが一覧表示されますコマンドcrontab -lで正しく保存されたことを確認することができます。

crontabで使用されている形式を理解できるように、cronに関するドキュメントをお読みください。 Here is a good link

+0

ここで/ 2は最初のコマンドで何を意味していますか? – Vishal5364

+0

'*/2'は「2分ごと」を意味します。 '*/5'は「5分ごと」を意味します。 '*/30 'は「30分ごと」などを意味します。 –

1

私はそれはそれはあなたがしたい場合は、デフォルトで新しいログファイルを作成する777の権限まだ

のログ・ファイルの所有者のumask値を変更する方が良いでしょう、2分毎

に権限を割り当てることは良い考えではないと思いますこの

  1. オープンcrontabのような のcrontab -e
  2. は、すべて2分間のコマンドを実行するためにエントリを追加しますあなたのアイデアのように使用し */2 * * * *のchmod -R/path_to_log_folder/
  3. を保存して閉じる:それはviの編集者 プレスXの場合WQ、それはナノエディタ
0

だ場合は、GUIDビットを設定することを検討可能性がエンターキーを押しディレクトリのグループ所有権をこれらの他の人々が属するグループに設定することです。

そうすれば、ディレクトリ内に作成されたファイルは、自動的に、常にではなく、それらを作成しているユーザーよりもディレクトリのグループを継承します。あなたのログファイルが/var/log/somewhereである場合、具体的には、あなたがどうなるので

、:

chmod g+s /var/log/somewhere 
chgrp OTHERADMINSGROUP /var/log/somewhere 

今テスト、ファイルを作成し、そのグループを見て:

touch /var/log/somewhere/aFile 
ls -l /var/log/somewhere/aFile 

あなたはそのファイルが自分のグループではなくOTHERADMINSGROUPに属していることを確認する必要があります。

関連する問題