いくつかのファイルを変更せずに参照したいと思います。特定のコマンドを使用しない可能性がありますが、予期しないことが起こるのではないかと心配です。
何も書く権限を持たないbashサブシェルを作成する方法はありますか?それはまるでbash donotmakechanges
。
他のユーザーを作成することもできますが、それはあまりにも過度に見えます。
答え1
バインドマウントを使用して、ディレクトリツリーを読み取り専用でマウントできます。ルートアクセスが必要です。
# mount -o ro --bind /home /home_ro
# cd /home_ro
# touch file
touch: cannot touch ‘file’: Read-only file system
次に、/home_roに移動します。
答え2
sudo -u nobody bash
ガイドライン
他のすべてのユーザーがアクセスできるファイルには引き続きアクセスできます。たとえば、
everyone's
ファイル:$ touch everyone\'s $ chmod 222 everyone\'s
それでも次のように書くことができます
nobody
。$ sudo -u nobody touch everyone\'s
他の誰もアクセスできないファイルにアクセスできます。たとえば、
nobody's
ファイル:$ touch nobody\'s $ sudo chown nobody nobody\'s
一般ユーザーは以下を書き込めません。
$ touch nobody\'s touch: cannot touch "nobody's": Permission denied
ただし、次のように書くことができます
nobody
。$ sudo -u nobody touch nobody\'s
ユーザーは、
nobody
次の説明に従ってこの目的に使用することはできません。https://askubuntu.com/a/674397/1086669実行するには権限が必要です。
sudo
それに加えて、通常、書き込み可能ファイルを読み取り専用でレンダリングします。
$ touch mine
$ sudo -u nobody touch mine