如何打开只读 bash shell

如何打开只读 bash shell

我想浏览一些文件而不修改它们。我知道我可以避免使用某些命令,但我担心会意外发生一些事情。

有没有办法创建一个没有权限写入任何内容的 bash 子 shell?就像是bash donotmakechanges

我想我可以再创建一个用户,但这感觉有点矫枉过正。

答案1

您可以使用绑定挂载以只读方式挂载目录树。您将需要 root 访问权限。

# 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

注意事项

  1. 您仍然可以访问其他所有用户都可以访问的文件。例如,everyone's文件:

    $ touch everyone\'s
    $ chmod 222 everyone\'s
    

    仍然可写nobody

    $ sudo -u nobody touch everyone\'s
    
  2. 您将可以访问任何人都无法访问的文件。例如,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
    
  3. 用户nobody不得用于此目的,如中所述https://askubuntu.com/a/674397/1086669

  4. 您需要运行权限sudo

除此之外,它确实将通常可写的文件呈现为只读

$ touch mine
$ sudo -u nobody touch mine

相关内容