私はLinuxのワンステップ(コマンド)でフォルダとそのすべてのサブフォルダとファイルのアクセス権を変更したいと思います。
私はすでに下記のコマンドを試してみましたが、それは言及されたフォルダに対してのみ機能します:
chmod 775 /opt/lampp/htdocs
chmod 755
、およびサブフォルダーやファイルを含むそのすべての内容に/opt/lampp/htdocs
を設定する方法はありますか?
また、将来、htdocs
内に新しいフォルダーやファイルを作成した場合、そのアクセス許可を自動的に755
に設定する方法はありますか。
私もこのリンクを見ました:
http://stackoverflow.com/questions/3740187/how-to-set-default-chmod-in-linux-terminal
chmod -R 755
はこれらのパーミッションをツリー内のすべてのファイルとサブフォルダーに設定するという点で他の答えは正しいです。 しかし、なぜあなたはあなたがしたいのですか ?ディレクトリには意味があるかもしれませんが、なぜすべてのファイルに実行ビットを設定するのでしょうか。
あなたが本当にしたいのは、ディレクトリを755に設定し、ファイルをそのままにするか644に設定することです。これには、find
コマンドを使用できます。例えば:
すべてのディレクトリを755(drwxr-xr-x
)に変更するには
find /opt/lampp/htdocs -type d -exec chmod 755 {} \;
すべてのファイルを644(-rw-r--r--
)に変更するには
find /opt/lampp/htdocs -type f -exec chmod 644 {} \;
-Rオプションを確認してください。
chmod -R <permissionsettings> <dirname>
将来的には、最初にmanページをチェックすることで多くの時間を節約することができます。
man <command name>
だからこの場合:
man chmod
すべてのファイルのアクセス権をa+r
に、すべてのディレクトリのアクセス権をa+x
に設定し、それを完全なサブディレクトリツリーを介して再帰的に設定する場合は、次のようにします。
chmod -R a+rX *
X
(つまり、大文字のX
であり、小さいx
!であることは無視されます)(ファイルが既に誰かに実行可能である場合を除く)は無視されますが、ディレクトリには使用されます。
-R
をchmod
と一緒に使用して、すべてのファイルおよびサブフォルダーを再帰的にたどることができます。
Sudoは _ lamp _ が現在のユーザによってインストールされているか、他のユーザによってインストールされているかによって異なります。
Sudo chmod 755 -R /opt/lampp/htdocs
すべてのサブフォルダに(再帰的に)設定するには、-Rを使用します。
chmod 755 /folder -R
そしてumaskを使ってデフォルトを新しいフォルダ/ファイルに設定します。cd/folder umask 755
正しい再帰コマンドは次のとおりです。
Sudo chmod 755 -R /opt/lampp/htdocs
-R
:現在のフォルダを含むすべてのサブフォルダを変更します
chmod 755 -R /opt/lampp/htdocs
は再帰的にパーミッションを設定します。アクセス許可を設定した後に作成されるこのディレクトリのみにファイルのアクセス許可を自動的に設定する方法はありませんが、umask 022
を設定することでシステム全体の既定のファイルアクセス許可を変更できます。
スーパーユーザーのnik で与えられた答えを検討し、すべてのファイル/フォルダーに次のように "one chmod"を使用することをお勧めします。
chmod 755 $(find /path/to/base/dir -type d)
chmod 644 $(find /path/to/base/dir -type f)
つかいます:
Sudo chmod 755 -R /whatever/your/directory/is
ただし、注意してください。あなたが間違ったファイル/フォルダの許可を変更するなら、それは本当にあなたを傷つけることができます。
ディレクトリを775に、ファイルを664に設定する別の方法があります。
find /opt/lampp/htdocs \
\( -type f -exec chmod ug+rw,o+r {} \; \) , \
\( -type d -exec chmod ug+rwxs,o+rx {} \; \)
長く見えるかもしれませんが、3つの理由でかなりクールです。
man
ページから直接テクニックを使います(下記参照)。このソリューションと(Peter Mortensenのソリューションのように)2つのfindコマンドを使用した場合のパフォーマンスの違い(あるとしても)を確認していないことに注意してください。しかし、マニュアルの中に似たような例を見ておくことはお勧めです。
man find
ページからの例:
find / \
\( -perm -4000 -fprintf /root/suid.txt %#m %u %p\n \) , \
\( -size +100M -fprintf /root/big.txt %-10s %p\n \)
Traverse the filesystem just once, listing setuid files and direc‐
tories into /root/suid.txt and large files into /root/big.txt.
乾杯
chmod -R 755 directory_name
は動作しますが、どのようにして新しいファイルを755に保存しますか?ファイルの権限がデフォルトの権限になります。
あなたは適切なファイルとディレクトリがchmodされている/それらのパーミッションが適切であることを確認したいです。あなたが望むすべてのディレクトリに対して
find /opt/lampp/htdocs -type d -exec chmod 711 {} \;
そして、JavaScript、CSS、HTMLなど、すべての画像について実行するべきではありません。だから使う
chmod 644 img/* js/* html/*
しかし、すべてのロジックコード(たとえばPHP code)に対して、ユーザーがそのコードを見ることができないように権限を設定する必要があります。
chmod 600 file
Mac OS X 10.7(Lion)の場合、次のとおりです。
chmod -R 755 /directory
そしてそう、他のすべてが言うように、これをするとき注意してください。
私はAdamが/opt/lampp/htdocs
ディレクトリを操作しようとしているすべてのプロセスのumask値を変更する方法を求めていたと思います。
ユーザーファイル作成モードマスク(umask)は、新しく作成されたファイルに対するファイル許可を決定するために使用されます。新しいファイルに対するデフォルトのファイル許可を制御するために使用できます。
したがって、ファイルを/opt/lampp/htdocs
にアップロードするために何らかのftpプログラムを使用する場合は、必要なumaskを使用するようにftpサーバーを構成する必要があります。
例えばphpによってファイル/ディレクトリが作成される場合、あなたはphpコードを修正する必要があります。
<?php
umask(0022);
// other code
?>
bashセッションから新しいファイル/フォルダを作成する場合は、シェルプロファイルにumask値を設定することができます。〜/ .bashrcまたはすべてのユーザーに対して/etc/bashrc
または/etc/profile
ファイルにumaskを設定することができます。以下をファイルに追加します。umask 022
Sample umask Values and File Creation Permissions
If umask value set to User permission Group permission Others permission
000 all all all
007 all all none
027 all read / execute none
そして既に作成されたファイルのパーミッションを変更するためにあなたはfindを使うことができます。お役に立てれば。
ファイルを見つけてそれらにchmod
を適用することには2つの答えがあります。最初のものはファイルのfind
であり、(@WombleGoneBadによって示唆されるように)それが見つけたときにchmod
を適用します。
find /opt/lampp/htdocs -type d -exec chmod 755 {} \;
2番目の解決策は、find
コマンドですべてのファイルのリストを生成し、このリストをchmod
コマンドに提供することです(@lamgeshで推奨されているように)。
chmod 755 $(find /path/to/base/dir -type d)
find
コマンドによって返されるファイルの数が少ない限り、これらのバージョンはどちらもうまく機能します。 2番目の方法は、最初の方法よりも見やすく、読みやすくなっています。多数のファイルがある場合、2番目のソリューションはエラーを返します。Argument list too long.
だから私の提案は
chmod -R 755 /opt/lampp/htdocs
を使用してください。find /opt/lampp/htdocs -type d -exec chmod 755 {} \;
を使用してください。 -type x
オプションは特定の種類のファイルのみを検索します。ここで、dはディレクトリの検索に、fはファイルの検索に、lはリンクの検索に使用されます。chmod 755 $(find /path/to/base/dir -type d)
を使用してくださいとても簡単です。
ターミナルでファイルマネージャに行きます。例:Sudo nemo
。 /opt/
に行き、 プロパティ→権限 をクリックします。そして その他 。最後に、作成および削除し、読み書きするためにファイルアクセスに変更して適用ボタンをクリックします。