作成日:2024-12-13, 更新日:2024-12-13
概要
- 以前に作ったサイトを久しぶりに修正することになった
- 「Permission denied」となり修正ができない
- 他の人が絡んでいたため、設定がかわっていたっぽい…
対策
- 対象ファイルに書き込み権限を追加して、修正後、元にもどす
- ユーザーグループに自身を追加
対象ファイルに書き込み権限を追加して、作業完了後、元にもどす
手っ取り早い方法
$ 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