Yararlı komut dosyalarını Debian'a koymak ancak PATH'a koymak değil mi?


2

Bir veritabanı arka uç ile bir web uygulaması var. Veritabanını başlatmak için kullanılan bazı komut dosyaları var. Bu komut dosyalarını Debian paketine eklemek istiyorum, ancak şemayı bırakıp yeniden yarattıkları için tehlikelidirler.

Bu yüzden, bu betikleri PATH'taki bir dizine koymak istemiyorum. Bu nitelikteki senaryolar Debian sisteminde nereye gider? (Bu komut dosyalarının paket koruyucu komut dosyaları olmadığını unutmayın .)

Yanıtlar:


2

Debian'ın oldukça kapsamlı bir politikası var, bu yüzden genellikle buna değecektir. Bence bu onu kapsıyor.

9.1.1 Dosya Sistemi Yapısı

Tüm dosyaların ve dizinlerin konumu, aşağıda belirtilen istisnalar dışında, Dosya Sistemi Hiyerarşisi Standardı (FHS), sürüm 2.3'e ve bunun yerine diğer Debian Politikası koşullarını ihlal edeceği durumlar dışında olmalıdır.

Ve bulduğumuz FHS’yi kontrol etmek ,

/ usr / lib: Programlama ve paketler için kütüphaneler

amaç

/ usr / lib, doğrudan kullanıcılar veya kabuk komut dosyaları tarafından yürütülmesi amaçlanmayan nesne dosyalarını, kitaplıkları ve dahili ikili dosyaları içerir. [22]

Uygulamalar / usr / lib altındaki tek bir alt dizini kullanabilirler. Bir uygulama bir alt dizin kullanıyorsa, uygulama tarafından özel olarak kullanılan tüm mimariye bağlı verilerin o alt dizine yerleştirilmesi gerekir.

sonra Debian politikasına geri dönelim,

Doğrudan / lib {, 32} ve / usr / lib {, 32} altında bulunan libc.so. * dahil olmak üzere nesne dosyalarının, dahili ikili dosyaların ve kitaplıkların, dosyaların yerine / dosyalarına yüklenmesine izin vererek değiştirildi lib / triplet ve / usr / lib / triplet; buradaki triplet, paketin mimarisi için dpkg-architecture -qDEB_HOST_MULTIARCH tarafından döndürülen değerdir. Paketler, dosyaları bu paketin mimarisine uyan bir üçlü yola kurmayabilir; örneğin, 32-bit x86 kütüphanelerini içeren bir Architecture: amd64 paketi bu kütüphaneleri / usr / lib / i386-linux-gnu 'a kuramayabilir. [69]

Uygulamalar ayrıca / usr / lib / triplet altındaki tek bir alt dizini kullanabilir.

Uygulama zamanı linker / loader, ld *, mimarlık için ELF ABI'nin bir parçası olduğu için / lib veya / lib64 altındaki mevcut konumda bulunmaya devam etmelidir.


2

Bir programın içindeki yürütülebilir dosyalar için ortak bir yer var ./usr/lib/program/

(Eski Debian sistemleri kullanıyor /usr/libexec/, ancak bu FHS uyumlu değil.)

Ayrıca komut dosyalarını, örneğin kullanıcıyı uyarmak ve --forcekomut satırında verilmemişse çıkmak için de değiştirebilirsiniz .


1

Yükleme kökün nerede? Eğer / usr / local ise, şahsen / usr / local / sbin veya / usr / local / etc / scripts dizinine koyardım. Normal kullanıcılar PATH'lerinde sbin olmamalıdır ve kesinlikle hiçbir şey vb. De olmamalıdır. Seçtiyse / seçtiyseniz, o zaman daha da güvende olursunuz, çünkü insanlar açıkça PATH'lerine / opt / WHATEVER / bin'i eklemek zorunda kalacaklar ve siz Onları başka bir yere koyabilirsin.

Komut dosyalarınızın bit kümesini çalıştırması bile gerekiyor mu? İnsanları koşmak bash my_schema_loader.sh yerine koşmaya zorlarsanız my_schema_loader.sh , istenmeyen kullanımların çoğunu önler, ancak kasıtlı kullanıma çok fazla müdahale etmez.


Tür araçlar olarak nerede ne yazık ki, çünkü çoğu normal kullanıcılar $ PATH içinde Sbin gelmiş pingveya ipbulunmaktadır.
yerçekimi
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.