Open4
Linux で自分が書き込みできないファイルを作成する
簡単なようで意外と落とし穴があるような気もするのでメモ。
なお、自分は sudo
などができないという設定。
普通に書き込み権限を外す
$ echo 123 > abc.txt
$ chmod u-w abc.txt
$ echo 456 > abc.txt
-bash: abc.txt: Permission denied
ファイルのオーナーは自分のままなので戻せる。
$ chmod u+w abc.txt
$ echo 456 > abc.txt
$ cat abc.txt
456
オーナーを変更してもらう
# chown hankei7km:hankei7km abc.txt
# chmod a-w abc.txt
chmod
できない。
$ echo 789 > abc.txt
-bash: abc.txt: Permission denied
$ chmod u+w abc.txt
chmod: changing permissions of 'abc.txt': Operation not permitted
が、ディレクトリの権限によっては再作成できる。
$ rm abc.txt
rm: remove write-protected regular file 'abc.txt'? y
$ echo ABC > abc.txt
$ cat abc.txt
ABC
書き込みできないディレクトリにファイルを作成してもらう
# echo 123 > /opt/abc.txt
$ cat /opt/abc.txt
123
$ echo 456 > /opt/abc.txt
-bash: /opt/abc.txt: Permission denied
$ rm /opt/abc.txt
rm: remove write-protected regular file '/opt/abc.txt'? y
rm: cannot remove '/opt/abc.txt': Permission denied
普通は最初からこのパターンじゃね?と思うけど、最近はコンテナイメージ作ったりでごちゃごちゃするからという言い訳。