의 /tmp
경우 가 /etc/fstab
있지만 mode=1777
재부팅 후 권한은 /tmp
입니다 0755
. 다른 디렉터리도 /var/tmp
완전히 동일한 방식으로 구성되어 있지만 이 문제는 없습니다(아래 참조). Ubuntu 18.04 서버를 실행하는 Raspberry Pi입니다. 루트 파일 시스템은 읽기 전용으로 마운트된 microSD 카드입니다.
권한을 영구적으로 만드는 올바른 방법은 무엇입니까 1777
?
다음은 몇 가지 추가 세부정보입니다(클린 부팅 후).
$ touch /tmp/test
touch: cannot touch '/tmp/test': Permission denied
$ whoami
ubuntu
$ ls -ld /tmp /var/tmp
drwxr-xr-x 9 root root 180 Dec 26 13:54 /tmp
drwxrwxrwt 4 root root 80 Dec 26 13:54 /var/tmp
$ mount |grep /tmp
tmpfs on /var/tmp type tmpfs (rw,nosuid,nodev,noexec,noatime,size=65536k)
tmpfs on /tmp type tmpfs (rw,nosuid,nodev,noexec,noatime,size=131072k)
$ grep /tmp /etc/fstab
tmpfs /var/tmp tmpfs defaults,noatime,nosuid,nodev,noexec,mode=1777,size=64M 0 0
tmpfs /tmp tmpfs defaults,noatime,nosuid,nodev,noexec,mode=1777,size=128M 0 0
$ sudo systemctl status tmp.mount
● tmp.mount - /tmp
Loaded: loaded (/etc/fstab; generated)
Active: active (mounted) since Sun 2018-01-28 15:58:18 UTC; 10 months 27 days ago
Where: /tmp
What: tmpfs
Docs: man:fstab(5)
man:systemd-fstab-generator(8)
Process: 642 ExecMount=/bin/mount tmpfs /tmp -t tmpfs -o defaults,noatime,nosuid,nodev,noexec,mode=1777,size=128M (code=exited, status=0/SUCCESS)
Tasks: 0 (limit: 2146)
CGroup: /system.slice/tmp.mount
Jan 28 15:58:18 testsystem systemd[1]: Mounting /tmp...
Jan 28 15:58:18 testsystem systemd[1]: Mounted /tmp.
$ grep -R '/tmp' /etc/tmpfiles.d /usr/lib/tmpfiles.d
/usr/lib/tmpfiles.d/x11.conf:D! /tmp/.X11-unix 1777 root root 10d
/usr/lib/tmpfiles.d/x11.conf:D! /tmp/.ICE-unix 1777 root root 10d
/usr/lib/tmpfiles.d/x11.conf:D! /tmp/.XIM-unix 1777 root root 10d
/usr/lib/tmpfiles.d/x11.conf:D! /tmp/.font-unix 1777 root root 10d
/usr/lib/tmpfiles.d/x11.conf:D! /tmp/.Test-unix 1777 root root 10d
/usr/lib/tmpfiles.d/x11.conf:r! /tmp/.X[0-9]*-lock
/usr/lib/tmpfiles.d/tmp.conf:D /tmp 1777 root root -
/usr/lib/tmpfiles.d/tmp.conf:#q /var/tmp 1777 root root 30d
/usr/lib/tmpfiles.d/tmp.conf:x /tmp/systemd-private-%b-*
/usr/lib/tmpfiles.d/tmp.conf:X /tmp/systemd-private-%b-*/tmp
/usr/lib/tmpfiles.d/tmp.conf:x /var/tmp/systemd-private-%b-*
/usr/lib/tmpfiles.d/tmp.conf:X /var/tmp/systemd-private-%b-*/tmp
/usr/lib/tmpfiles.d/tmp.conf:R! /tmp/systemd-private-*
/usr/lib/tmpfiles.d/tmp.conf:R! /var/tmp/systemd-private-*
$ sudo chmod 1777 /tmp
$ ls -ld /tmp /var/tmp
drwxrwxrwt 9 root root 180 Dec 26 13:55 /tmp
drwxrwxrwt 4 root root 80 Dec 26 13:55 /var/tmp
$ cat /etc/rc.local
#!/bin/bash
service ntp start
exit 0
$ uname -a
Linux testsystem 4.15.0-1030-raspi2 #32-Ubuntu SMP PREEMPT Fri Dec 7 09:15:28 UTC 2018 armv7l armv7l armv7l GNU/Linux
관련된, 답변되지 않은 질문:
답변1
이것은 내 초기 구성의 일부입니다( /
읽기 전용으로 설치된 이후).
sudo rm -rf /var/spool && sudo ln -s /tmp /var/spool
분명히 부팅 시 시스템이 이 작업을 수행하는데 제 경우에는 chmod 755 /var/spool
이것이 변경되었습니다./tmp
수정 사항은 심볼릭 링크를 일반 디렉터리로 바꾸고 세 번째 tmpfs
마운트를 추가하는 것입니다.
sudo rm -rf /var/spool && sudo mkdir /var/spool && sudo chmod 755 /var/spool
echo 'tmpfs /var/spool tmpfs defaults,noatime,nosuid,nodev,noexec,mode=0755,size=64M 0 0' |sudo tee -a /etc/fstab
저에게 올바른 방향을 알려준 모든 사람의 의견에 감사드립니다. 특히 Filipe Brandenburger의 "시작 시 /tmp를 사용하는 다른 스크립트나 유닛이 있습니까?"