Özel kullanıcı kimliği ayarlı dosya sistemini bağlama


19

Cihazı /dev/sda3dizine bağlamak istiyorum /foo/bar/baz. Dizinden sonra kullanıcı kullanıcı kimliği olmalıdır johndoe. Ben de yaptım:

sudo -u johndoe mkdir /foo/bar/baz
stat -c %U /foo/bar/baz
johndoe

ve şu satırı ekledi /etc/fstab:

/dev/sda3 /foo/bar/baz ext4 noexec,noatime,auto,owner,nodev,nosuid,user 0 1

Şimdi yaptığımda sudo -u johndoe mount /dev/sda3komut yerine stat -c %U /foo/bar/bazsonuçlanır . Bu ext4-dosya sistemini uid setiyle bağlamanın en iyi yolu nedir ?rootjohndoejohndoe

Yanıtlar:


20

Ext4 dosya sistemine sahip bir diskin sahibini zorlamak mümkün değildir. Yalnızca yağ gibi Linux izinlerini desteklemeyen dosya sistemlerinde sahiplik / grup özelliği vardır: uid=valueve gid=value. Montajdaki kılavuz sayfasına bakınız .

Bağlı dosya sistemindeki sahibi aşağıdaki gibi değiştirmelisiniz:

sudo chown johndoe /foo/bar/baz

İzinleri tekrar tekrar değiştirmeniz gerekirse:

sudo chown -R johndoe /foo/bar/baz

... ve grubun da değiştirilmesi gerekiyorsa johndoe:

sudo chown -R johndoe: /foo/bar/baz

2
Mülkiyeti özyinelemeyle değiştirmek genellikle yardımcı olabilirseniz kötü bir fikirdir. "Doğru" mülkiyeti sildiğinizde, onu geri almanın neredeyse kolay bir yolu yoktur. IMO bağları bununla başa çıkmanın doğru yoludur (cevabıma bakın).
Catskul

3
bindfs başka bir karmaşıklık katmanı gibi geliyor. Cevabım, daha önceki bir kurulumda farklı bir kullanıcı kimliğiyle kullanılan harici bir sabit disk (yedekleme için) için en uygun olanıdır. Birden çok kullanıcı kimliğinin tutulması gereken durumlarda (kök dosya sistemi) kullanılmamalıdır, ancak bu durumda -ufarklı kullanıcı kimliklerinden erişim kısıtlamalarını atlattığı için bindfs de kullanılmamalıdır. --maperişim kısıtlamalarını korumak istiyorsanız kullanılmalıdır.
Lekensteyn

1
+1 "yalnızca izinsiz FS'lerde mümkündür" - Kullanmaya çalışıyorum uidve gidhangisi işe yaramaz.
mgarciaisaia

19

bindfscevap. Zaten monte edilmiş bir dosya sistemi alacak ve hangi uid istediğinizi gösteren bir görünüm sağlayacaktır:

sudo apt-get install bindfs
mkdir ~/myUIDdiskFoo
sudo bindfs -u $(id -u) -g $(id -g) /media/diskFoo ~/myUIDdiskFoo

1
bindfs'nin diğer çalışma modları vardır, bkz: bindfs.org/docs/bindfs.1.html
Lekensteyn

2
Ugh, FUSE kullanıyor.
Navin

Ben 9p sanal dosya sistemi ana işletim sistemi daha farklı kullanıcı izinleri ile monte etmek istedim .. Çalışmaya çalışıyorum duvara kafamı vuruyordu. Bindfs beni gerçekten bir bağdan çıkardı. Harika küçük bir araç!
Boann

6

Dosyalar için grup kümesinin uygun izinleri olduğunu varsayarsak, yalnızca Grup Kimliğini (GID) bulabilir ve kendinizi dosyaya ekleyebilirsiniz.


Bir dosyanın grup kimliğini bulmak için tuşunu kullanın ls -n. Örnek çıktı:

drwxr-xr-x 1 1000 1000  550 Jul  9 11:08 Desktop/

Benim durumumda ikincisi olan GID için dördüncü alanı istiyorsunuz 1000.

sudo addgroup --gid GID foobar; sudo usermod `whoami` -aG foobar

Bunu çalıştırdığınızda, grup dosya özniteliklerinin izin verdiği her yerde tam dizgin olması gerekir.

Kullanıcı izinleriyle ilgili diğer yanıtta belirtildiği gibi, grubu bazı dosyalarda düzeltmeniz gerekiyorsa, aşağıdakilerden birini çalıştırın :

sudo chown -R :foobar ./
sudo chgrp -R  foobar ./

1
A olmayan dosyaların sahipliğini değiştirmeden kullanıcı veya grubu A'dan B'ye değiştirmek istiyorsanız unutmayın; sudo chown --from A B -R ./kullanıcılar ve sudo chown --from :A :B ./gruplar için kullanabilirsiniz
LateralFractal
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.