mount -o uid=m,gid=n 的狀況 [已解決] - Linux

Table of Contents

Hi,

請問一下,甚麼情況下可能出現以下的 owner, group 的狀況

在一個 terminal 上 (我是 817.100)

cuello@husserl:/mnt/sdc1_vfat$ id
uid=817(cuello) gid=100(users) groups=100(users)

cuello@husserl:/mnt/sdc1_vfat$ ls -ldn .
drwxr-xr-x 16 817 100 4096 Jan 1 1970 .
(這個資料夾是 817.100 的)

cuello@husserl:/mnt/sdc1_vfat$ ls -CF
(很多東西省略了)

但是在另一個 termninal 上卻是 (我還是 817.100)

cuello@husserl:/mnt/sdc1_vfat$ id
uid=817(cuello) gid=100(users) groups=100(users)

cuello@husserl:/mnt/sdc1_vfat$ ls -ldn .
drwxr-xr-x 2 817 0 4096 Oct 15 22:33 .
(這個資料夾是 817.0 的!!!)

cuello@husserl:/mnt/sdc1_vfat$ ls -CF
(門都沒有)

好吧,那就給它...

cuello@husserl:/mnt/sdc1_vfat$ sudo chown 817.100 .

cuello@husserl:/mnt/sdc1_vfat$ ls -ldn .
drwxr-xr-x 2 817 100 4096 Oct 15 22:33 .
("817.100" 總這樣總該可以了吧... 但是)

cuello@husserl:/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


--

All Comments

Faithe avatarFaithe2018-10-17
你可能可以找找看 linux namesapce 相關資訊?
Ethan avatarEthan2018-10-20
如何開始?拜托提示一下
Jacob avatarJacob2018-10-24
對不起,正在看 namespace 的 wiki. . .
Mary avatarMary2018-10-26
所以,systemd-udevd 用自己的 namespace, 外面看不到
Rosalind avatarRosalind2018-10-30
現在問題就剩,怎麼 mount 才可 propagate 出去...
Poppy avatarPoppy2018-11-01
前面兩步其實可以用 systemctl edit systemd-udevd
取代,這樣他會自己開一個vim給裡寫override
Mason avatarMason2018-11-04
曾試過,但它給我一個不認識的 editor
Frederica avatarFrederica2018-11-08
說也奇怪,我的 EDITOR 我設為 vim 說
Hedda avatarHedda2018-11-09
有,我有 export,剛剛查了一下 .bashrc
Ingrid avatarIngrid2018-11-10
因為systemctl是用VISUAL這個變數,預設是vi
Vanessa avatarVanessa2018-11-13
喔,多謝! :)
Christine avatarChristine2018-11-15
糟糕,不對不對,我的 VISUAL 也是 vim !
Steve avatarSteve2018-11-17
不然的話,實在應該用它自己提供的 edit 功能,
Tom avatarTom2018-11-17
否則,不知哪一天他們心血來潮。。。。
Adele avatarAdele2018-11-20
看文件有另外的變數,忘了是啥了,反正nano好用
Edith avatarEdith2018-11-23
文件跟行為不一樣,SYSTEMD_EDITOR 沒設它應該用 EDITOR
Isla avatarIsla2018-11-25
不過,真得應該要用 systemctl edit systemd-udevd 才安全