Ubuntu chmod komutları. Chmod: izinleri değiştir

Bizim belgelerimizde umask emretmek. Dosya izinlerinin nasıl tanımlanacağı ve belirleneceği konusunda kapsamlı bir açıklama içerir.

Genel olarak, chmod komutlar şu şekli alır:

chmod seçenekler izinler dosya adı

Eğer hayırsa seçenekler belirtilir, chmod tarafından belirtilen dosyanın izinlerini değiştirir dosya adı tarafından belirtilen izinlere izinler.

izinler dosyanın sahibi ("kullanıcı"), dosyanın sahibi olan grubun üyeleri ("grup") ve diğer herkes ("diğerleri") için izinleri tanımlar. Bu izinleri göstermenin iki yolu vardır: sembollerle (alfanümerik karakterler) veya sekizli sayılarla (rakamlar) 0 vasıtasıyla 7 ).

adlı bir dosyanın sahibi olduğunuzu varsayalım. dosyam ve izinlerini şu şekilde ayarlamak istiyorsunuz:

  1. en sen can r kafa, w ayin ve e x ecut onu;
  2. üyeleriniz g sıra-can r e ve e x ecut onu; ve
  3. Ö onlar sadece olabilir r oku onu.

Bu komut hile yapacak:

Chmod u=rwx,g=rx,o=r dosyam

Bu örnek, sembolik izinler gösterimini kullanır. Harfler sen, g, ve Ö dayan" kullanıcı", "grup", ve " diğer".eşittir işareti(" = "), "izinleri tam olarak bu şekilde ayarla" anlamına gelir ve "harfleri" r", "w", ve " x" sırasıyla "oku", "yaz" ve "yürüt" anlamına gelir. Virgüller farklı izin sınıflarını ayırır ve aralarında boşluk yoktur.

Sekizli izin gösterimini kullanan eşdeğer komut:

Chmod 754 dosyam

İşte sayılar 7 , 5 , ve 4 her biri, bu sırayla kullanıcı, grup ve diğerleri için ayrı ayrı izinleri temsil eder. Her rakam sayıların birleşimidir 4 , 2 , 1 , ve 0 :

  • 4 "okumak" anlamına gelir,
  • 2 "yazmak" anlamına gelir,
  • 1 "yürütmek" anlamına gelir ve
  • 0 "izin yok" anlamına gelir.

Böyle 7 izinlerin birleşimidir 4 +2 +1 (okuma, yazma ve yürütme), 5 dır-dir 4 +0 +1 (okuma, yazma ve yürütme yok) ve 4 dır-dir 4 +0 +0 (okuma, yazma ve yürütme yok).

Sözdizimi

chmod[ SEÇENEK]... MOD[,MOD]... DOSYA...chmod[ SEÇENEK]... EKLİ MODU DOSYA...chmod[ SEÇENEK]... --referans= RFILE DOSYA...

Seçenekler

-c, --değişiklikler

Beğenmek --ayrıntılı, ancak yalnızca gerçekten bir değişiklik yapıldığında ayrıntılı çıktı verir.

-f, --sessiz, --sessizlik

Sessiz mod; çoğu hata mesajını bastır.

-v, --ayrıntılı

ayrıntılı mod; işlenen her dosya için bir tanı mesajı çıktısı alın.

--no-koruyucu-kök

Bir yardım mesajı görüntüleyin ve çıkın.

Dosyanın sahibi.

umut direği

Dosyanın ait olduğu grup.

03 Şubat 15:36

Dosya "s mtime (dosyanın en son değiştirildiği tarih ve saat).

dosya.txt

Dosyanın adı.

Örnekler

chmod 644 dosya.htm

izinlerini ayarla dosya.htm"sahibi okuyabilir ve yazabilir; grup sadece okuyabilir; diğerleri sadece okuyabilir".

Chmod -R 755 dosyalarım

tekrarlı( -R) Dizinin izinlerini değiştirin benim dosyalarım ve içerdiği tüm klasörler ve dosyalar, moduna 755 : Kullanıcı okuyabilir, yazabilir ve çalıştırabilir; grup üyeleri ve diğer kullanıcılar okuyabilir ve çalıştırabilir, ancak yazamaz.

Chmod u=rw örnek.jpg

Sahibi için izinleri değiştirin örnek.jpg böylece sahibi dosyayı okuyabilir ve yazabilir. Grup veya başkaları için izinleri değiştirmeyin.

Chmod u+s comphope.txt

"Set-User-ID" bitini ayarlayın. comphope.txt, böylece o dosyaya erişmeye çalışan herkes bunu dosyanın sahibiymiş gibi yapar.

Chmod u-s comphope.txt

Yukarıdaki komutun tersi; SUID bitinin ayarını kaldırır.

Chmod 755 dosya.cgi

izinlerini ayarla dosya.cgi"sahibi tarafından okuma, yazma ve yürütme" ve "grup ve diğer herkes tarafından okuma ve yürütme".

Chmod 666 dosya.txt

iznini ayarla dosya.txt"herkes tarafından okumak ve yazmak".

Chmod a=rw dosyası.txt

Sembolik gösterimi kullanarak yukarıdaki komutla aynı şeyi gerçekleştirir.

ilgili komutlar

yemek- Dosyaların veya dizinlerin sahipliğini değiştirin.
getfacl- Dosya erişim kontrol listelerini görüntüleyin.
ls- Bir dizinin veya dizinlerin içeriğini listeleyin.

Dosya izinlerini değiştir

Sözdizimi:

chmod[-fv] [-R [-H | -L | -P]] mod dosyası ... chmod[-fv] [-R [-H | -L | -P]] [-a | +a | = bir] .ACE dosyası ... chmod[-fhv] [-R [-H | -L | -P]] [ ACL_Option] dosya ...

Seçenekler:

-R özyineleme. Klasörler için kullanılır. Yalnızca belirtilen nesne için değil, içinde yuvalanmış tüm nesneler için hakları değiştirir
-R -H içindeki sembolik bağlantıları izleyin Komut satırı. Sembolik bağlantılar varsayılan olarak işlenmez.
-R -L Tüm sembolik bağlantılar işlenecek
-R -P Bağlantı ağacı işlenmez. Varsayılan ayar.
-v ayrıntılı. Değiştirilen tüm dosyaları gösterir
-v -v çok ayrıntılı mod. Eski ve yeni izinler sekizli (sayısal) ve alfabetik görüntüleme modunda görüntülenecektir
-f dosya izinlerini değiştirmek mümkün değilse tanı mesajlarını görüntüleme
ACL_Option(ACL - kullanıcı grupları için erişim kontrol listeleri) ACL_manipulation_options

Erişim hakları:

İzinler alfabetik kod veya sayısal olarak belirtilebilir. sekizli sistem hesaplaşma

Sayısal yetkilendirme yoluyla yönetim:

Hak yönetimi için üç bit kullanılır

  • birincisi okuma hakkı
  • ikincisi yazma hakkı
  • üçüncüsü yürütme hakkıdır
azar azar Sayı Harf kodu kanunun tanımı
000 0 hak yok
001 1 gerçekleştirme hakkı
010 2 salt yazma hakkı
011 3 kaydetme ve gerçekleştirme hakkı
100 4 salt okunur sağ
101 5 okuma ve gerçekleştirme hakkı
110 6 yürütme olmadan okuma ve yazma izni
111 7 pekala

Bu dosya izinleri üç tür erişim için ayarlanmıştır:

  • sahibi için
  • bir grup için
  • başkaları için

Sonuç olarak, komut şöyle görünür:

$ chmod 444 dosya - herkes için salt okunur izin

$ chmod 755 dosya - sahibi tüm haklara sahiptir (7), diğer kullanıcılar yalnızca okur ve çalıştırır (5)

$ chmod 066 dosya - sahibinin dosyaya (0) hakkı yoktur, diğer herkesin yürütmeden okuma ve yazma hakkı vardır

Erişim haklarının tam anlamıyla gösterilmesi yoluyla yönetim:

Karakter koduna göre hakları belirtme biçimi

[kim...][[+-=][haklar...]...][,...]

kim karakterlerin bir kombinasyonudur "ugoa" işaret etmek kullanıcılar dosya veya klasöre erişim izinleri değiştirilecek

  • kullanıcı sahibi
  • g kullanıcı grubu
  • o diğer kullanıcılar
  • a (tümü) herkes için, ugo'ya benzer

chmod komutu, dosya veya dizinlerin izinlerini değiştirmek için kullanılır.

Linux ve diğer Unix benzeri sistemlerde işletim sistemleri her dosya için bu dosyaya kimin ve nasıl erişebileceğini belirleyen bir dizi kural vardır. Bu kurallara dosya izinleri veya dosya modları denir. Komut adı chmod "mod değiştir" anlamına gelir ve bir dosyaya nasıl erişildiğini belirlemek için kullanılır.

Genel olarak, chmod komutları şöyle görünür:

chmod izin seçenekleri dosya adı

Eğer bir seçenekler belirtilmemişse, chmod içinde belirtilen dosyanın izinlerini değiştirir. dosya adı, belirtilen izinlere izinler.

izinler dosyanın sahibi ("kullanıcı"), dosyanın sahibi olan grubun üyeleri ("grup") ve diğer herkes ("diğerleri") için erişim haklarını tanımlayın. Bu izinleri göstermenin iki yolu vardır: semboller (alfanümerik karakterler) veya sekizli sayılar (0'dan 7'ye kadar sayılar) kullanma.

Diyelim ki myfile adlı bir dosyanız var ve izinlerini şu şekilde ayarlamak istiyorsunuz:

  1. kullanıcı ( sen ser) okuyabilir ( r ead), yaz ( w ayin) ve yürütün ( x ecute) onu;
  2. grup üyeleri ( g satır) okuyabilir ( r ead) ve yürütün ( x ecute) onu;
  3. diğerleri gibi ( Ö onlar) sadece okuyabilir ( r ed) onu.

Bu komut şöyle görünecektir:

chmod u=rwx,g=rx,o=r dosyam

Bu örnek, izinler için sembolik bir girdi kullanır. u, g ve o harfleri kullanıcı, grup ve diğer anlamına gelir. Eşittir işareti ("=") "böyle izinleri ayarla" anlamına gelir ve "r", "w" ve "x" harfleri sırasıyla "oku", "yaz" ve "yürüt" anlamına gelir. ayrı virgül çeşitli sınıflar izinler ve aralarında boşluk yok.

Sekizli izin gösterimini kullanan eşdeğer komut:

chmod 754 dosyam

Burada, 7, 5 ve 4 rakamlarının her biri, bu sırayla kullanıcı, grup ve diğerleri için ayrı ayrı izinleri temsil eder. Her basamak 4, 2, 1 ve 0 sayılarının birleşimidir:

  • 4 "okumak" anlamına gelir,
  • 2 "yazmak" anlamına gelir,
  • 1 "yürütmek" anlamına gelir,
  • 0 "izin yok" anlamına gelir.

Yani 7, 4 + 2 + 1 (okuma, yazma ve yürütme), 5 4 + 0 + 1 (okuma, yazma yok ve yürütme) izinlerinin bir birleşimidir ve 4, 4 + 0 + 0'dır (okuma, hayır yaz ve yürütme yok).

sözdizimi chmod

chmod ... MODU[,MOD]... DOSYA... chmod ... EKLİ MODU DOSYA... chmod ... --reference=RFILE DOSYA...

chmod seçenekleri

-c, --değişiklikler--verbose gibi, ancak yalnızca gerçekten bir değişiklik yapıldığında ayrıntılı çıktı üretir.

-f, --sessiz, --sessizlik Sessiz mod; çoğu hata mesajını bastır.

-v, --ayrıntılı Detay modu; işlenen her dosya için bir teşhis mesajı çıktısı alın.

--no-koruyucu-kök"/" (kök dizini) varsayılan ayar olan herhangi bir özel şekilde ele almayın.

--koruyucu kök"/" üzerinde özyinelemeli olarak çalışmayın.

--referans=RFILE Belirtilen herhangi bir MODU yok sayarak, izinleri RFILE dosyasının izinleriyle eşleşecek şekilde ayarlayın.

-R, --özyinelemeli Dosyaları ve dizinleri yinelemeli olarak değiştirin.

--Yardım Yardım mesajını göster ve çık.

--versiyon Sürüm bilgilerini görüntüleyin ve çıkın.

Teknik Açıklama

chmod, MODE'a göre belirtilen her DOSYA'nın dosya modunu değiştirir; bu, yapılan değişikliklerin sembolik bir temsili veya yeni mod bitleri için bit modelini temsil eden sekizli bir sayı olabilir.

Sembolik mod formatı:

[[+-=]...]

burada izinler r, w, x, X, s ve t kümesinden sıfır veya daha fazla harf veya u, g ve o kümesinden bir harftir. Virgülle ayrılmış birden çok karakter modu belirtebilirsiniz.

Kullanıcıların dosyaya erişimini değiştirecek u, g, o harfleri ve kontrollerin birleşimi: dosyanın sahibi (u), dosya grubundaki diğer kullanıcılar (g), dosya grubunda olmayan diğer kullanıcılar ( o) veya tüm kullanıcılar (a). Bunların hiçbiri verilmezse, etki a verilmiş gibidir, ancak umask'ta ayarlanan bitler etkilenmez.

(+) operatörü, seçilen dosya modu bitlerinin her dosyanın mevcut dosya modu bitlerine eklenmesine neden olur; "-" silinmelerine neden olur; ve "=", değiştirilemeyen kullanıcı-set dizin bitlerinin ve grup tanımlayıcılarının etkilenmemesi dışında, bunların eklenmesine ve adı geçmeyen bitlerin kaldırılmasına neden olur.

r, w, x, X, s ve t harfleri, etkilenen kullanıcılar için dosya modu bitlerini seçer: okuma (r), yazma (w), yürütme (x), yalnızca dosya bir dizinse veya zaten izne sahipse yürütme bazı kullanıcılar için yürütmek için (X), yürütülürken kullanıcı veya grup kimliğini, kısıtlı silme bayrağını veya sabit bir biti (t) ayarlayın. Dizinler için, X ve X yürütme seçenekleri, dizinin içeriğini görüntüleme iznini belirler.

Bu harflerden biri veya birkaçı yerine u, g veya o harflerinden birini belirtebilirsiniz: dosyanın sahibi olan kullanıcıya verilen izinler (u), dosya grubunun üyesi olan diğer kullanıcılara verilen izinler (g ) ve önceki iki kategoriden herhangi birine dahil olmayan kullanıcılara verilen izinler (o).

Sayısal mod, 4, 2 ve 1 değerlerine sahip bitlerin eklenmesiyle elde edilen bir ila dört sekizlik basamaktır (0-7). Eksik basamakların baştaki sıfırlar olduğu varsayılır. İlk basamak, verilen kullanıcı kimliğini (4) ve verilen grup kimliğini (2) ve sınırlı silme veya yapışkan nitelikleri (1) seçer. İkinci basamak, okuma (4), yazma (2) ve (1) işlemlerini yürüten kullanıcının erişim haklarını seçer; üçüncüsü, dosya grubundaki diğer kullanıcılar için aynı değerlere sahip izinleri seçer; ve aynı değerlere sahip dosya grubunda olmayan diğer kullanıcılar için dördüncü.

chmod, sembolik bağlantıların izinlerini asla değiştirmez; chmod sistem çağrısı izinlerini değiştiremez. Ancak sembolik bağlantı izinleri hiçbir zaman kullanılmadığından bu bir sorun değildir. Ancak, komut satırında belirtilen her sembolik bağlantı için chmod, belirtilen dosyadaki izinleri değiştirir. Buna karşılık, chmod, özyinelemeli dizin geçişleri sırasında karşılaşılan sembolik bağları yok sayar.

Setuid ve Setgid Bitleri

chmod, dosyanın grup kimliği kullanıcının etkin grup kimliğiyle veya kullanıcının ek grup kimliklerinden biriyle eşleşmezse, kullanıcı uygun ayrıcalıklara sahip değilse, normal bir dosyanın set-group-ID bitini temizler. Ek kısıtlamalar MODE veya RFILE'deki set-user-ID ve set-group-ID bitlerinin yok sayılmasına neden olabilir. Bu davranış, temel alınan chmod sistem çağrısının ilkesine ve işlevselliğine bağlıdır. Şüpheniz varsa, sistemin davranışını kontrol edin.

chmod, aksini belirtmediğiniz sürece dizinin set-user-ID ve set-group-ID bitlerini korur. u+s ve g-s gibi sembolik modlarla bitleri ayarlayabilir veya temizleyebilirsiniz ve sayısal mod ile bitleri ayarlayabilirsiniz (ancak net değil).

Sınırlı Kaldırma İşareti (veya "Yapışkan Bit")

Kısıtlı silme bayrağı veya yapışkan bit, yorumu dosya türüne bağlı olan tek bir bittir. Bu, bir dizindeki bir dosyanın, dosyanın veya dizinin sahibi olmayan kullanıcılar tarafından silinmesini veya yeniden adlandırılmasını önler; buna bir dizin için sınırlı silme bayrağı denir ve genellikle /tmp gibi global olarak yazılabilir dizinlerde bulunur. Bazı eski sistemlerdeki normal dosyalar için bu bit, programın metin görüntüsünü takas aygıtına kaydeder, böylece başlangıçta daha hızlı yüklenir; buna yapışkan bit denir.

Dosya izinleri nasıl görüntülenir?

Dosya izinlerini listelemenin hızlı ve kolay bir yolu, ls komutunun uzun liste (-l) seçeneğidir. Örneğin, file.txt izinlerini görüntülemek için şu komutu kullanabilirsiniz:

Ls -l dosya.txt

Şuna benzeyen çıktıyı gösterecek olan:

chmod örnekleri

chmod 644 dosya.htm

File.htm “sahibinin okuyabileceği ve yazabileceği dosya için izinleri ayarlar; grup sadece okuyabilir; diğerleri sadece okuyabilir."

Chmod -R 755 dosyalarım

Yinelemeli olarak (-R), myfiles dizinindeki ve tüm klasör ve dosyalarındaki izinleri 755 moduna değiştirir. Kullanıcı okuyabilir, yazabilir ve yürütebilir; grup üyeleri ve diğer kullanıcılar okuyabilir ve çalıştırabilir, ancak yazamaz.

Chmod u=rw örnek.jpg

Sahibin dosyayı okuyabilmesi ve yazabilmesi için example.jpg sahibinin izinlerini değiştirir. Grup veya diğerleri için izinleri değiştirmez.

Chmod u+s comphope.txt

Comphope.txt dosyasının "Kullanıcı Kimliğini Ayarla" bitini, bu dosyaya erişmeye çalışan herkesin dosyanın sahibiymiş gibi yapması için ayarlar.

Chmod u-s comphope.txt

Yukarıdaki komutun tersi; SUID bitini temizler

Chmod 755 dosya.cgi

file.cgi için "okuma, yazma ve sahibi tarafından yürütme" ve "grup ve diğer herkes tarafından okuma ve yürütme" izinlerini ayarlar.

Chmod 666 dosya.txt

file.txt'nin iznini "herkes tarafından okuma ve yazma" olarak ayarlar.

Chmod a=rw dosyası.txt

Sembolik gösterimi kullanarak yukarıdaki komutla aynı işlemi gerçekleştirir.

İlgili komutlar

yemek- Dosyaların veya dizinlerin sahibini değiştirin.
getfacl- Dosya erişim kontrol listelerini göster.
ls- Bir dizinin veya dizinlerin içeriğini listeleyin.

(Dosya izinlerinin başlangıç ​​değeri rwxrwxrwx - herkes için tam denetimdir) Bir dosyayı tüm kullanıcılar ve gruplar için yürütme iznini iptal edin:

$ chmod a-x dosyası(rw-rw-rw-)

Bir grup ve diğer kullanıcılar tarafından dosyaya yazmayı iptal etme:

$ chmod go-w dosyası (rw-r–r–)

Sahibi tarafından dosya yürütme izni:

$ chmod u+x dosyası (rwxr–r–)

Gruba dosyanın sahibiyle aynı erişim haklarını vermek:

$ chmod g=u dosyası (rwxrwxr–)

Grup kullanıcıları ve diğer kullanıcılar tarafından bir dosyaya okuma ve yazma işlemini iptal edin:

$ chmod go-rw dosyası (rwx-x-)

Mutlak modda chmod komutunu kullanma örnekleri

Dosya dosyasını tüm kullanıcılar ve gruplar tarafından okuma, yazma, yürütme izni (tam kontrol):

$ chmod 777 dosyası (rwxrwxrwx)

Sahip, grup ve diğer kullanıcılar için okuma ve yazma izinlerini ayarlama:

$ chmod 666 dosyası (rw-rw-rw-)

Grup ve diğer kullanıcılar için sahip için tam dosya erişimi ve salt okunur erişim ayarlama:

$ chmod 744 dosyası (rwxr-r-)

Dosyanın sahibine dosyaya tam erişim sağlamak ve gruba ve diğer kullanıcılara erişimi reddetmek:

$ chmod 700 dosyası (rwx--)

Dosya sahibi için okuma/yazma izinlerini ve grup ve diğerleri için salt okuma izinlerini ayarlayın:

$ chmod 644 dosyası (rw-r–r–)

Bir dosyanın ve grubunun sahibi için okuma ve yazma izinleri ayarlayın ve diğerlerinin erişimini engelleyin:

$ chmod 640 dosyası (rw-r--)

Tüm kullanıcılar ve gruplar için okuma izniyle dosya erişimini ayarlama:

$ chmod 444 dosyası (r–r–r–)

Okuma, yazma, sahip tarafından yürütme ve okuma, grup ve diğerleri tarafından yürütme için dosya izinleri:

$ chmod 755 dosyası (rwxr-xr-x)

Kullanıcı ve diğerleri için dosyaya okuma ve yürütme erişimine izin verme ve grubun erişimini reddetme:

$ chmod 505 dosyası (r-x-r-x)

Geçerli dizindeki tüm dosyalara izin atamak istiyorsanız, atanan izinlerin arkasına * (yıldız işareti) koymanız yeterlidir:

$ chmod 755*

Bu komutun yürütülmesinin bir sonucu olarak, grup ve diğer kullanıcılar yalnızca okuma ve yürütmeyi alırken, sahip geçerli dizindeki tüm dosyalar üzerinde tam haklar (okuma, değiştirme, yürütme) alacaktır. Eylemlerinizin özyinelemeli olarak yayılmasını istiyorsanız (tüm alt dizinler dahil), -R seçeneğini kullanın:

$ chmod -R 777 *

Yukarıdaki komutun sonucu, geçerli dizinin tüm alt dizinlerini özyinelemeli olarak "geçiş yapmak" ve tüm kullanıcılara ve gruplara tam erişim atamak olacaktır. Bu makale yalnızca chmod komutunun nasıl kullanılacağına ilişkin bazı örnekleri kapsar. chmod komutunun nasıl çalıştığı ve Linux izinleri hakkında daha fazla bilgi edinmek istiyorsanız bu makaleye göz atın.

Yalnızca dizinler için izinleri değiştirin (yinelemeli olarak)

$ find /path/to/base/dir -type d -exec chmod 755 () +

$ chmod 755 $(find /path/to/base/dir -type d)

$ chmod 755 `find /path/to/base/dir -type d`

$ find /path/to/base/dir -type d -print0 | xargs -0 chmod 755

Yalnızca dosyalar için izinleri değiştirin (yinelemeli olarak)

$ find /path/to/base/dir -type f -exec chmod 644 () +

$ chmod 644 $(find /path/to/base/dir -type f)

$ chmod 0755 `find ./ -type f`

$ find /path/to/base/dir -type f -print0 | xargs -0 chmod 644

Klasörler ve dosyalar için Chmod sözdizimi

Tam olarak neyi ve nasıl yapılandırdığımızı anlamak için önce Chmod ile sorunun özünü anlayalım. O halde başlayalım. İzinler, dosyalar için Chmod ve dizinler için Chmod olarak ayrılmıştır. Aynı şekilde tanımlanırlar, ancak biraz farklı anlam ifade ederler.

Dosyalara erişim hakları (Chmod) şu bölümlere ayrılmıştır:

    r - verileri okuma hakkı.

    w - içeriği değiştirme hakkı (yazma - yalnızca içeriği değiştirin, silmeyin).

    x - dosyayı yürütme hakkı.

Bir dosyayı yürütmek için biraz daha sağda duralım. Gerçek şu ki, linux'ta (Unix) herhangi bir dosya yürütülebilir. Yürütülebilir bir dosya olup olmadığı, uzantısı tarafından belirlenmez (uzantı kavramı yoktur. dosya sistemi Unix) ve izinler için Chmod. Bir dosyanın "X" izni (chmod x) seti varsa, yürütme için çalıştırılabileceği anlamına gelir.

Şimdi klasöre (dizine) erişim hakları (Chmod) hakkında:

    r - dizini okuma hakkı (dizinin içeriğini okuyabilir, yani içindeki nesnelerin bir listesini alabilirsiniz)

    w - dizinin içeriğini değiştirme hakkı (bu dizinde nesneler oluşturabilir ve silebilirsiniz ve yazma izniniz varsa, size ait olmayan dosyaları bile silebilirsiniz)

    x - dizine girmenize izin veren hak (bu hak her zaman önce kontrol edilir ve dizin zincirinin derinliklerine gömülü bir nesne için gerekli tüm haklara sahip olsanız, ancak "X" hakkına sahip olmasanız bile). bu dosya yolundaki en az bir dizine erişin, ona asla ulaşamayacaksınız)

AT linux sistemleri(Unix) tüm bu haklar bilgisayarın ana yöneticisi tarafından verilir, erişim şifre girerek elde edilir. Ve çoğu nesne salt okunur erişim haklarına (Chmod) sahipse, virüslerin böyle bir bilgisayarda yapacağı neredeyse hiçbir şey olmayacaktır. orada kendilerini kaydedemeyecekler, sonra da yerine getirilemeyecekler. Sitemizin nesnelerine erişim haklarını (Chmod) ayarlayarak elde etmemiz gereken bu sonuçtur.

Kullanıcı Grupları için Chmod Sözdizimi

İzinlerin kendileri (Chmod), nesneye kimin eriştiğine bağlı olarak üç kategoriye ayrılır:

    "user" - u (doğrudan dosya sahibi)

    "grup" - g (sahibiyle aynı grubun üyesi)

    "dünya" - o (diğer herkes)

Sunucuya bağlandığınızda hangi kullanıcı grubuna ait olduğunuzu sunucu belirler. Örneğin FTP üzerinden bir sunucuya bağlandığınızda, kullanıcı adınız (ve şifreniz) ile giriş yaparsınız ve sunucu sizi “user” (“u)” grubuna atar. FTP üzerinden sunucuya bağlanan diğer kullanıcılar “grup” (“g”) grubuna atanacak ve tarayıcısını kullanarak sitenize gelen kullanıcı “dünya” (“o”) grubuna dahil olacaktır.

"u", "g" ve "o" üç kategorisi için "r", "w" ve "x" olası üç değerinin varyasyonları, dosyalar için Chmod'u tanımlar. Kategori belirtilmemişse, kısa çizgi "-" ile değiştirilir. erişim hakları (Chmod) verilen sırada sırayla belirtilir:

    sahibi için ilk haklar - "u"

    sonra grup için - "g"

    ve herkes için hakkın sonunda - "o"

Sunucu kullanıcıyı atadıktan sonra belirli grup, ona nesneler üzerinde hareket etme haklarını verir, bundan sonra kullanıcı dosyayı okuyabilir, yazabilir veya yürütebilir (grubunun bu nesneyle ne yapmasına izin verildiğine bağlı olarak). Bir klasörün içeriğini görmek için, "r" okuma özniteliğine sahip olmalıdır (sunucunun kullanıcıyı atadığı grup için). Varolan bir dosyada veya klasörde bir dosya veya klasör oluşturmak için, bunun Chmod niteliğinin "w" girişine ayarlanmış olması gerekir.

Netlik için, dosyanın sahibinin ("kullanıcı" - "u") tüm haklara sahip olduğu bir örneğe bakalım: okuma, yazma ve yürütme hakkı ve diğer tüm kullanıcılar sadece okuma hakkına sahiptir. Böyle bir Chmod girişi şöyle görünür: "rwx r-- r--". Ayrıntılı olarak ele alalım: "rwx" (bu girdi, nesnenin sahibi için hakları belirler - "u"), "r--" (bu girdi aynı nesnenin haklarını belirler, ancak kullanıcı tarafından atanırsa sunucu grubuna - "g ”), “r--” (bu giriş, diğer tüm kullanıcılar için nesnenin haklarını ayarlar - o”).

Chmod dosyaları ve klasörleri arasındaki fark nedir

Hiçbir şey yapılamaz

Dizine ve alt dizinlerine erişim reddedildi

İçeriği görebilir ve düzenleyebilir

Klasör dosyası ekleyebilir, silebilir, değiştirebilir

Dosya ikili ise çalıştır

Kullanıcı, var olduğunu bildiği bir ikili dosyayı çalıştırabilir, dizine erişim veya dizini okumanın yasak olduğunu

Chmod Sözdizimi Sayısal (777)

Burada erişim haklarını tanımlamak için Latin harflerini ve kısa çizgileri kullanan kayıtların kullanıldığını görebilirsiniz, ancak muhtemelen Chmod'un genellikle dijital biçimde ayarlandığı gerçeğiyle zaten karşılaşmışsınızdır, örneğin, iyi bilinen kombinasyon: Chmod 777, her şeye izin verir ve herkes. Gerçekten de erişim hakları (Chmod) sayılarla da belirtilir:

    w (kayıt) 2 ile değiştirilir

    x (yürütme) 1 ile değiştirilir

0 hiçbir şey yapmamak anlamına gelir (alfabetik gösterimde kısa çizgi ile gösterilir) Biraz önce verdiğim erişim hakları notasyonu örneğine geri dönelim: rwx r-- r--. İçindeki harfleri ve kısa çizgileri az önce açıklanan kurala göre sayılarla değiştirir ve aynı zamanda her üçlüdeki sayıları toplarsak, şunu elde ederiz: dijital görünüm bu girdinin: 744. I.e. bu sayıların toplamının Chmod'u dosyalara veya bir klasöre gösterdiği ortaya çıktı. Örneğin:

    7 (rwx) = 4 + 2 +1 (tüm haklar)

    5 (r-x)= 4 + 0 + 1 (oku ve çalıştır)

    6 (rw-) = 4 + 2 + 0 (okuma ve yazma)

    4 (r--) =4 + 0 + 0 (salt okunur)

Bu tablo, tüm olası Chmod kombinasyonlarını sayısal biçimde listeler:

Şimdi de kullanıcı gruplarıyla ilgili olarak çeşitli Chmod kombinasyonlarına bakalım:

""Mal sahibi""

""Grup""

""Dinlenme""

rol yapmak

rol yapmak

rol yapmak

Siz kendiniz (Siteye FTP üzerinden eriştiğiniz zamanlar hariç) ve sitenize gelen diğer tüm ziyaretçiler “word” grubuna (diğer herkes) aittir, bu nedenle web sitesi ile çalışmak için önce son (üçüncü) haneye bakmamız gerekir. Chmod. Kullanıcı site ile çalışırken betiğin “dosyayı başlatabilmesi” için, üzerinde “4” den başlayarak erişim haklarının (Chmod) ayarlanmış olması yeterli olacaktır (r-- - salt okunur) (5, 6,7 de uygundur, ancak bu, güvenlik nedeniyle aşırıya kaçacaktır.

Bu betiğin dosyasının bulunduğu “klasör” için en az “5” ayarlamanız gerekir (r-x - klasöre gidip içeriğini okuyabilirsiniz, silemez veya ekleyemezsiniz). 7 de uygundur, ancak güvenlik açısından da gereksiz olacaktır. Komut dosyasının yalnızca bazı verileri okumakla kalmayıp aynı zamanda bazı verileri (örneğin, kullanıcı tarafından girilen) “yazmasını” istiyorsanız, “klasör” için minimum haklar hala “5” olacaktır, ancak “dosya” zaten olacaktır. “6 » (okuma ve yazma) haklarına ihtiyacınız var.

Büyük olasılıkla, site motorunuzun içeriğini kopyaladığınız sunucuda, nesnelere aşağıdaki Chmod yüklenecektir:

Klasörler 755

sahip (kullanıcı) her şeyi yapabilir, grup ve diğer herkes yalnızca klasörleri okuyabilir ve bunlara girebilir, ancak dosya yazmalarına, adlarını değiştirmelerine ve dizinlerde silmelerine izin verilmez. (rwxr-xr-x)

Dosyalar 644

Html'den oluşan bir siteniz varsa, her şeyi böyle bırakabilirsiniz. Ancak modern siteler motorlar üzerine kuruludur ve "dünya" grubundan - o (herkes) kullanıcılar adına yazılması gereken nesneler olabilir. Bunlar, sayfaları önbelleğe almak için kullanılan klasörler veya site ile çalışırken resimlerin vs. yükleneceği klasörler olabilir.Siteye FTP üzerinden erişirseniz, bu dosya veya klasörlere yazabileceğinizi söylemeye gerek yok. ancak normal bir kullanıcı olarak web sitesi arayüzü ile çalışırken sorun yaşayabilirsiniz. Bu nedenle, belirli Chmod'ların kurulumuna seçici olarak yaklaşılmalıdır.

Takım chmod (MODU değiştir- mod değiştir) çok özel bir sözdizimine sahiptir. Genel olarak sözdizimi:
ama onu karakterize eden şey, rejim değişikliğinin birçok biçim alabilmesidir. İki şekilde belirtilebilir:

  1. sekizlik bir sayı olarak. Sahip izinleri, 00 biçimindeki sayılara karşılık gelir ve burada atanan izne karşılık gelir: 4 okuma, 2 yazma ve 1 yürütme için. Benzer şekilde, sahip grubu için izinler 0 olur ve "diğerleri" için izinler olur. Ardından, istediğiniz modu elde etmek için atadığınız izinlerin toplamını bulmanız yeterlidir. Yani, rwxr-xr-- izinleri 400+200+100 (sahip izinleri, rwx) +40+10 (grup izinleri, r-x) +4 (diğer izinler, r--) = 754'e karşılık gelir; dolayısıyla izinler ücretsiz üyeler bazında ifade edilmektedir. Bu, önceki izinlerin koşulsuz olarak değiştirildiği anlamına gelir;
  2. ifadeler kullanarak. Bu durumda izinler, virgülle ayrılmış bir dizi ifadeyle ifade edilir. Buradan ifade şu hale gelir: [kategori]<+|-|=><разрешения> .
Örnekler:
  • chmod -R o-w /paylaşılan/belgeler: /shared/docs/ dizinindeki tüm dosyalardan ve alt dizinlerden başkaları için yazma iznini yinelemeli olarak kaldırır.
  • chmod -R og-w,o-x özel/: grup ve diğerleri için yazma iznini tüm özel/ dizinden yinelemeli olarak kaldırır ve diğerleri için yürütme iznini kaldırır.
  • chmod -c 644 çeşitli/dosya*: misc/ dizinindeki adları file ile başlayan tüm dosyaların izinlerini rw-r--r-- olarak değiştirir (yani herkes için okuma izni ve yalnızca sahibi için yazma izni) ve yalnızca bundan etkilenen dosyaları bildirir komuta.

Aşağıdaki örnek, tüm kullanıcıların bir dosyayı okumasına, değiştirmesine ve kaydetmesine nasıl izin verileceğini gösterir. Bunu yapmak için "diğerleri" grubunun izinlerini değiştirmeniz gerekir.
Komut satırına girin:
ls -l example1.txt Aşağıdaki bilgiler görüntülenecektir:
-rw-rw-r-- 1 kullanıcı kullanıcı 42 Mart 24 22:07 example1.txt Şimdi aşağıdaki komutu girin:
chmod o+w example1.txt o+w komutu, "o" harfiyle gösterilen "diğerlerine", example1.txt dosyasına yazma izni verdiğiniz anlamına gelir. Belirtilen komutun yürütülmesinin neyle sonuçlandığını görmek için dosyaya tekrar bakalım:
-rw-rw-rw- 1 kullanıcı kullanıcı 42 Mart 24 22:09 example1.txt Artık herkes dosyayı okuyabilir ve yazabilir.
example1.txt dosyasına okumayı ve yazmayı devre dışı bırakmak için chmod komutunu kullanın.
chmod go-rw example1.txt go-rw komutu, sisteme grubun ve "diğerlerinin" ornek1.txt dosyasını okumasını ve bu dosyaya yazmasını engellemek istediğinizi söyler.
Sonuç olarak, izinler şöyle görünecektir:
-rw------- 1 kullanıcı kullanıcı 42 24 Mart 22:10 example1.txt Yukarıdaki sınıflar ve haklar, karşılık gelen İngilizce kelimelerin kısaltmasıdır, bu nedenle hatırlamaları kolaydır: hatırlamanız gereken tek şey birkaç karakterdir ve harfler.
İşte bu kısaltmaların transkriptlerinin bir listesi:

Sınıflar u - dosyanın sahibi olan kullanıcı (İngilizce "kullanıcı" dan);
g - kullanıcının ait olduğu grup (İngilizce "grubundan");
o - geri kalanı (İngilizce "diğerleri" nden mal sahibi veya sahip grubu değil);
a - hepsi (u, g ve o, İngilizceden " hepsi"). İzinler r - okuma hakkı;
w yazma hakkıdır;
x - yürütme hakkı. Eylemler + - hakkı verir;
- - hakkı elinden alır;
= - sadece bu hakkı bırakır.

Bilginizi test etmek ister misiniz? Tüm kullanıcılardan example1.txt dosyasının tüm haklarını kaldırın.
chmod a-rwx example1.txt Şimdi okuyabiliyor musunuz kontrol edin verilen dosya komut kedisi example1.txt . Aşağıdakileri görmelisiniz:
cat: example1.txt: İzin reddedildi Kendi izinleriniz de dahil olmak üzere tüm izinleri iptal ederek dosyaya erişimi reddettiniz. Ancak dosya size ait olduğu için aşağıdaki komutla her zaman hakları iade edebilirsiniz:
chmod u+rw example1.txt Bu dosyayı okuyabildiğinizden emin olmak için cat example1.txt komutunu kullanın.
İşte chmod komutunu kullanmanın bazı örnekleri:

  • g+w Sahip olan gruba yazma izni verir.
  • o-rwx - diğer kullanıcılardan tüm hakları alır;
  • u+x - sahibine dosyayı yürütme hakkı verir;
  • a+rw - herkesin bir dosyayı okumasına ve yazmasına izin verir;
  • ug+r - dosya sahibinin ve grubun dosyayı okumasına izin verir;
  • g=rx - grubun dosyayı okumasına ve yürütmesine izin verir (ona yazmaz).

-R seçeneği, tüm dizin ağacı için izinleri değiştirmenize olanak tanır.
Dizinler uygulama olarak "yürütülemeyeceğinden", uygun hakkın eklenmesi veya çıkarılması, dizinin görüntülenmesine izin vermek (veya izin vermemek) anlamına gelir.
Örneğin, diğer kullanıcıların docs/ dizinini yürütmesini engellerseniz, kimin okuma ve yazma izinlerine sahip olduğunun bir önemi yoktur. İçerdiği dosyanın tam adını bilmedikçe hiç kimse bir dizinin içeriğine erişemez.
Örneğin:
chmod a-x docs, tüm kullanıcılardan yürütme iznini iptal eder.
Şimdi dizini cd docs ile değiştirmeyi denerseniz, bir hata alırsınız:
bash: docs: İzin reddedildi Kendiniz ve grubunuz için izinleri geri alın:
chmod ug+x docs Şimdi ls -l komutuyla eylemlerinizin sonuçlarını kontrol ederseniz, yalnızca diğer kullanıcıların docs/ dizinine erişiminin reddedildiğini göreceksiniz.