ラボ > サーバ:linux系

ファイルを修正、保存時にエラー

権限の問題...

作成日:2024-12-13, 更新日:2024-12-13

概要

  1. 以前に作ったサイトを久しぶりに修正することになった
  2. 「Permission denied」となり修正ができない
  3. 他の人が絡んでいたため、設定がかわっていたっぽい…

対策

  • 対象ファイルに書き込み権限を追加して、修正後、元にもどす
  • ユーザーグループに自身を追加

対象ファイルに書き込み権限を追加して、作業完了後、元にもどす

手っ取り早い方法

$ chmod 777 〇〇〇

※作業完了後、元の権限に戻しておく

ユーザーグループに自身を追加

ユーザーグループに自分を追加すれば、ユーザーグループの権限によって対応できるのでは?という考えで試す

  • まず、ユーザーグループに誰がいるか確認
  • ユーザー追加
  • ユーザー削除
  • ユーザーの存在確認

まず、ユーザーグループに誰がいるか確認

「ユーザーグループ:apache」にどのユーザーが含まれているか知るには?

$ getent group apache

ユーザー追加

「ユーザーグループ:apache」に「ユーザー:hoge」を追加と確認

$ sudo usermod -aG apache hoge
$ getent group apache

ユーザー削除

もし、不要になったら実行

「ユーザーグループ:apache」から「ユーザー:hoge」を削除と確認

$ sudo gpasswd -d hoge apache
$ getent group apache

ユーザーの存在確認

存在しないユーザーはユーザーグループに追加はできないので確認方法

「ユーザー:hoge」が存在するか確認

$ id hoge

「set times: Operation not permitted」の対策

保存は出来るけど出てくるエラー

set times: Operation not permitted

「setfacl -m」で対応できるらしいんだが...改善されなかった。保存自体は出来ているので、放置

1ファイルだけ設定と確認

$ sudo setfacl -m g:apache:$(getfacl -p /path/to/file | grep "^group::" | cut -d: -f3) /path/to/file
$ getfacl /path/to/file

→依然「set times: Operation not permitted」が出てくる。保存自体は出来ているので、放置

フォルダ内(「-R」を使用)の全部設定と確認

1ファイルのほうで改善されなかったので実行はしていない。ひとまずメモだけしておく

$ sudo setfacl -R -m g:apache:$(getfacl -p /path/to/directory | grep "^group::" | cut -d: -f3) /path/to/directory
$ sudo setfacl -R -m d:g:apache:$(getfacl -p /path/to/directory | grep "^group::" | cut -d: -f3) /path/to/directory
$ getfacl /path/to/directory