LINUX.ORG.RU

Получить имя не root юзера [BASH]

 ,


0

1

Есть Bash скрипт - часть DEB пакета. Естественно, выполняется он от рута. Но из него надо изменить владельца нескольких папок на юзера, который запустил установку пакета.

Естественно chown $USER или $USERNAME не работает.

Как получить имя пользователя?

Естественно, выполняется он от рута.
надо изменить владельца нескольких папок на юзера, который запустил установку пакета

Естественно, $USER == root

Если нужен человек, запустивший иксы, можно нагуглить 100500 вариантов, позволяющих получить имя владельца текущей иксовой сессии. Правда, на «мультиситах» будут проблемы.

Eddy_Em ☆☆☆☆☆ ()

изменить владельца нескольких папок на юзера, который запустил установку пакета

так никто не делает. обычно создают группу, дают права, добавляют внутрь пользователя

punya ★★ ()

Ну посмотри на иерархию процессов:

http://storage8.static.itmages.ru/i/12/1103/h_1351933644_1595878_33d514bba1.jpeg

и подумай, задача сведется к подъему по иерерхии до момента когда юзер смениться с root.

Но в некоторых случаях, например автоматической установки или еще каких может не сработать.

Deleted ()
Ответ на: комментарий от Bear_Grylls

костыли это то что ты задумал - в линуксе ни одному простому (не системному) пользователю ни должны принадлежать файлы вне /home , исключения болтаются в tmp

Deleted ()

А не проще создать своего пользователя, ну или владельцем сделать рута, а группу дать свежесозданную, и юзер потом просто должен быть в этой группе?

Deleted ()

Ладно, я создал группу и пользователя к ней. Но теперь init.d требует ввода пароля.

sudo -u newusername $ANO_BIN

Хотелось бы конечно, чтобы все запускалось без вмешательства человека.

Bear_Grylls ()
Ответ на: комментарий от Bear_Grylls

Дело в том что $ANO_BIN проверяет владельца его db файлов, и имя юзера, от которого он был запущен. Если они не совпадают, fail.

Bear_Grylls ()
Ответ на: комментарий от Bear_Grylls

По-моему, у вас там какой-то жуткий набор костылей. Зачем вам sudo в init-скрипте? Используйте start-stop-daemon (см. --chuid).

undertaker ★★ ()

Есть Bash скрипт - часть DEB пакета... из него надо изменить владельца нескольких папок на юзера, который запустил установку пакета.

Зачем? Для чего вообще надо менять владельца папок?

anonymous ()

Но из него надо изменить владельца нескольких папок на юзера, который запустил установку пакета.

Запустил установку пакета root.

ps. Храни нас, Господи, от таких пакетов...

feofil ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.