RSS slacknews.org

  • drop_caches
    Задаването на стойности на /proc/sys/vm/drop_caches кара ядрото да освободи кешовете, dirty страниците и inodes от паметта. За да освободим кешовете: echo 1 > /proc/sys/vm/drop_caches За да освободим dirty страниците и inodes от паметта: echo 2 > /proc/sys/vm/drop_caches За да освободим кешовете, dirty страниците и inodes от паметта: echo 3 > /proc/ […]
  • Конфигуриране на ядрото: Поддръжка на мрежови протоколи
    Менюто с мрежовите настройки съдържа опции за настройване на мрежовите протоколи. Може да включвате или да изключвате поддръжка на цели протоколи, или да настроите финно ядрото за определена роле, като рутер или пакетен филтър. Packet and Socket Options На много ниско ниво ядрото работи като позволява на дадени приложения да приемат или изпращат порции с дан […]
  • Конфигуриране на ядрото
    За да конфигурирате ядрото, трябва да притежавате сорс кода. В Slackware той може да се инсталира заедно с ядрото. Може би бихте искали да започнете със страндартно ядро и да си го пачнете и конфигурирате по ваше желание. Проверете  http://www.kernel.org/ за последна верися на сорс кода на ядрото. Сорс кода на ядрото обикновено се намира в [...] […]
  • Ограничаване на достъпа до команда в Линукс
    Как да огранича достъпа до /usr/local/bin/start само за определени потребители на системата ? Отговорът на върпроса е, че трбва да използвате стандартните Линукс групи. Стъпка 1: Създайте група за всички оторизирани потребители Създайте групата: #groupadd restrictedapp Добавете потребители в тази група: #usermod -aG {име_на_група} {потребителско_име} #usermo […]
  • Взимане на част от текст с bash
    Можем да вземем само част от даден текст много лесно с Bash. Нека да кажем, че имаме 1234567890 или abcdefghij. Може да го направим така : num="1234567890"; echo ${num:5:7} 5 указва началото, а 7 колко символа да вземе. Possibly Related Posts: drop_caches Конфигуриране на ядрото: Поддръжка на мрежови протоколи Конфигуриране на ядрото Ограничаване н […]
  • Когато rm се оплаква, че не може да трие
    Има ограничение на командата rm, когато се опитате да триете много файлове с *. Например: rm -rf something* Ако има много файлове, които започват с something, rm няма да може да ги изтрие и ще изведе: /bin/rm: Argument list too long. Решението на проблема е да ползвате find, xargs и rm. find . -name 'something*' -print0 | xargs -0 rm [...] […]
  • umask: създаване на нови файлове с определени права
    Замисляли ли сте се, че всеки път като създаваме файлове в Линукс те се създават с определени права ? Нека да пробвам: Lets see this: touch testing ls -l testing -rw-r--r-- 1 test test 0 2008-03-08 01:14 testing Файла не би трбвало да се създаде с права за изпълнение, както виждаме изхода от ls. Нека да дадем права за изпълненеи [...] […]
  • Права за достъп до файлове
    chmod (change mode) е доста често използвана команда за администрация. Обикновено я ползваме, за да направим даден скрипт, написан на bash, python, perl изпълним. За да на правил файл изпълним: chmod +x myscript.sh По подразбиране това ще промени атрибута за всички. Файловите атрибути са 3 вида: u ( user – собственик на файла) g ( групата, в която е потребит […]
  • Къде се намират програмите ми и техните конфигурационни файлове ?
    Когато искаме да намерим пълния път до дадена програма, обиконовенно използваме which. Например, ако искаме да видим къде се намира mplayer, може да направим това: which mplayer Има още една команда, която освен, че ви показва пътя до бинарките, ви показва и пътя до сорс файловете, конфигурационите файлове и man страниците. whereis mplayer Ще върне това: mpl […]
  • Как да покажем споделените библиотеки, от които се нуждае програма ?
    Почти всяка програма в Линукс използва споделени библиотеки, дори тези които са компилирани на ръка със gcc. Може да се окаже, че дадена програма компилирана на дадена дистрибуция може да не работи под друга или по-стара версия на същата, на която е била компилирана. Всичко това може да се дължи на липсващи споделени библиотеки. Можем да [...] […]
  • Slackware news: 4 Октомври 2009
    Има две важни промени днес PHP и Samba. Промените са направени едновременно в -Stable и в -Current. В -Current, обаче има и доста други промени като MySQL, Amarok, QT, Perl, както и GCC 4.4.1. Това е последното от -Current changelog-а: Sun Oct 4 00:17:50 CDT 2009 ap/mysql-5.1.39-i486-1.txz: Upgraded. This bumps the version of the shared libraries to .so.16.0 […]
  • GoblinX 3.0
    Flavio Pereira de Oliveira представи днес последната версия на неговата популярна Slackware-базирана жива дистрибуция, GoblinX, още позната като G:Standard. GoblinX 3.0 имаше пет десктоп мениджъра, но явно Flavio е решил да запази само един KDE. С KDE4, тази дистрибуция включва стабилност и добър външен вид в един ISO имидж. В новата версия на GoblinX 3.0: · […]
  • Slackware по лесния начин
    Дайте на човек Ubuntu, и той ще научи Ubuntu. Дайте на човек SUSE, и той ще научи SUSE. Ако дадете на човек Slackware, той ще научи Linux. Това гласи старата максима, обикновено използвана с насмешка, но все още важеща. Ако някога сте се чудили какво прави Slackware толкова популярен сред Линукс ветераните ви представям малко съвети [...] […]
  • Основи на Линукс автоматизацията
    Тази статия описва начина, по който могат да се изпълняват команди в определено време без да се налага на потребителя да ги въвежда. Програмите отговорни за това в линукс са cron и at. Изпълняване на команди в точно определено време: Ако нямате нужда командата да се изпълнява редовно може да използвате. Например може да ползвате : at midnight След [...] […]
  • Facebook пуска свободен високопроизводителен сървър
    Facebook пуска фреймуорк, Tornado, която е написана на питон и е написана специално за обработване на големи обеми информация едновременно. Торнадо е фокусирана върху скоростта на обработка на данните и едновременното обработването на огромни количества трафик. Технологията се разпространява под Apache 2.0 лиценз. Цялата новина може да научите тук. Possibly […]
  • Linux 2.6.31
    Тази версия на ядрото добавя USB 3.0 поддръжка, еквивалент на FUSE за подаване на звук от OSS към ALSA, някой подобрения в управлението на паметта, добавена е поддръжка за ATI Radeon Modesetting, както и за Intel Wireless Multicomm 3200 Wifi устройства. Добавена е поддръжка и за броячите за производителност, поддръжка за gcov, проверка за не [...] […]
  • Как да конфигурираме Squid да ползва refresh patterns
    Squid може да бъде конфигуриран така че да удовлетворява дори най-взискателните конфигурации. При последните версии могат да се конфигурират поне 250 отделни параметъра. Стандартния конфигурационен файл се намира в /etc/squid.conf и заедно с коментарите достига 4600 реда. Конфигурирането на приложението може да се окаже предизвикателство дори за напреднали а […]
  • Преглед на ext3 и ext4 файловите системи
    Има доста въпроси, които се повдигат при създаването на ext3 файлова система. Административни съображения Доста въпроси изникват, когато трябва да се реши как да бъде разделено мястото на хард диска и как трябва това място да се разпредели между различните партишъни и файлови системи. Някои от въпросите, които може би си задавате са: Как бихте искали да план […]
  • Как да търсим файлове в Линукс
    Как да търсим с ‘locate’ Най-лесния начин да търсим файлове в Линукс е с програмата locate. Когато пуснете за пръв път програмата може да ви изпише съобщение за грешка. Проблема е че е нужна база с всички файлове на на компютъра за да може locate да ви покаже резултат. Съобщението за грешка ще би подкани да [...] […]
  • Как да правим всичко с dd ?
    Синтаксиса на командата е : dd if= of= bs=(обикновено степен на 2, но не по-малко от 512 байта) skip= seek= conv=. Source са входните данни. Target е мястото, където се записва информацията. Ако направите грешка и им размените местата, може да затриете много информация. Примери : Копиране партишън от един хард диск на друг : dd if=/dev/sda2 of=/dev/sdb2 bs=4 […]

Slacknews.org етикети

attributeschangelogcopy fileext4filefile access modesfirefoxgcckdekde4.2.0kdelibskernelkernel configurationlinuxmozillamozilla firefoxopensshproxyreleasesecuresecure brosingsecuritysecurity fixsecurity upgradeslackwareslackware changelogslackware kde 4.2.4slamd64slamd64 12.2socks proxysshtortunnelupgradexdg-utilsконфигурация на ядролинукснова версияпроксисигурностсигурно сърфиранесламдтунелъпгрейдядро

Какво са SUID, SGID и Sticky Bits?

февруари 21st, 2009

В Линукс има някой специални атрибути свързани с файлове. Често в X Windows, когато проверявате свойствата на файл, се виждат три специални атрибута освен обикновените read/write/execute права за owner/group/others . Тези три атрибута са  наричат SUID, SGID и Sticky Bit.

Sticky Bit

Нека да започнем с Sticky bit, понеже е най-лесно да се обясни. Този атрибут казва на Линукс операционната система, че веднъж изпълнена програмата с този бит вдигнат трябва да остане в паметта. Линукс е многопотребителска операционна система и е предвидена да може да се ползва от много потребители в едно и също време. Логиката за съществуването на този атрибут е, че след като е в паметта стартирането на програмата отнема по-малко време, отколкото ако не е. Следователно след като един потребител е ползвал програмата веднъж този, който я ползва след него не трябва да чака програмата да се зареждан наново. Това е било много полезно преди време, когато времето за достъп до диска е било доста бавно.  Днес обаче това е излязло от употреба, тъй като времето за стартиране на програма в паметта е малко. Затова sticky bit има много малко значение. Sticky bit има смисъл само при изпълнимите файлове.
SUID (Set User ID) Bit

Понякога може да имате проблеми със стартирането на програма, която изисква да е ‘SUID root’ . SUID е съкращение от Set User ID. Това означава, че ако SUID бита е вдигнат за някоя програма, то тя ще се изпълни с привилегиите на друг потребител, а не с тези на вашия. Това означава, че ако имам програма, която принадлежи на потребителя ‘root’  и има вдигнат SUID бит, тогава когато пусна тази програма като нормален потребител, тази програма ще се стартира все едно я е пуснал ‘root’ потребителя. В случай, че сте разбрали горното, не се ли питате на е ли това голям риск за сигурността ? Ако потребителите могат да изпълняват програми като ‘root’ потребителя това би било голям риск за сигурността.  Всъщност обаче SUID се използва за да се повиши сигурността. Идеята за SUID е, че вие като ‘root’  потребителя може да позволите на определени програми или скриптове да работят все едно ‘root’ потребителя ги е пуснал. Вие би трябвало да знаете какво точно правят тези програми. Потребителите, които изпълняват тези програми ще могат да ги изпълняват но те ще правят само това, за което са написани. Например ако един скрипт копира пет файла от едно място на друго, потребителя, който го ползва трябва да може да копира само пет файла от едно място на друго. Той не би могъл да променя скрипта, ако няма достъп за писане по него.  По този начин обикновените потребители ще могат да правят разни работи, които са достъпни само за ‘root’  потребителя. По-важното е, че потребителите не трябва да знаят  ‘root’ паролата.

Важно: Премислете преди да вдигнете SUID бита за скриптове, които приемат аргументи от командния ред, понеже никога не знаете параметрите, които биват предадени на скрипта.

SGID (Set Group ID) bit

Също като SUID, вдигането на SGID бита за файл изпълнява файла като като групата, на която е файла. Наистина е много удобно като имате машина, на която всеки потребител има достъп до файловете на другите потребители. Главната идея е същата като тази на SUID бита, файловете с вдигнат SGID бит се използват от потребителя. които ползва файла, принадлежи към тази група.

Забележка : Да направим SUID и SGID програмите безопасни е много трудно или може би невъзможно, затова е добре да се внимава много при използването им на важни машини. Ако ги ползвате на домашната си машина могат да в ипомогнат да свършите доста работа без да се налага да се логвате като ‘root’  потребителя постоянно.

Possibly Related Posts:


  • Share/Bookmark

Filed under: Статии

Leave a Reply