質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

Q&A

解決済

1回答

10261閲覧

linux VSCODEで直接変更できない パーミッションエラー・権限操作について

creative_09

総合スコア80

CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

0グッド

0クリップ

投稿2020/06/01 05:49

編集2020/06/01 07:15

linux centosサーバーでlaravelを運用しているのですが
ファイルの変更などをvscodeのターミナルを使って実行するとパーミッションエラーになります。

サーバー上のファイルの所有者、グループはともにapacheとなっています。
これをユーザー、xxxuserでも変更できるようにするにはどうすればよいのでしょうか?

エラーは

'index.blade.php' を保存できませんでした: ファイル 'vscode-remote://ssh-remote・・・・・・・・・・index.blade.php' を書き込むことができません (NoPermissions (FileSystemError): Error: EACCES: permission denied, open '/var/www/html/develop/resources/views/product/index.blade.php')

追記:
その後にやってみたこと
usermod -aG apache xxxuser
としてapcheグループに入れてみました。
この方法も知らなかったです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

前提

運用ポリシーとしては直接コードを触ってしまっても問題無いものであるという前提
(容易にコードを破壊してしまうこととイコールなので、本番環境ではお勧めは出来ません。)

回答

  1. 対象ファイル/ディレクトリの権限を775/664あたりに設定する

chmod 775 {ディレクトリパス}
chmod 664 {ファイルパス}

  1. xxxuserをapacheグループに入れる gpasswd -a xxxuser apache
  2. 一度接続しなおして動作確認

投稿2020/06/01 07:15

tanat

総合スコア18713

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

creative_09

2020/06/01 07:18

ありがとうございます 上記のコードを実行したところ、 gpasswd: Permission denied. となります
creative_09

2020/06/01 07:22

rootになってから、実行してみたところ、実行出来たようですが、 ログインし直してみてもエラー内容が変わらず。。。 反映されていないのでしょうか
tanat

2020/06/01 07:23

gpasswd: Permission denied. 権限が無いというエラーです。 権限がある管理者に実行してもらう rootになってから実行する sudoが出来るなら sudo gpasswd -a xxxuser apache とする のどれかの対応が必要です。 (gpasswd: Permission denied. で検索してみたら上位にLinuxの権限について参考になりそうなサイトが見つかりましたので、一度Linuxの権限について学習されてみることをお勧めします)
creative_09

2020/06/01 07:34

ありがとうございます。 rootになってからの実行で設定はできたようです。 ですが、ログインをやり直してみても、 保存できないエラーは出ております groups コマンドで調べてみました groups xxxuser xxxuser apacheが表示されます また別のユーザーについても調べてみましたら、 groups yyyuser yyyuser wheelが表示されます 少し気になっていますが関係はなさそうですね。。。 xxxuserにつきましてはapacheとなっていますので、なにが問題かわからないです
tanat

2020/06/01 07:43 編集

(問題なさそうなので削除) *usermodはオプションをミスると既存の情報を飛ばしてしまうのでお勧めしません
tanat

2020/06/01 07:38

chmodはされていますか?
tanat

2020/06/01 07:41

ls -al /var/www/html/develop/resources/views/product/ ls -al /var/www/html/develop/resources/views/ あたりで、該当のディレクトリとファイルがグループapacheから編集できる状態になっているか確認してみてください
creative_09

2020/06/01 07:44

ありがとうございます。 上記のコードはふたつとも試しています ちょうど、回答頂いた直前に試していたので追記しました。 その後にgpasswd -a xxxuser apacheを実行いたしました chmod はしていませんが、755です よろしくおねがいします
tanat

2020/06/01 07:48

回答通りにchmodしてみてください。
tanat

2020/06/01 07:54

ディレクトリとファイルのパーミッションはそれぞれ意味が変わるため、別々に設定する必要があります。 また、755では書き込み権限が無いためファイルの上書きは出来ません。
creative_09

2020/06/01 07:57

まず、該当のディレクトリがapacheから編集出来る状態になっているか確認してみましたところ、 該当のフォルダが何故かrootに戻っていました。 ので chown -R apache:apache views でapacheにしました。 その後もエラーは変わらずですので、 chmodをやってみます。 ありがとうございます
tanat

2020/06/01 08:01

通常、PHPはApacheが読めればいいのでApacheによる書き込み権限はつけません。(ApacheやPHPに脆弱性があった場合にサイト改竄がされてしまうため) 自動的に戻っているという事は、何かセキュリティ上の設定がされているのかもしれないので、管理者に相談してからの方が良いかなと思いますよ。 ↑ご自身が管理者なのであれば、何かそういう設定をしていないか確認ですね。
creative_09

2020/06/01 08:05

ありがとうございます。 その通常のお話ですがすごく気になります。 理解が追いついていないのですが、 今回書き込みの権限を与えないと書き込みは出来ない、ですが、書き込み権限は与えないのがセキュリティ上のぞましいということですよね? 自分がやろうとしていることは書き込み権限をあたえないと出来ない。 vscode上でリモート接続して直接編集は現実的ではないということでしょうか? chmodですが、 775もだめで、777にすると編集が保存できました。 この状態は望んでいなかったですが・・・そういうことなんですね。。。
tanat

2020/06/01 08:17 編集

> 自分がやろうとしていることは書き込み権限をあたえないと出来ない。 > vscode上でリモート接続して直接編集は現実的ではないということでしょうか? 運用ポリシー次第です。 例えば、Apacheには書き込み権限を与えず、作業ユーザーグループを別に作ってそちらには書き込み権限を与えるとすればApacheが乗っ取られても危険は最小限に抑えられます。 * その場合、そもそもApacheをオーナーにしない方が色々ミスが少ないですが。 権限の話とは別に、直接編集はとても作業ミスのリスクが高いので、ソースコードはgitで管理してsudo git pullとかしてミスが無い様にするとか CIツールを使って安全にデプロイすることが多いです。 > 775もだめで、777にすると編集が保存できました。 この辺はログアウトがちゃんとできてないとか、グループにちゃんと入っていないとかそういう問題な気がします。 xxxuserの全接続を確実に切断してから再接続する必要があります。 VSCodeでの確実なログアウトの方法は知りませんが、一回VSCodeを終了して、適当なターミナルソフト&適当なテスト用ディレクトリを作る&ターミナル上からvim等で編集してみる ということをすると確認がしやすいです。 最も確実なのはLinux自体を再起動してしまうことですね。
creative_09

2020/06/01 10:12

なるほど。 ありがとうございます。 おかげで色々勉強になりました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問