長年、私はUnixの権限がどのように機能するかを知るふりをしようとしましたが、実際には何も理解していませんでした。
www-dataはapache2ユーザーです。私のユーザーはsudoアクセス権を持つmy_userです。ルートを使用しています。sudo su -
www-dataには、/var/www/html/
(755 www-data:www-data)のすべての権限があります。
www-dataに接続できず、my_userを使用してこのサーバーにPhpStormをデプロイしたいと思います。
したがって、デフォルトでは、すべてのフォルダはrxなので、www-dataグループへのフルアクセスをrootとして許可します。
chmod -R g+rwx /var/www/html/project/themes
その後、私のユーザーをグループにrootとして追加しました。
usermod -a -G www-data my_user
my_user と phpstorm のデプロイを記録すると、依然として「権限の拒否」が返されます。ユーザーの接続を切断して再接続したところ、これで動作します...何が起こったのですか?だから私はPhpStormを再起動しましたが、今うまくいきます。
新しいフォルダをサーバーにプッシュしましたが、ファイルが一覧表示されます。
ls -la /var/www/html/project/themes
drwxrwx--- 2 my_user my_user 4096 2月15日 09:51 新しいフォルダ
うわー、読み、編集、実行できるようにするには、www-dataが本当に必要です。www-data:www-data
これを行うには、新しいフォルダとファイルを所有したいと思います。しかし、おそらく私が間違っている可能性があります...
もしそうなら、これらの権限の問題に対する最良かつ明確な解決策は何ですか?
答え1
したがって、Unix / Linuxの権限は数字と追加に従って機能します。わかりますか?これを理解すると、状況は非常に簡単になります。権限の観点からは、読み取り(rで表される)、書き込み(wで表される)、および実行(xで表される)の3つの可能な権限を組み合わせて持つことができます。ls -l
端末に入力したときに左の列に表示されるアルファベット文字です。
今、誰にこれらの権限を与えますか?これらの権限は誰にあり、どのように見えますか?まあ、あなたは3つのカテゴリに分けられます。
- ユーザー(つまり、ファイルを所有しているユーザー、つまりファイルを作成/引き継いだユーザー)
- グループ(ファイルが属するユーザーグループ)
- その他(このファイルグループに属していないユーザー)
これらの権限を割り当てて変更するために、この文字にも数字が割り当てられます。r
= 4
w = 2
x = 1
説明する前に目的そのためにどのように機能するかを説明します。それでは、というファイルがあるとしましょうfile.sh
。わかりますか?あなたはそれにいくつかの権限を与えたいと思うスーパーユーザーであり、それが慣習であるので、ugoの権限をその順序で定義しようとします。 rwxを使用できますが、ユーザーに読み取りおよび書き込み権限のみを付与し、他のユーザーに実行権限を付与したくない場合はどうすればよいですか?読み取りおよび実行権限のみを付与し、書き込み権限(読み取り専用実行可能ファイル)を付与したくない場合はどうすればよいですか?ここで数字が働きます。
r = 4
r + w = 6
r + x = 5
r + w + x = 7
したがって、すべての人(ugo)に読み取りおよび書き込み権限を付与するには$ chmod 666 file.txt
。
誰にでも読んで実行する権限を与えたいので、続行してください$ chmod 555 file.txt
。
すべての人に読み取り専用権限を付与したいが、すべての権限は所有者に付与できます$ chmod 744 file.txt
。
すべての人にすべての権利を付与するには、$ chmod 777 file.txt
常にugo:ユーザー - グループ - その他の順に666、555、744、777の番号に移動します。
+r、+w、および+xを使用して個人権限を追加し、-r、-w、および-xを使用して個人権限を削除することもできますが、これはより困難なプロセスです。
$ chmod 777 *
ディレクトリに移動してaを実行し、すべての人にすべての権限を付与して問題を解決することをお勧めします。これは粗く、やや安全ではない修正ですが、この種の問題には常に機能し、誰が見つかるまで問題を解決できます。いいえこれらの権限を付与した後、遡って削除してください。
お役に立てば幸いです。