chmod Hesaplayıcı — Linux Dosya İzinleri
Linux dosya izinlerini sekizlik (755, 644) ve rwx simgeleri arasında çevrimiçi dönüştürün. Hazır chmod komutları alın, 777 gibi riskli ayarları anında yakalayın — ücretsiz, tamamen tarayıcınızda çalışır.
| Okuma (4) | Yazma (2) | Çalıştırma (1) | Basamak | rwx | |
|---|---|---|---|---|---|
| Sahip (u) | 7 | rwx | |||
| Grup (g) | 5 | r-x | |||
| Diğerleri (o) | 5 | r-x |
- Sayısal (mutlak) mod
chmod 755 file- Sembolik mod
chmod u=rwx,go=rx file- Özyinelemeli (-R)
chmod -R 755 dir- Yalnızca dizinler
find dir -type d -exec chmod 755 {} +- Yalnızca dosyalar
find dir -type f -exec chmod 644 {} +
İpucu: chmod -R u+rwX, çalıştırmayı yalnızca dizinlere ve zaten çalıştırılabilir dosyalara ekler — toptan -R 755'ten daha güvenlidir.
Linux'ta 755 gibi sayısal bir chmod, dizinlerdeki mevcut setuid/setgid'i korur — 00755, =755 veya u-s,g-s ile açıkça temizleyin (BSD/macOS varsayılan olarak temizler).
Bir dosyanın geçerli modu: stat -c '%a' file (Linux) · stat -f '%Lp' file (macOS)
umask Hesaplayıcı
effective = base & ~umask
Linux Dosya İzinleri Tablosu: Yaygın chmod Değerleri
| Sekizlik | Sembolik | Tipik kullanım | Sahip | Grup | Diğerleri |
|---|---|---|---|---|---|
| 400 | r-------- | SSH özel anahtarı (salt okunur) | r-- | --- | --- |
| 600 | rw------- | Özel dosyalar, SSH anahtarları | rw- | --- | --- |
| 644 | rw-r--r-- | Web sayfaları, yapılandırma dosyaları | rw- | r-- | r-- |
| 664 | rw-rw-r-- | Grupça düzenlenebilir dosyalar | rw- | rw- | r-- |
| 666 | rw-rw-rw- | Herkes düzenleyebilir — kaçının | rw- | rw- | rw- |
| 700 | rwx------ | Özel dizinler | rwx | --- | --- |
| 755 | rwxr-xr-x | Betikler, web dizinleri | rwx | r-x | r-x |
| 775 | rwxrwxr-x | Grup paylaşımlı dizinler | rwx | rwx | r-x |
| 777 | rwxrwxrwx | Herkes her şeyi yapabilir — kaçının | rwx | rwx | rwx |
| 1777 | rwxrwxrwt | Paylaşılan geçici dizinler (/tmp) | rwx | rwx | rwt |
Bir Bakışta 0-7 İzin Basamakları
| Basamak | İkilik | rwx | Anlamı |
|---|---|---|---|
| 0 | 000 | --- | İzin yok |
| 1 | 001 | --x | Yalnızca çalıştırma |
| 2 | 010 | -w- | Yalnızca yazma |
| 3 | 011 | -wx | Yazma + çalıştırma |
| 4 | 100 | r-- | Yalnızca okuma |
| 5 | 101 | r-x | Okuma + çalıştırma |
| 6 | 110 | rw- | Okuma + yazma |
| 7 | 111 | rwx | Okuma + yazma + çalıştırma |
chmod Nedir?
chmod — change mode (modu değiştir) — bir dosyayı kimin okuyabileceğini, yazabileceğini veya çalıştırabileceğini belirleyen Unix ve Linux komutudur. Her dosya üç grupta (sahip, grup, diğerleri) dokuz izin biti taşır ve chmod bunları iki biçimde kabul eder: chmod 755 gibi sayısal (mutlak) modda bir sekizlik sayı olarak ya da chmod u=rwx,go=rx gibi sembolik modda harflerle. İkisi de tam olarak aynı bitleri tanımlar; bu hesaplayıcı aralarında canlı çeviri yapar.
Sekizlik kısaltmanın çalışmasının nedeni her iznin 2'nin bir kuvveti olmasıdır: okuma 4, yazma 2, çalıştırma 1'dir ve sınıf başına tek basamak bunların toplamıdır. Yani 7 her şey demektir (4+2+1), 5 okuma artı çalıştırma, 6 okuma artı yazma, 0 ise hiçbir şey. rwxr-xr-x'i soldan sağa üçerli okuyun; 7, 5, 5 elde edersiniz. Baştaki dördüncü bir basamak özel modları kodlar — setuid (4), setgid (2) ve sticky biti (1) — 4755 veya 1777 böyle ortaya çıkar; varlıkları sembolik dizede x yerine s veya t olarak görünür.
İzinler Unix güvenliğinin ilk katmanıdır ve günlük izin sorunlarının çoğu bir avuç desene indirgenir: çalışmayan bir betiğin çalıştırmaya ihtiyacı vardır (u+x), giremediğiniz bir dizinin x biti eksiktir, bir web varlığı üstündeki 755 dizinlerle birlikte 644 olmalıdır ve OpenSSH'nin bir özel anahtara dokunması için anahtar önce 600 yapılmalıdır. Hatalar da aynı şekilde kümelenir — en ünlüsü, erişim hatalarını makinedeki her hesaba yazma izni dağıtarak "düzelten" chmod 777'dir. Bu sayfa aritmetiği, sembolleri, çalıştırmaya hazır komutları ve risk uyarılarını tek yerde toplar; sekizlik de sonuçta yalnızca 8 tabanı olduğundan, alttaki konumsal aritmetiği sayı tabanı dönüştürücü ile keşfedebilirsiniz.
# Make a script executable, then verify with ls -l $ ls -l deploy.sh -rw-r--r-- 1 jack staff 512 Jul 17 10:00 deploy.sh $ chmod 755 deploy.sh $ ls -l deploy.sh -rwxr-xr-x 1 jack staff 512 Jul 17 10:00 deploy.sh # The symbolic equivalent of 755 $ chmod u=rwx,go=rx deploy.sh # Read the current mode as a number $ stat -c '%a' deploy.sh # Linux → 755 $ stat -f '%Lp' deploy.sh # macOS → 755
Temel Özellikler
Üç görünüm, tek durum
Onay kutusu matrisi, sekizlik sayı ve sembolik rwx dizesi — üçü de canlı giriştir; herhangi birini düzenleyin, diğer ikisi her iki yönde anında güncellenir.
Özel bitler hakkıyla ele alınır
setuid, setgid ve sticky biti birinci sınıftır: dördüncü sekizlik basamak, s/S ve t/T büyük-küçük harf kuralları ve doğru sembolik ifadeler (u+s, g+s, a+t) tam olarak chmod'un anladığı biçimde gösterilir.
ls -l çıktısını doğrudan yapıştırın
Sembolik alana tam bir ls -l satırı bırakın — dosya türü karakteri, SELinux noktası, ACL artısı veya macOS @ işareti sorunsuz işlenir — ve sekizlik modu elle kırpmadan geri alın.
Gerçekten çalıştırabileceğiniz komutlar
Sayısal, sembolik, özyinelemeli ve daha güvenli find -type d / find -type f çifti, her biri kopyalama düğmesiyle — ayrıca bir dosyanın geçerli modunu okuyan stat komutu ve dizinlerde setuid temizliğine dair GNU notu.
Siz yazarken risk uyarıları
Herkes tarafından yazılabilir modlar anında yanar: 777 ve 666 açıkça vurgulanır, diğerlerine yazma veren her bit bir uyarı tetikler ve 1777, bir hata olarak değil paylaşılan dizinlerin sticky bitli standart deseni olarak doğru tanınır.
umask, tablolar ve kalıcı bağlantılar
Entegre umask hesaplayıcı yeni dosya ve dizinlerin alacağı izinleri gösterir, iki başvuru tablosu yaygın modları ve 0-7 basamaklarını kapsar, Bağlantıyı kopyala ise tam durumu paylaşır — hepsi %100 tarayıcınızda.
chmod İzin Örnekleri
755 — betikler ve web dizinleri için standart
755
rwxr-xr-x — chmod 755 file · chmod u=rwx,go=rx file
755 modu sahibe tam denetim verir (okuma + yazma + çalıştırma = 4 + 2 + 1 = 7); grup ve diğerleri ise okuyup çalıştırabilir ama asla değiştiremez (4 + 1 = 5). Bir dağıtım betiğinin veya herkese açık bir web dizininin ihtiyacı tam olarak budur: sunucu içeriği gezip sunabilir, ancak yalnızca sahip değiştirebilir. Hesaplayıcı iki komut biçimini de gösterir — sayısal 755 ve sembolik eşdeğeri u=rwx,go=rx — yalnızca dosyalar tarifi ise otomatik olarak 644'e iner, çünkü normal dosyalar gerek duymadıkları çalıştırma bitlerini taşımamalıdır.
600 — özel bir dosyayı yalnızca sahibine kilitleyin
600
rw------- — sahip okur ve yazar, diğer herkes hiçbir şey göremez
600 modu (rw-------) SSH özel anahtarları, .env dosyaları, API kimlik bilgileri ve makinedeki başka hiçbir hesabın açmaması gereken her şey için doğru ayardır. OpenSSH bunu aktif olarak zorlar: grup veya diğerleri tarafından okunabilen bir anahtar, meşhur 'Permissions 0644 ... are too open' hatasıyla reddedilir. 600 çipini yükleyin, chmod 600 file komutunu kopyalayın; risk paneli sessiz kalır — bu, doğru uygulanmış en az ayrıcalık temelidir.
4755 — setuid anatomisi: x neden s olur
4755
rwsr-xr-x — sahibin çalıştırma konumunda x yerine s görünür
Baştaki 4, setuid bitidir: programı kim çalıştırırsa çalıştırsın, dosya sahibinin ayrıcalıklarıyla yürütülür — passwd komutunun normal bir kullanıcı adına root'a ait bir dosyayı güncelleyebilmesi bu sayededir. Sembolik biçimde sahibin çalıştırma konumu x'ten s'ye dönüşür (küçük s, çalıştırmanın da ayarlı olduğu anlamına gelir; büyük S ise çalıştırma olmadan setuid demektir — bu neredeyse her zaman bir hatadır). Hesaplayıcı dördüncü sekizlik basamağı gösterir, setuid kutusunu işaretler ve bilgilendirici bir uyarı verir, çünkü setuid çalıştırılabilir dosyalar bilinçli bir gözden geçirmeyi hak eder.
ls -l çıktısını çözün — satırın tamamını yapıştırın
drwxr-xr-x 5 jack staff 160 Jul 17 dist
755
ls -l çıktısından bir satırı olduğu gibi kopyalayıp sembolik alana yapıştırın — kırpmaya gerek yok. Araç ilk belirteç olan drwxr-xr-x'i okur, baştaki d'nin bir izin değil dosya türü karakteri (dizin) olduğunu anlar, bazı sistemlerin sona eklediği SELinux noktasını, ACL artı işaretini veya macOS @ işaretini tolere eder ve kalan dokuz karakteri sekizlik 755'e dönüştürür. Bir kod incelemesi ya da olay müdahalesi sırasında 'bu iznin sayısı kaç?' sorusunun en hızlı yanıtı budur; sembolik bağlantıların l'si ve normal dosyaların - karakteriyle de aynı şekilde çalışır.
chmod Hesaplayıcı Nasıl Kullanılır
- 1
İzinleri dilediğiniz yoldan ayarlayın
Sınıf başına okuma, yazma ve çalıştırma kutularını işaretleyin, 755 veya 4755 gibi bir sekizlik mod yazın ya da hazır çiplerden biriyle başlayın — SSH anahtarı 400, özel dosya 600, web dosyası 644, betik 755 ve daha fazlası.
- 2
Üç görünümü aynı anda okuyun
Onay kutusu matrisi, sekizlik değer ve sembolik rwx dizesi her yönde eşzamanlı kalır; siz çalışırken her satır kendi basamağını ve üç karakterlik dilimini gösterir.
- 3
Tam ihtiyacınız olan komutu kopyalayın
Çalıştırmaya hazır beş varyant canlı güncellenir: sayısal mod, akıllı gruplamayla sembolik eşdeğeri, özyinelemeli -R ve find -type üzerine kurulu daha güvenli yalnızca dizinler / yalnızca dosyalar çifti.
- 4
Mevcut izinleri çözün
Dosya türü karakteri ve ACL işaretleri dahil tam bir ls -l satırını sembolik alana yapıştırın ve sekizlik değeri — özel bitler dahil — anında okuyun.
- 5
umask'ı kontrol edin ve sonucu paylaşın
umask bölümü yeni dosya ve dizinlerin hangi izinleri alacağını gösterir; Bağlantıyı kopyala ise geçerli modu, bir kod incelemesine veya runbook'a bırakabileceğiniz bir URL'de yakalar.
Yaygın chmod Hataları
Permission denied'ı 777 ile "düzeltmek"
Modu dünyaya açmak genellikle bir sahiplik sorununu çözmek yerine maskeler — ve makinedeki her hesabı dosyalarınızı değiştirebilir halde bırakır. Önce sahibi düzeltin; modu sıkı tutun.
sudo chmod -R 777 /var/www # erişim çalışır, güvenlik biter
sudo chown -R www-data:www-data /var/www # sahipliği düzeltin, 755/644 kalsın
Yükleme dizinine toptan chmod -R
Özyinelemeli sayısal modlar dosyalara ve dizinlere aynı değeri uygular: 755 her resmi ve belgeyi 'çalıştırılabilir', 777 ise herkes tarafından yazılabilir yapar. Bunun yerine özyinelemeyi türe göre bölün.
chmod -R 777 uploads/
find uploads -type d -exec chmod 755 {} + && find uploads -type f -exec chmod 644 {} + Dizinlerin çalıştırma gerektirdiğini unutmak
Bir dizindeki x biti 'girilebilir ve içinden geçilebilir' demektir. 644 olan bir dizine, onu listeleyebilen kullanıcılar bile cd yapamaz — bu da bir seviye derinde kafa karıştıran Permission denied hataları üretir.
chmod 644 reports/ # cd reports/ → Permission denied
chmod 755 reports/ # dizinler girilebilsin diye x taşır
Bir betiği çalıştırma biti olmadan yayınlamak
Yeni oluşturulan bir dosya 644 gibi umask varsayılanlarını devralır; en azından sahip için çalıştırma eklenene dek ./script.sh Permission denied ile başarısız olur. CI çalıştırıcıları ve Docker entrypoint'leri buna sürekli takılır.
./deploy.sh # bash: ./deploy.sh: Permission denied
chmod u+x deploy.sh && ./deploy.sh
chmod Hesaplayıcı ile Neler Yapabilirsiniz
- Web sunucularına güvenle dağıtın
- nginx veya Apache kök dizinleri için üretilen find komutlarıyla dizinlere 755, dosyalara 644 ayarlayın; yayına almadan önce hiçbir şeyin herkes tarafından yazılabilir olmadığını risk paneli doğrulasın. Bir dizinin ayrıca temel kimlik doğrulama koruması gerektiğinde htpasswd üretici ile birlikte kullanın.
- SSH anahtar izinlerini düzeltin
- 400 ve 600 hazır çipleri, OpenSSH'nin özel anahtarlar için talep ettiği ayarı birebir üretir; SSS bölümü de bir anahtar grup tarafından okunabilir bırakıldığında beliren 'Permissions 0644 ... are too open' hata mesajını adım adım ele alır.
- Olay müdahalesinde izinleri çözün
- Üretim kabuğundan aldığınız ls -l satırlarını doğrudan sembolik alana yapıştırın ve rwxr-sr-x'i kafanızda bit saymadan 2755'e çevirin — özel modlar, ACL işaretleri ve dosya türü karakterlerinin tümü anlaşılır.
- Paylaşımlı barındırma ve FTP modlarını doğru ayarlayın
- Denetim panelleri ve FTP istemcileri sayısal mod ister: public_html için 755, sayfalar için 644, kimlik bilgisi içeren yapılandırma dosyaları için 600. Hazır ayarı yükleyin, tabloyu okuyun, sayıyı kopyalayın — tahmine yer yok.
- Container'ları ve CI betiklerini hazırlayın
- Docker veya bir CI çalıştırıcısının yürütebilmesi için entrypoint ve hook betikleri u+x gerektirir; volume bağlamaları ise ana makinenin modlarını devralır. Her durum için gereken chmod'u burada üretin, bunları çalıştıracak işleri de crontab oluşturucu ile zamanlayın.
Linux Dosya İzinleri Nasıl Çalışır
- Sekizlik aritmetik: 4 + 2 + 1
- Her kullanıcı sınıfı bir sekizlik basamak alır ve basamak, okuma = 4, yazma = 2 ve çalıştırma = 1 toplamıdır. Sekiz kombinasyonun tümü vardır: 0 hiçbiri, 1 yalnızca çalıştırma, 2 yalnızca yazma, 3 yazma + çalıştırma, 4 yalnızca okuma, 5 okuma + çalıştırma, 6 okuma + yazma, 7 üçü birden. Dolayısıyla 640 gibi bir mod şöyle okunur: sahip 6 (okuma + yazma), grup 4 (yalnızca okuma), diğerleri 0 (hiçbir şey). Bu sayfadaki basamak tablosu sekiz satırın tamamını listeler; matris de siz kutuları işaretledikçe aynı toplamın kurulduğunu gösterir.
- Sayısal (mutlak) mod ile sembolik mod
- chmod aynı bitleri iki yolla kabul eder. Sayısal mod sonucun tamamını belirtir — chmod 755 file, önceki değer ne olursa olsun yerine geçer. Sembolik mod ise mevcut duruma göre bir değişiklik tanımlar: chmod u=rwx,go=rx file sınıfları açıkça ayarlar, chmod g+w file ise tek bir biti çevirir ve gerisine dokunmaz. Sayısal mod, betiklerde ve dağıtımda bilinen iyi bir durumu sabitlemek için idealdir; sembolik mod u+x gibi tek seferlik ayarlamalarda öne çıkar. Bu hesaplayıcı ikisini de üretir ve grup sınıflarını deneyimli yöneticilerin yazdığı gibi otomatik birleştirir (go=rx, a=rwx).
- setuid, setgid ve sticky biti
- Baştaki dördüncü sekizlik basamak özel modları kodlar: setuid = 4000 bir çalıştırılabilir dosyayı sahibinin ayrıcalıklarıyla çalıştırır, setgid = 2000 aynısını grup için yapar (ve bir dizindeki yeni dosyaların dizinin grubunu devralmasını sağlar), sticky biti = 1000 ise paylaşılan bir dizinde silmeyi her dosyanın kendi sahibiyle sınırlar — /tmp, kanonik 1777'dir. ls -l çıktısında çalıştırma konumunun yerini alırlar: çalıştırma da ayarlıysa küçük s veya t, değilse büyük S veya T (genellikle kontrol edilmeye değer bir yanlış yapılandırma). Bir GNU/Linux inceliği: sayısal chmod, dizinlerdeki mevcut setuid/setgid'i bilerek korur — GNU coreutils kılavuzunda belgelendiği gibi 00755 gibi 5 basamaklı bir modla, =755 gibi bir eşittir ifadesiyle veya u-s,g-s ile temizleyin. BSD ve macOS ise sayısal modlarda bunları varsayılan olarak temizler.
- umask yeni dosyaları nasıl şekillendirir
- Yeni oluşturulan dosyalar 666, dizinler 777 tabanından başlar; sürecin umask'ı ardından içerdiği bitleri kapatır — etkin mod = taban & ~umask. Varsayılan umask 022, grup ve diğerlerinin yazma bitlerini maskeleyerek tanıdık 644 dosyaları ve 755 dizinleri verir. Daha katı 077, 600 ve 700 üreterek her şeyi sahibine özel tutar; iş birliğine dönük 002 ise grubun yazabilmesi için 664 ve 775 verir. Bu sayfadaki umask bölümü hesaplamayı iki taban için de canlı çalıştırır.
Dosya İzinlerinde En İyi Uygulamalar
- İşe yarayan en az ayrıcalığı verin
- En sıkı moddan başlayın ve yalnızca bozulan şeyi açın: özel dosyalar için 600, paylaşımlı okunabilir olanlar için 644, çalıştırma veya dizine girme gerçekten gerektiğinde 755. Fazladan her yazma biti saldırı yüzeyidir.
- Varsayılanınız 755 dizin içinde 644 dosya olsun
- Bu eşleşme neredeyse her web kök dizinine, depo kopyasına ve paylaşımlı okuma senaryosuna hizmet eder. Normal dosyaların çalıştırmaya nadiren ihtiyacı vardır; dizinlerin girilebilmek içinse her zaman — ikisini karıştırmak gündelik izin hatalarının çoğunun nedenidir.
- Toptan -R yerine find -type ile özyineleyin
- chmod -R 755 her dosyayı çalıştırılabilir olarak işaretler. Bu aracın ürettiği yalnızca dizinler ve yalnızca dosyalar komutlarını veya GNU chmod'un büyük X'ini (u+rwX,go+rX) kullanın; çalıştırmayı yalnızca ait olduğu yere ekler.
- Sunucunun erişebildiği hiçbir şeyde 777 bırakmayın
- Herkes tarafından yazılabilir web kökleri ve yükleme dizinleri, bulaştırılan dosyalar ile tahrif edilen sitelerin klasik yoludur. Birden çok hesabın yazması gerekiyorsa, modu dünyaya açmak yerine 775 veya 2775 ile paylaşılan bir grubu tercih edin (setgid, grup sahipliğini tutarlı tutar).
- SSH anahtarlarını 600'de tutun — kesinleşince 400
- OpenSSH, grup veya herkes tarafından okunabilen özel anahtarları doğrudan reddeder. 600 çalışma standardıdır; 400 ayrıca hiç düzenlemeyeceğiniz bir anahtarın yanlışlıkla üzerine yazılmasını da önler. Açık anahtarlar ve authorized_keys için 644 uygundur.
chmod Hesaplayıcı SSS
chmod 777 ne demek?
chmod 777 tehlikeli mi?
chmod 755 ile 644 arasındaki fark nedir?
"Permissions 0644 for 'id_rsa' are too open" hatası nasıl düzeltilir?
chmod ile chown arasındaki fark nedir?
chmod +x ne yapar?
Tüm dosya ve dizinlere chmod'u özyinelemeli olarak nasıl uygularım?
Bu hesaplayıcıyı kullanırken verilerim yükleniyor mu?
İlgili Araçlar
Tüm araçları görüntüleyin →Sayı Tabanı Dönüştürücü — Binary, Hex, Decimal ve Octal
Dönüştürme Araçları
Binary, hex, decimal, octal ve herhangi bir taban (2-36) arasında anında dönüştürün. Ücretsiz ve gizli — tüm işlem tarayıcınızda yapılır.
Renk Dönüştürücü — HEX, RGB, HSL & OKLCH
Dönüştürme Araçları
HEX'i RGB, HSL, OKLCH, OKLAB ve CMYK biçimlerine tarayıcınızda dönüştürün — herhangi bir biçimi tek tıkla kopyalayın. Ücretsiz, kayıt yok, renkleriniz sayfadan asla çıkmaz.
HEX'ten CMYK'ye Dönüştürücü
Dönüştürme Araçları
HEX renklerini tarayıcınızda CMYK'ye dönüştürün. Baskı önizlemeleri için sRGB tabanlı saf yaklaşım. Ücretsiz, kayıt yok, renkleriniz sayfadan asla çıkmaz.
HEX'ten HSL'ye Dönüştürücü
Dönüştürme Araçları
Herhangi bir HEX rengi tarayıcınızda HSL'ye dönüştürün — 3 haneli, 6 haneli ve alpha içeren 8 haneli HEX desteklenir. Ücretsiz, anında, kayıt yok, renkleriniz sayfadan asla çıkmaz.
HEX'ten OKLCH'ye Dönüştürücü
Dönüştürme Araçları
Tailwind v4 tasarım token'ları için HEX'i OKLCH'ye dönüştürün. Display P3 renk gamı uyarılarıyla canlı algısal olarak tekdüze çıktı. Ücretsiz, yalnızca tarayıcıda.
HEX'ten RGB'ye Dönüştürücü
Dönüştürme Araçları
Herhangi bir HEX renk kodunu tarayıcınızda RGB'ye dönüştürün — 3 haneli, 6 haneli ve alpha içeren 8 haneli HEX desteklenir. Ücretsiz, anında, kayıt yok, renkleriniz sayfadan asla çıkmaz.