Выполненный в корневой оболочке из пользователя колотят сценарий

Я сказал бы, что нет никакого программного обеспечения для этой задачи, так как никакое программное обеспечение не может вычислить семантику файлов на Вашем образе CD. Как K3B должен знать, какие файлы должны держаться вместе?

Если бы порядок файлов не важен - я использовал бы tar и split для задачи - как я сделал, когда дискеты все еще использовались...

0
17.10.2011, 19:56
2 ответа

Да, начиная с вещей как

sudo mkdir /mnt/mymountpoint

работа, можно сделать

sudo ./myrootscript.sh

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

3
28.01.2020, 02:21
  • 1
    и если необходимо было сделать это как определенный пользователь, можно передать a -u $username к sudo. как sudo -u oracle lsnrctl start или что-то. –  Tim Kennedy 18.10.2011, 01:22

Вы просто используете обоих sudo и su неправильным способом. Если Вы пишете просто sudo -s или sudo su один, Вы закончите с интерактивной оболочкой, созданной из сценария - это - то, что делают те команды.

Так как Вам нужен блок кода оболочки, который будет выполняться как корень, необходимо перенести его так или иначе в единственную команду. Вероятно, самый простой путь состоит в том, чтобы использовать явную подоболочку:

echo "Linux user password is needed in order to ..."
sudo sh -c '
 ... code that requires root permission
'

Это, конечно, доставит неприятности, когда Вы пытаетесь использовать некоторые переменные, определенные в другом месте в Вашем сценарии - в таком случае, используйте двойные кавычки вместо сингла.

Но если у Вас только есть несколько команд, которые будут выполнены как корень, лучше используйте sudo перед каждым из них.

1
28.01.2020, 02:21

Теги

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