/ tmpマウント権限が0755でfstabが1777であるのはなぜですか?

/ tmpマウント権限が0755でfstabが1777であるのはなぜですか?

/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

修正は、シンボリックリンクを通常のディレクトリに置き換え、3番目の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を使用する他のスクリプトやユニットはありますか?」

おすすめ記事