Пользовательские разрешения

Есть ли способ, с помощью которого, используя сценарии оболочки, я могу выполнить программу от имени другого пользователя в каталоге с уникальным (случайным образом) именем, где пользователь имеет доступ к файлам в этом каталоге с помощью rwx, но не может ничего изменить за его пределами.

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

2
задан 10 April 2011 в 14:43

2 ответа

Вы могли использовать rbash (или bash -r): это - ограниченная версия bash это налагает некоторые ограничения пользователю относительно полного удара. От rbash страница справочника:

Это ведет себя тождественно для избиения за исключением того, что следующее запрещено или не выполнено:

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

Использовать rbash trasparently, запустите свой сценарий с #!/bin/rbash.

Надеюсь эта справка.

2
ответ дан 10 April 2011 в 14:43

Использование:

sudo -u USERNAME

РЕДАКТИРОВАНИЕ: Чтобы использовать эту команду без ввода пароля, используйте:

echo PASSWORD | sudo -u USERNAME COMMAND

Замените ПАРОЛЬ паролем ИМЯ ПОЛЬЗОВАТЕЛЯ. Замените USERNAME именем пользователя. Замените КОМАНДУ командой, которую хотите выполнить.

Например:

echo password123 | sudo -u daniel cp ./file ./dir/filecopied

Я надеюсь, что это помогло вам, Даниэль

0
ответ дан 10 April 2011 в 14:43

Другие вопросы по тегам:

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