Назад | Перейти на главную страницу

Как ограничить пользователя определенной папкой в ​​CentOS 6?

Мне нужно будет создать пользователей, чтобы разработчики могли входить в систему и клонировать / извлекать / отправлять изменения / репозитории с платформы, подобной github.

Мне удалось добавить пользователя (используя root) на эту машину CentOS; Теперь у меня есть эта строка в / etc / passwd:

chris:x:32008:32010::/home/chris/public_html:/bin/bash

..и это в / etc / shadow:

chris:$1$ruUeLtTu$onAY2hdu1J.UmHajEIlmR.:15385:0:99999:7:::

Я могу подключиться к серверу по SSH, у меня есть разрешение на создание папки, и я думаю, этого должно быть достаточно. Но я могу видеть другие файлы и папки за пределами public_html.

Как я могу фактически ограничить пользователя определенным каталогом Значит, он не может выйти из папки с помощью компакт-диска?

Обновить:

root@echo [~]# ls -ld /home/moove
drwx--x--x 21 moove moove 4096 Mar 22 16:16 /home/moove/
root@echo [~]# ls -ld /home/moove/public_html
drwxr-x--- 11 moove nobody 4096 Mar 27 11:29 /home/moove/public_html/
root@echo [~]# ls -ld /home/moove/public_html/dev
drwxr-x--- 12 moove nobody 4096 Mar 27 14:47 /home/moove/public_html/dev/
root@echo [~]# ls -ld /home/moove/public_html/dev/arsenal
drwxr-xr-x 3 arsenal moove 4096 Mar 27 14:53 /home/moove/public_html/dev/arsenal/

Вы можете chroot их, но это приведет к осложнениям и дополнительной настройке.

Если вам не нужно полностью chroot, вы можете попробовать использовать ограниченную функцию оболочки в bash.

RESTRICTED SHELL
       If  bash  is  started  with  the name rbash, or the -r option is supplied at invocation, the
       shell becomes restricted.  A restricted shell is used to set up  an  environment  more  con-
       trolled than the standard shell.  It behaves identically to bash with the exception that the
       following are disallowed or not performed:

       ·      changing directories with cd
       ·      setting or unsetting the values of SHELL, PATH, ENV, or BASH_ENV
       ·      specifying command names containing /
       ·      specifying a file name containing a / as an argument to the .  builtin command
       ·      Specifying a filename containing a slash as an argument to the -p option to the  hash
              builtin command
       ·      importing function definitions from the shell environment at startup
       ·      parsing the value of SHELLOPTS from the shell environment at startup
       ·      redirecting output using the >, >|, <>, >&, &>, and >> redirection operators
       ·      using the exec builtin command to replace the shell with another command
       ·      adding  or deleting builtin commands with the -f and -d options to the enable builtin
              command
       ·      Using the enable builtin command to enable disabled shell builtins
       ·      specifying the -p option to the command builtin command
       ·      turning off restricted mode with set +r or set +o restricted.

       These restrictions are enforced after any startup files are read.

Чтобы реализовать это, создайте ссылку между / bin / rbash и / bin / bash (поскольку CentOS по умолчанию не поставляется с этой ссылкой): ln /bin/bash /bin/rbash. Затем измените / etc / passwd так, чтобы оболочка пользователя была /bin/rbash.