Difference between revisions of "Access Control Lists (Русский)"

From ArchWiki
Jump to navigation Jump to search
(Вывод команды ls)
(Повышение безопасности веб-сервера)
Line 131: Line 131:
 
==Повышение безопасности веб-сервера==
 
==Повышение безопасности веб-сервера==
  
You can now add permissions to our home directory or/and site directory only to nobody user any anyone else - without "whole world" to increase your security.
+
Для повышения безопасности веб-сервера добавьте расширенные права на домашнюю директорию и/или директорию сайта только для пользователя '''http'''.
  
Go to the home directory:
+
Перейдите в домашнюю директорию:
 
  # cd /home
 
  # cd /home
Add permissions '''+x''' for nobody user on your home directory via ACL:
+
Добавьте разрешение '''+x''' для пользователя http с помощью ACL:
  # setfacl -m "u:nobody:--x" homeusername/
+
  # setfacl -m "u:http:--x" homeusername/
Now you can remove whole world rx permissions:
+
Теперь удалите права rx разрешающие использование директории другим пользователям:
 
  # chmod o-rx homeusername/
 
  # chmod o-rx homeusername/
Check our changes:
+
Проверьте изменения:
 
   
 
   
 
<pre># file: username/
 
<pre># file: username/
Line 145: Line 145:
 
# group: users
 
# group: users
 
user::rwx
 
user::rwx
user:nobody:--x
+
user:http:--x
 
group::r-x
 
group::r-x
 
mask::r-x
 
mask::r-x
 
other::---
 
other::---
 
</pre>
 
</pre>
As we can see others don't have any permissions but user nobody have "x" permission so they can "look" into users directory and give access to users pages from their home directories to www server. Of course if www server work as nobody user. But - whole world except nobody - don't have any permissions.
+
Как мы можем видеть, другие пользователи не имеют доступа, но для пользователя http установлен атрибут "x", что разрешает ему просмотр пользовательской директории и дает доступ к веб-страницам пользователя. Это справедливо, если веб-сервер работает от имени пользователя http. По умолчанию пользователь http не наделён таким полномочиями.
  
 
==Дополнительные ресурсы==
 
==Дополнительные ресурсы==
 
* Страница руководства - '''man getfacl'''
 
* Страница руководства - '''man getfacl'''
 
* Страница руководства - '''man setfacl'''
 
* Страница руководства - '''man setfacl'''

Revision as of 11:23, 8 December 2009


Template:I18n links start Template:I18n entry Template:I18n entry Template:I18n links end

Tango-preferences-desktop-locale.pngThis article or section needs to be translated.Tango-preferences-desktop-locale.png

Notes: please use the first argument of the template to provide more detailed indications. (Discuss in Talk:Access Control Lists (Русский)#)

Введение

Access Control List предоставляет расширенный и более гибкий механизм распределения прав файловых систем. Он предназначен для расширения прав доступа к файлам UNIX. ACL позволяет устанавливать разрешения любым пользователям или группам для различных файловых ресурсов.

Установка

ACL доступно из /core хранилища пакетов:

# pacman -S acl

Настройка

Включение ACL

Для включения ACL - откройте для редактирования файл /etc/fstab и добавьте атрибут acl к опциям раздела, где полагается использование ACL:

# 
# /etc/fstab: static file system information
#
# <file system>        <dir>         <type>    <options>          <dump> <pass>
none                   /dev/pts      devpts    defaults            0      0
none                   /dev/shm      tmpfs     defaults            0      0

UUID=5de01fca-7c63-49b0-9b2b-8b1790f8428e swap swap defaults 0 0

UUID=8e5259dd-26fc-411a-88e2-f38d4dc36724 /home reiserfs defaults,acl 0 1

UUID=c18f753e-0039-49bd-930f-587d48b7e083 / reiserfs defaults 0 1

Сохраните файл. Переподключите раздел:

# mount -o remount /home

Установка прав ACL

Для изменения ACL используйте команду setfacl. Для добавление прав используйте setfacl -m.

Добавление прав какому-нибудь пользователю:

# setfacl -m "u:username:permissions"

или

# setfacl -m "u:uid:permissions"

Для добавления прав какой-нибудь группе:

# setfacl -m "g:groupname:permissions"

или

# setfacl -m "g:gid:permissions"

Удаление всех прав:

# setfacl -b

Удаление всех записей:

# setfacl -x "entry"

Проверка установленных разрешений:

# getfacl filename

Примеры

Установить все разрешения на файл "abc" для пользователя johny:

# setfacl -m "u:johny:rwx" abc

Проверить разрешения:

# getfacl abc
# file: abc
# owner: someone
# group: someone
user::rw-
user:johny:rwx
group::r--
mask::rwx
other::r--

Изменение разрешений для пользователя johny:

# setfacl -m "u:johny:r-x" abc

Проверка разрешений:

# getfacl abc
# file: abc
# owner: someone
# group: someone
user::rw-
user:johny:r-x
group::r--
mask::r-x
other::r--

Удаление всех записей расширения ACL:

# setfacl -b abc

Проверка разрешений:

# getfacl abc
# file: abc
# owner: someone
# group: someone
user::rw-
group::r--
other::r--

Вывод команды ls

При использовании команды ls -l можно заметить +(знак плюс) следующий за правами unix, предупреждающий об использовании расширений ACL для файла.

$ ls -l /dev/audio 
crw-rw----+ 1 root audio 14, 4 nov.   9 12:49 /dev/audio

$ getfacl /dev/audio
getfacl: Removing leading '/' from absolute path names
# file: dev/audio
# owner: root
# group: audio
user::rw-
user:solstice:rw-
group::rw-
mask::rw-
other::---

Повышение безопасности веб-сервера

Для повышения безопасности веб-сервера добавьте расширенные права на домашнюю директорию и/или директорию сайта только для пользователя http.

Перейдите в домашнюю директорию:

# cd /home

Добавьте разрешение +x для пользователя http с помощью ACL:

# setfacl -m "u:http:--x" homeusername/

Теперь удалите права rx разрешающие использование директории другим пользователям:

# chmod o-rx homeusername/

Проверьте изменения:

# file: username/
# owner: username
# group: users
user::rwx
user:http:--x
group::r-x
mask::r-x
other::---

Как мы можем видеть, другие пользователи не имеют доступа, но для пользователя http установлен атрибут "x", что разрешает ему просмотр пользовательской директории и дает доступ к веб-страницам пользователя. Это справедливо, если веб-сервер работает от имени пользователя http. По умолчанию пользователь http не наделён таким полномочиями.

Дополнительные ресурсы

  • Страница руководства - man getfacl
  • Страница руководства - man setfacl