Dağıtım 2.6.35-30 Linux çekirdeğini çalıştıran bir Ubuntu sunucusudur.
Tamamen hafızada oturan bir dizine sahip olmak istiyorum. Kök ayrıcalıkları olmadan bu mümkün mü?
Dağıtım 2.6.35-30 Linux çekirdeğini çalıştıran bir Ubuntu sunucusudur.
Tamamen hafızada oturan bir dizine sahip olmak istiyorum. Kök ayrıcalıkları olmadan bu mümkün mü?
Yanıtlar:
Linux, herhangi bir kullanıcının kullanabileceği bir tmpfs cihazı sağlar /dev/shm
. Varsayılan olarak belirli bir dizine bağlı değildir, ancak yine de onu tek olarak kullanabilirsiniz.
Sadece bir dizin oluşturun /dev/shm
ve istediğiniz yere işaretleyin. Oluşturulan dizine seçtiğiniz izinleri verebilirsiniz, böylece diğer kullanıcılar erişemez.
Bu RAM destekli bir cihazdır, yani varsayılan olarak bellekte ne var. İhtiyacınız olan tüm dizinleri oluşturabilirsiniz/dev/shm
Doğal olarak, buraya yerleştirilen dosyalar yeniden başlatmaya dayanamaz ve makineniz değişmeye başlarsa /dev/shm
size yardımcı olmaz.
Solaris paralel /dev/shm
IS /tmp
bazlı bir "değiştirilebilir" tipi bölüm, ve aynı zamanda, bellek olan. Olduğu gibi /dev/shm
, keyfi kullanıcılar /tmp
Solaris'te dosya oluşturabilir .
OpenBSD, bellek tabanlı bir montaj da kullanabiliyor, ancak varsayılan olarak kullanılamaz. Mount_mfs komutu süper kullanıcı tarafından kullanılabilir.
Diğer BSD'ler hakkında emin değilim.
/dev/tmpfs
(3.0.0 çekirdeğine sahip kendi sistemim de yok). Dağıtımın yarattığı bir şey olmadığından emin misin?
/run
ve muhtemelen /run/shm
daha fazla araştırmaya ihtiyaç duyuyor gibi görünüyor .
... aktif takaslı sistemlerde ! Şanslar çok yüksek , bilgisayarınızda etkin.
Daha iyi, güvenli , standart bir alternatif var - ramfs
. Özel anahtarlar, Bitcoin veya Ethereum cüzdanlar gibi geçici olarak hassas verileri saklamak ramfs
için RAM destekli alan kullanmayı planlıyorsanız kullanmak isteyebilirsiniz .
ramfs
daha iyidir tmpfs
, çünkü güvenlik söz konusu olduğunda ramfs
veri asla ederken takas olur, (fiziksel bir depolama sürücüsüne kaydedilen) tmpfs
olabilir değiştirilecek. Üçüncü taraflar daha sonra takas alanını inceleyebilir ve hassas verileri çıkarabilir .
ramfs
Mount'ı hazırlayabilirsiniz, böylece ayrıcalıklı olmayan herhangi bir kullanıcı isteğe bağlı olarak monte edebilir / çıkarabilir.
Bunu yapmak için , bir kez kök ayrıcalığına ihtiyacınız olacak . Kök ayrıcalıklarınız yoksa, sistem yöneticinizden bunu sizin için ayarlamasını isteyin.
İlk başta, için bir satır eklemeniz gerekir /etc/fstab
. Fstab içindeki satır şöyle görünebilir:
none /mnt/ramfs ramfs noauto,user,size=1024M,mode=0770 0 0
/mnt/ramfs
ramfs dosya sisteminin monte edileceği bir montaj noktasıdır. Dizin mevcut olmalı.noauto
seçenek, bunun otomatik olarak monte edilmesini önler (örneğin, sistemin açılışında).user
Bu, düzenli kullanıcılar tarafından monte edilebilir hale getirir.size
bu "ramdisk's" boyutunu ayarlar ( burada M
ve G
burada kullanabilirsiniz ).mode
olduğu çok önemli sekizlik kodla, 0770
bu dosya sistemini yalnızca kök ve kullanıcı, bunun için okuma ve yazma mümkün olacak diğerlerini (siz de seçtiğiniz farklı bir kod kullanın, ancak bu konuda çok emin olabilir! ).Bu yapıldığında, herhangi bir kullanıcı talep üzerine bunu monte edebilecektir.
Bazı kullanıcılar bunu bağladıktan sonra, yeni 1024 MB ramfs
dosya sistemi oluşturuldu ve bağlandı /mnt/ramfs/
. O sahip olacak root:user
. Çıkardıktan sonra veya sistem yeniden başlatıldığında, RAM tabanlı bu dosya sistemi tüm verileri ile kaybolacaktır . Hangisi havalı.
Ayrıca, bu dosya sistemi birkaç kullanıcı tarafından bağımsız olarak monte edilebilir, ancak aynı anda değil , yani bir sonraki kullanıcı tarafından kuruluma hazır olmak için önceki kullanıcının bu dosya sistemini çıkarması gerekir.
monte etmek için:
mount /mnt/ramfs/
kaldırmak için:
umount /mnt/ramfs/
Not rsync
Yeni takılan / oluşturulan ramfs dosyalarının kök olmayan bir kullanıcı olarak dosyalarına çalışıyorsanız , bir rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1183) [sender=3.1.1]
hatayla karşılaşabilirsiniz. Bu tamamen iyi ve beklenen bir durumdur, çünkü kullanıcınız ram dosya sisteminin kökenine sahip değildir. Çözüm basittir, sadece orada bir dizin oluşturun, /mnt/ramfs/copied/
örneğin ve rsync
içine.
PPS Debian'da Test Edildi 9. Ubuntu'da da çalışacağından eminim.
Sisteminizde zaten mevcut bir tane olabilir; Glibc’e dayanan son Linux sistemlerinde daima üzerine kurulu bir tmpfs bulunur/dev/shm
.
Sisteminizde bir tane yoksa ya da çok küçükse, o zaman kök tarafından bağlanmamış bir dosya sistemi FUSE anlamına gelir . Ubuntu'da, fuse
FUSE kullanmak için grupta olmanız gerekir . Aracılığıyla Looking mevcut FUSE dosya sistemleri , sadece bkz Ramfuse maalesef yukarı yarıda.
Genel olarak, hayır, dosya sistemleri sadece root tarafından monte edilebilir. Bir kullanıcının dosya sistemlerini keyfi bir şekilde yerleştirmesine izin verirseniz, bu temel olarak onlara kök sağlar. (Kolay yol: bir tane / etc üstünü yerleştirin, kendi şifrenizi ve gölgenizi buraya yerleştirin, az önce oluşturduğunuz yeni root şifresiyle birlikte kaldırın)
Eğer belirli bir yerde bir tmpfs istiyorsan /etc/fstab
, bayraklarını kullanarak onu ekleyebilirsin noauto,user
ve sonra bir kullanıcı onu bağlayabilecekti.
Kullanıcıların keyfi tmpfs'lara ihtiyacı varsa, birkaç seçeneğiniz vardır:
sudo
Kullanıcıların çalıştırmasına izin vermek için kullanın . Emin emin olun değil kullanıcı keyfi yolları seçmenize olanak tanır.