Мне нужно будет создать пользователей, чтобы разработчики могли входить в систему и клонировать / извлекать / отправлять изменения / репозитории с платформы, подобной 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
.