Какво представляват правата за достъп до файлове в Linux?

Правата за достъп до файлове в Linux контролират кой може да чете, записва или изпълнява файл или директория. Всеки файл в Linux има три групи права: собственик (потребителят, който го е създал), група (потребители, споделящи обща група) и останали (всички останали). На всяка група могат да бъдат предоставени три вида достъп: четене (r), запис (w) и изпълнение (x).

Правата могат да бъдат изразени по два начина. Символният запис използва букви като rwxr-xr-x, където всеки символ представлява конкретно право за конкретна група. Осмичният (числов) запис използва трицифрено или четирицифрено число като 755, където всяка цифра е сумата от стойностите на правата: четене = 4, запис = 2, изпълнение = 1.

Незадължителната водеща цифра в осмичния запис представлява специални битове: setuid (4), setgid (2) и sticky bit (1). Setuid позволява на програма да се изпълнява с привилегиите на собственика на файла, setgid кара новите файлове да наследяват групата на родителската директория, а sticky bit предотвратява изтриването на файлове от потребители, които не са техни собственици, в споделени директории.

Описание на инструмента

Този инструмент ви позволява интерактивно да изграждате и декодирате права за достъп до файлове в Linux. Превключвайте отметките за собственик, група и останали, за да зададете флаговете за четене, запис и изпълнение, и незабавно вижте резултата в осмичен и символен запис. Можете също да въведете директно осмична стойност като 755 или символен низ като rwxr-xr-x, като отметките и визуалният изход се актуализират автоматично. Цветово кодираният визуален дисплей улеснява разбирането кои права са активни с един поглед, а готова за използване команда chmod се генерира автоматично.

Примери

Осмичен Символен Значение
755 -rwxr-xr-x Собственик: пълен достъп. Група и останали: четене и изпълнение.
644 -rw-r--r-- Собственик: четене и запис. Група и останали: само четене.
700 -rwx------ Собственик: пълен достъп. Без достъп за група или останали.
777 -rwxrwxrwx Пълен достъп за всички.
1755 -rwxr-xr-t Същото като 755 с активиран sticky bit.
4755 -rwsr-xr-x Същото като 755 с активиран setuid бит.

Функции

  • Превключване на индивидуални права за четене, запис и изпълнение за всяка група чрез отметки
  • Въвеждане на осмичен (напр. 755) или символен (напр. rwxr-xr-x) запис директно с незабавно преобразуване
  • Цветово кодирани визуални блокове за бързо разпознаване на активните права
  • Поддръжка на специални битове за права: setuid, setgid и sticky bit
  • Автоматично генерирана команда chmod, готова за копиране и използване в терминал

Случаи на употреба

  • Настройка на уеб сървър: Бързо определете правилния набор от права за файлове, обслужвани от Apache или Nginx, като 644 за статични файлове и 755 за изпълними скриптове.
  • Отстраняване на грешки при отказан достъп: Поставете низа с права от изхода на ls -l, за да разберете визуално на коя група липсва достъп.
  • Изучаване на права в Linux: Интерактивно изследвайте как превключването на отделни флагове променя осмичния и символния запис.

Как работи

Всеки тип право има числова тежест: четене = 4, запис = 2, изпълнение = 1. Осмичната цифра за дадена група е сумата от тежестите на активираните права. Например четене + изпълнение = 4 + 1 = 5. Пълният осмичен запис обединява цифрите за собственик, група и останали — така rwxr-xr-x се превръща в 755.

Специалните битове добавят незадължителна водеща цифра, изчислена по същия начин: setuid = 4, setgid = 2, sticky = 1. Стойност 1755 означава sticky bit (1) плюс собственик=7, група=5, останали=5.

Обяснение на опциите

  • Отметки за Собственик / Група / Останали: Превключване на четене (r), запис (w) и изпълнение (x) за всяка група права независимо.
  • Setuid: Когато е зададен на изпълним файл, той се изпълнява с привилегиите на собственика на файла вместо с тези на извикващия потребител.
  • Setgid: В директория новите файлове наследяват групата на директорията. В изпълним файл той се изпълнява с привилегиите на групата на файла.
  • Sticky bit: В директория само собственикът на файла може да изтрива или преименува файлове в нея, дори ако останалите имат право на запис.
  • Осмичен вход: Въведете трицифрено или четирицифрено осмично число, за да зададете всички права наведнъж.
  • Символен вход: Въведете символен низ от 9 или 10 символа (с незадължителен префикс за тип файл), за да зададете правата.

Често задавани въпроси

Какво означава chmod 777? Предоставя права за четене, запис и изпълнение на собственика, групата и всички останали потребители. Това като цяло е небезопасно за производствени системи.

Каква е разликата между малко s и главно S? Малкото s означава, че битът за изпълнение и специалният бит (setuid или setgid) са едновременно активирани. Главното S означава, че е активиран само специалният бит, без право на изпълнение.

За какво се използва sticky bit? Sticky bit обикновено се задава на споделени директории като /tmp, за да се предотврати изтриването или преименуването на файловете на другите потребители, въпреки че всички имат право на запис в директорията.