Перезагрузить группы пользователей Linux из сценария автоматизации Golang.Linux

Ответить
Anonymous
 Перезагрузить группы пользователей Linux из сценария автоматизации Golang.

Сообщение Anonymous »

У нас есть сценарий автоматизации Go, который создает пользователей Linux. Этот сценарий запускается под другим пользователем, который называется scriptuser, но этот сценарий использует exec.Command для создания новых пользователей. Проблема в том, что мы хотим добавить пользователя scriptuser внутри вновь созданной группы пользователей, чтобы scriptuser мог читать/записывать в домашний каталог пользователя всякий раз, когда ему необходимо внести новые изменения. Мы можем без проблем добавить пользователя сценария в вновь созданную группу пользователей, но группы пользователей сценария не изменяются, пока мы не выйдем из системы и не войдем снова в оболочку. Как мы можем добиться этого, не выходя из системы и не входя снова?
ПРИМЕЧАНИЕ: scriptuser имеет привилегии sudo
Приведенный ниже код запускается с пользователем scriptuser
Пример кода

Код: Выделить всё

func setupUser(username string) {
cmd,err := exec.Command("sudo", "useradd","-m",username)
cmd.Run()
if err!=nil {
// handle error
}

cmd,err exec.Command("sudo","chmod","g+w","/home/"+username) // provide write perms at a group level

cmd, err = exec.Command("sudo", "adduser", "scriptuser", username) // add scriptuser to the newly created user's group
out, err = cmd.Output()
if err != nil {
log.Fatal(err)
}

os.Create("/home/"+username + "/sample.txt") // get a permission denied error even though I have added `scriptuser` as part of the new user's group, that is because scriptuser's groups have not been reloaded yet.

}
Я попробовал добавить exec.Command("newgrp", "") и exec.Command("newgrp") последовательно, но группы не перезагрузились.


Подробнее здесь: https://stackoverflow.com/questions/791 ... ion-script
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Linux»