Как достигнуть изоляции полномочий пользователя?

Жалость, которую Вы не описываете, где точно соединение повредилось или любое сообщение об ошибке. Таким образом, здесь я пытаюсь поместить свои общие шаги поиска и устранения неисправностей (извинение, если это слишком n00b-настроено):

  1. удостоверьтесь, что Ваш веб-сервер может проверить с помощью ping-запросов сервер дб - при необходимости - удостоверяются брандмауэр, позволяющий это (icmp и 3306 позже)
  2. если 1 в порядке, удостоверьтесь, что веб-сервер может telnet к порту mysql в сервере дб.
  3. если 2 в порядке, удостоверьтесь, что можно войти в систему, использование любого другого имени пользователя/пароля (откройте любого от любого хоста или используйте корневое имя пользователя для быстрого теста),

Какой из тех 3 Вы продолжили работать с - и мы пойдем глубже...

0
задан 26 December 2011 в 13:36
1 ответ

Похоже, лучший способ добиться того, что вы пытаетесь сделать, есть с ACL.

ext3 и ext4 поддерживают это, но для работы необходимо включить его.

Чтобы отобразить не только то, что я сделал, но и файловую структуру моего теста, я вставил все это. Я использую RHEL 6.2 для своего теста.

Создайте необходимых пользователей

root # useradd -d /opt/software/ software    
root # useradd user1
root # useradd user2

Создайте «файл» в домах обоих пользователей. Установите для него права доступа группы - это необходимо для ACL, хотя группа может быть собственной.

root # touch /home/user1/file && touch /home/user2/file
root # chmod 770 /home/user1/file /home/user2/file 

root # chown user1:user1 /home/user1/file 
root # chown user2:user2 /home/user2/file 

Установите ACL. -m = изменить. u = пользователь. программное обеспечение = имя пользователя. rwx = разрешения.

root # setfacl -m u:software:rwx /home/user1/file 
root # setfacl -m u:software:rwx /home/user2/file

Получите ACL, чтобы убедиться, что он правильный.

root # getfacl /home/user1/file 
getfacl: Removing leading '/' from absolute path names
# file: home/user1/file
# owner: user1
# group: user1
user::rwx
user:software:rwx
group::rwx
mask::rwx
other::---

Заставьте исполняемый файл делать что-нибудь полезное.

root # echo "echo horse" > /home/user1/file 
root # echo "echo horse" > /home/user2/file 

Установите ACL в домашний каталог пользователя

root # setfacl -m u:software:rx /home/user1
root # setfacl -m u:software:rx /home/user2

И еще раз убедитесь, что группа имеет необходимые разрешения.

root # chmod 750 /home/user1 /home/user2

Время для тестирования!

root # su - software
-bash-4.1$ /home/user1/file 
hest
-bash-4.1$ vi /home/user1/file 
-bash-4.1$ /home/user1/file 
hest
moo
-bash-4.1$ logout

root # su - user1

[user1@tutsrv01 ~]$ /home/user2/file
-bash: /home/user2/file: Permission denied

Немного о ACL

Для работы группа должна иметь как минимум такие же разрешения, что и записи ACL. Если вы сделаете запись ACL rwx , но запись группы разрешений unix только rw, то действующее разрешение ACL будет ограничено rw.

5
ответ дан 4 December 2019 в 11:33

Теги

Похожие вопросы