読み取り専用環境でtmuxセッションを開始しようとしてエラーが発生します。
pi@raspberry(ro):~/development$ tmux
error creating /tmp//tmux-1000 (Permission denied)
このRaspberry Piプロジェクトでは、予期しない停電が発生する可能性があり、UPSはオプションではありません。 SD カードの損傷を防ぐため、次の説明に従ってシステムを読み取り専用に設定してください。これ投稿(下記から参考のために抜粋)。tmux
このプロジェクトの開発が続いているので、さまざまな理由でまだ使用したいと思います。
tmux
この状況で継続的に利点を活用するにはどうすればよいですか?
読み取り/書き込みと読み取り専用を切り替えるコマンドのエイリアスが指定されている場合は、そのエイリアスの何かを変更する必要がありますrw
か?ro
読み取り専用プロセスの要約
- 編集
/boot/cmdline.txt
と追加fastboot noswap ro
- ロギングの交換
sudo apt-get install -y busybox-syslogd && sudo apt-get remove -y --purge rsyslog
- ファイルを更新し
/etc/fstab
、,ro
すべてのブロックデバイスにフラグを追加します。 - また、ファイルの末尾に一時ファイルシステムのエントリを追加します。
tmpfs /tmp tmpfs nosuid,nodev 0 0
tmpfs /var/log tmpfs nosuid,nodev 0 0
tmpfs /var/tmp tmpfs nosuid,nodev 0 0
- ファイルの移動
$ sudo rm -rf /var/lib/dhcp /var/lib/dhcpcd5 /var/spool /etc/resolv.conf
$ sudo ln -s /tmp /var/lib/dhcp
$ sudo ln -s /tmp /var/lib/dhcpcd5
$ sudo ln -s /tmp /var/spool
$ sudo touch /tmp/dhcpcd.resolv.conf
$ sudo ln -s /tmp/dhcpcd.resolv.conf /etc/resolv.conf
- 編集する
/lib/systemd/system/systemd-random-seed.service
:
[Service]
Type=oneshot
RemainAfterExit=yes
ExecStartPre=/bin/echo "" >/tmp/random-seed
ExecStart=/lib/systemd/systemd-random-seed load
ExecStop=/lib/systemd/systemd-random-seed save
TimeoutSec=30s
- `/etc/bash.bashrc/を追加します。
set_bash_prompt() {
fs_mode=$(mount | sed -n -e "s/^\/dev\/.* on \/ .*(\(r[w|o]\).*/\1/p")
PS1='\[\033[01;32m\]\u@\h${fs_mode:+($fs_mode)}\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
}
alias ro='sudo mount -o remount,ro / ; sudo mount -o remount,ro /boot'
alias rw='sudo mount -o remount,rw / ; sudo mount -o remount,rw /boot'
PROMPT_COMMAND=set_bash_prompt
- 追加
/etc/bash.bash_logout
:
mount -o remount,ro /
mount -o remount,ro /boot
以下を追加するように編集されました。
mode=01777
追加しよう/tmp
としましたが、/etc/fstab/
まだ同じエラーが発生します。
pi@raspberry(ro):~$ cat /etc/fstab
proc /proc proc defaults 0 0
PARTUUID=ea7e04d2-01 /boot vfat defaults,ro 0 2
PARTUUID=ea7e04d2-02 / ext4 defaults,noatime,ro 0 1
# a swapfile is not a swap partition, no line here
# use dphys-swapfile swap[on|off] for that
tmpfs /tmp tmpfs nosuid,nodev,mode=01777 0 0
tmpfs /var/log tmpfs nosuid,nodev 0 0
tmpfs /var/tmp tmpfs nosuid,nodev 0 0
pi@raspberry(ro):~$ tmux
error creating /tmp//tmux-1000 (Permission denied)
パターンでも同じことが起こりますrw
。
#2を追加するように編集されました。
トラブルシューティング:
pi@raspberry(ro):~$ tmux
error creating /tmp//tmux-1000 (Permission denied)
pi@raspberry(ro):~$ ls -ld /tmp/
drwxr-xr-x 8 root root 260 Oct 5 21:17 /tmp/
pi@raspberry(ro):~$ sudo chmod 01777 /tmp
sudo chmod 01777 /tmp
pi@raspberry(ro):~$ tmux ###### IT WORKED!
[exited]
pi@raspberry(ro):~$
成功後sudo chmod
#3を追加するように編集されました。
ファイルにはパターンがtmp.mount
含まれています。01777
pi@raspberry(ro):~$ cat /run/systemd/generator/tmp.mount
# Automatically generated by systemd-fstab-generator
[Unit]
SourcePath=/etc/fstab
Documentation=man:fstab(5) man:systemd-fstab-generator(8)
Before=local-fs.target
[Mount]
Where=/tmp
What=tmpfs
Type=tmpfs
Options=nosuid,nodev,mode=01777
#4を追加するように編集されました。
/tmp
シンボリックリンクではないので、インストールにエラーはないようです...
pi@raspberry(ro):~$ ls -ld /tmp
drwxr-xr-x 8 root root 260 Oct 5 01:44 /tmp
pi@raspberry(ro):~$ sudo systemctl status tmp.mount
* tmp.mount - /tmp
Loaded: loaded (/etc/fstab; generated)
Active: active (mounted) since Sun 2020-10-04 21:59:28 EDT; 1min 46s ago
Where: /tmp
What: tmpfs
Docs: man:fstab(5)
man:systemd-fstab-generator(8)
CGroup: /system.slice/tmp.mount
Oct 04 21:59:27 raspberry systemd[1]: Mounting /tmp...
Oct 04 21:59:28 raspberry systemd[1]: Mounted /tmp.
pi@raspberry(ro):~$ logread |grep tmp
Oct 4 22:01:14 raspberry authpriv.notice sudo: pi : TTY=pts/0 ; PWD=/home/pi ; USER=root ; COMMAND=/bin/systemctl status tmp.mount
答え1
tmpfs
のエントリは、/etc/fstab
ディレクトリの特定のモードを指定しないため、/tmp
を使用して作成されました0700
。項目を次に変更します。
tmpfs /tmp tmpfs nosuid,nodev,mode=01777
のすべてのユーザーを許可します/tmp
。