읽기 전용 환경에서 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
.