[問題] mount -o uid=m,gid=n 的狀況

作者: cuello (cuello)   2018-10-15 23:18:59
Hi,
請問一下,甚麼情況下可能出現以下的 owner, group 的狀況
在一個 terminal 上 (我是 817.100)
[email protected]:/mnt/sdc1_vfat$ id
uid=817(cuello) gid=100(users) groups=100(users)
[email protected]:/mnt/sdc1_vfat$ ls -ldn .
drwxr-xr-x 16 817 100 4096 Jan 1 1970 .
(這個資料夾是 817.100 的)
[email protected]:/mnt/sdc1_vfat$ ls -CF
(很多東西省略了)
但是在另一個 termninal 上卻是 (我還是 817.100)
[email protected]:/mnt/sdc1_vfat$ id
uid=817(cuello) gid=100(users) groups=100(users)
[email protected]:/mnt/sdc1_vfat$ ls -ldn .
drwxr-xr-x 2 817 0 4096 Oct 15 22:33 .
(這個資料夾是 817.0 的!!!)
[email protected]:/mnt/sdc1_vfat$ ls -CF
(門都沒有)
好吧,那就給它...
[email protected]:/mnt/sdc1_vfat$ sudo chown 817.100 .
[email protected]:/mnt/sdc1_vfat$ ls -ldn .
drwxr-xr-x 2 817 100 4096 Oct 15 22:33 .
("817.100" 總這樣總該可以了吧... 但是)
[email protected]:/mnt/sdc1_vfat$ ls -CF
(還是甚麼都沒有)
事情是這樣子的: 我一直都在用自己寫的 automounter。
就是去勾在 udev, 當插入 USB 隨身碟,或是 SD 卡的時候,
自動檢查裡面的 filesystem,
然後用我的 X11 的 id 自動開一個 X-terminal。
前者,那個"第一個"就是我的 automounter 開的。
但是我常常從另一個 X-terminal 工作,這就是"另一個"。
許多年來,相安無事,直到最近,從別的 terminal "沒有 access"!
因為最近一波勤於 compile 更新 kernels,就趕快 boot 一下別的核心,
試過了 4.14.75 3.16.58 4.9.130 卻都是同樣的狀況....
剛才,查了一下 logfile,是 (我省略了一些 opts)
sudo mount -o nosuid,uid=817,gid=100,users -t vfat /dev/sdc1 /mnt/sdc1_vfat/
從外面試,也都如預期.
因為情況有點複雜,所以選擇由以上角度切入,
看看會不會有甚麼線索。
如果需要提供進一步細節,請不吝指教。
===============================================================
[後記: 1539625745]
剛才在 mount 前面加了 sudo chown 817.100 /mnt/sdc1_vfat/
先前只有 "chown 817",現在從其它 terminals 看,
雖然資料夾是 817.100 的,但是一樣,從其它 terminals 看,
裡面甚麼也沒有。
這個 "automounter" 是儘可能 portable 的 #!/bin/sh shell-script。
用一個 hook (/etc/udev/rules.d/99-udsh.rules) 攔截所有 udev-events
之後,用 su 變換為 user 權限,叫出下一步的 wrapper script,
這個 wrapper 再用 setsid(1) 叫 automounter 並 detach,
所以沒有被 systemd-udev 追殺的問題。
是個常用的自用程式,例如,插入 USB 隨身碟,
聲響,自動 mount,有幾個 partition 就自動開幾個窗子,
每關掉一個窗子(^D),那個 partition 就自動 umount。
如此而以。一直都在正常使用,是甚麼時候開始這樣,
我也搞不清楚,最近都是緊緊跟著 kernel 4.14.x
作者: mmis1000 (秋月戀楓)   2018-10-16 01:41:00
你可能可以找找看 linux namesapce 相關資訊?
作者: cuello (cuello)   2018-10-16 02:13:00
如何開始?拜托提示一下對不起,正在看 namespace 的 wiki. . .所以,systemd-udevd 用自己的 namespace, 外面看不到現在問題就剩,怎麼 mount 才可 propagate 出去...
作者: ChakraLinux (GNU/Chakra Project)   2018-10-17 12:41:00
前面兩步其實可以用 systemctl edit systemd-udevd取代,這樣他會自己開一個vim給裡寫override
作者: cuello (cuello)   2018-10-17 15:14:00
曾試過,但它給我一個不認識的 editor說也奇怪,我的 EDITOR 我設為 vim 說有,我有 export,剛剛查了一下 .bashrc
作者: brli7848 (無理阿?)   2018-10-17 16:47:00
因為systemctl是用VISUAL這個變數,預設是vi
作者: cuello (cuello)   2018-10-17 17:37:00
喔,多謝! :)糟糕,不對不對,我的 VISUAL 也是 vim !不然的話,實在應該用它自己提供的 edit 功能,否則,不知哪一天他們心血來潮。。。。
作者: ChakraLinux (GNU/Chakra Project)   2018-10-18 18:05:00
看文件有另外的變數,忘了是啥了,反正nano好用
作者: cuello (cuello)   2018-10-18 22:18:00
文件跟行為不一樣,SYSTEMD_EDITOR 沒設它應該用 EDITOR不過,真得應該要用 systemctl edit systemd-udevd 才安全

Links booklink

Contact Us: admin [ a t ] ucptt.com