Chciałbym zbudować program , który przyjmuje nazwę użytkownika jako parametr i tworzy użytkownika oraz jego folder macierzysty (z pewnymi zakodowanymi na sztywno specyfikacjami, takimi jak folder, a kontrole bezpieczeństwa, takie jak nazwa użytkownika, nie mogą być rootem lub istniejącym użytkownikiem).Jak stworzyć użytkownika Linuxa używając C/C++?
Moja aplikacja musi tworzyć użytkowników, aby umożliwić dostęp SSH.
Program zostanie wykonany przy użyciu sudo. Czytałem, że powinien być napisany w C lub C++ zamiast skryptów, ponieważ skrypty mogą być łatwo wykorzystane.
- Czy możesz dać mi kilka rad lub dobrymi obyczajami o tym, jak osiągnąć ten cel?
- Czy powinienem używać biblioteki Pam? Czy są jakieś przykłady?
- Jakie są ewentualne wady bezpieczeństwa w przypadku ?
Znam C/C++ i uruchamiam Ubuntu Lucid.
Edit:
Użytkownik będzie miał dostęp tylko sudo aby uruchomić danego polecenia, ja nie chcę, żeby móc uruchomić powłokę lub obejście niektóre programy (poprzez zmianę środowiska PATH, na przykład) .
W rezultacie, na przykład, będę musiał przesłonić PATH, o co jeszcze powinienem się martwić?
Dlaczego skrypt jest łatwiejszy do wykorzystania niż plik wykonywalny? Jeśli masz uprawnienia roota, masz dostęp do roota, a ich nic nie możesz zrobić. Zrób to w prosty sposób i użyj skryptu, który używa normalnych komend linuksowych (a zatem został całkowicie przetestowany). –
Użytkownik będzie miał tylko dostęp sudo do uruchomienia tego konkretnego polecenia, nie chcę, aby mógł on uruchomić powłokę lub ominąć niektóre programy (np. Zmieniając środowisko PATH). – Weboide