Windows で多数のサブフォルダーとファイルを含むフォルダーを 7zip で圧縮し、VPS にアップロードして、次のコマンドを実行します。
tar -xvzf file.tar.gz
すると、解凍されたすべてのファイルとフォルダーの権限は 777 になります。フォルダーの権限を 755、ファイルの権限を 644 にするにはどうすればよいでしょうか?
答え1
tar(1)
通常ユーザーとして実行している場合は、umask
デフォルトで が適用されます。tar(1)
として実行している場合は、を尊重するように求めるコマンド ライン オプションをroot
指定できます。--no-same-permissions
tar(1)
umask
したがって、これを通常のユーザーとして実行します。
umask 022
tar zxvf file.tar.gz
または、次のように実行しますroot
:
umask 022
tar zxvf file.tar.gz --no-same-permissions
、、または をumask 022
挿入することをお勧めします。(起動ファイルの詳細については、man ページを参照してください。複雑です。)~/.bashrc
~/.bash_profile
~/.profile
bash(1)
の詳細については、シェルのマニュアル ページ、システム コールのマニュアル ページ、またはPOSIX 提供のユーティリティのマニュアル ページ (インストールされている場合)umask
を参照してください。umask(2)
umask(1posix)
manpages-posix
答え2
ディレクトリのルートで次のコマンドを実行して、ディレクトリとファイルに必要な権限を設定します。
find . -type d -exec chmod 755 {} \;
find . -type f -exec chmod 644 {} \;
閉じ括弧とバックスラッシュの間のスペースに注意してください
答え3
大文字のXを使用すると、chmod
ディレクトリに対してのみ実行権限を設定できます。つまり、
chmod -R ugo+X .
答え4
見つけてください。-type f -exec chmod 644 {} \;