Utworzyłem niektórych użytkowników za pomocą:
$ useradd john
i zapomniałem podać parametr, -m
aby utworzyć katalog domowy i skopiować pliki szkieletu do każdego użytkownika. teraz chcę to zrobić i nie chcę ponownie tworzyć wszystkich użytkowników (musi istnieć prostszy sposób). więc czy jest jakiś sposób na utworzenie katalogów użytkowników i skopiowanie plików szkieletu?
Pomyślałem o utworzeniu katalogów, udostępnieniu ich odpowiednim użytkownikom, skopiowaniu wszystkich plików szkieletu i udostępnieniu ich odpowiednim użytkownikom. ale jeśli takie polecenie useradd -m
nie utworzy ponownie użytkownika, ale utworzy katalogi, byłoby lepiej.
Odpowiedzi:
Może to zabrzmieć jak głupi pomysł, ale jeśli użytkownicy tak naprawdę nic nie robią, możesz:
cat /etc/passwd | cut -f 1 -d : >/tmp/users.list
Następnie edytuj /tmp/users.list, aby zawierał tylko potrzebnych użytkowników. Następnie wykonaj:
Jednak wiele dystrybucji opartych na Redhat utworzy nowy katalog domowy podczas pierwszego logowania, pod warunkiem, że jest on określony w / etc / passwd, gdzie powinien znajdować się katalog.
Aby to sprawdzić, wykonaj „su -” i sprawdź, czy robi to „właściwą rzecz”. Jeśli tak się nie stanie, myślę, że powyższy skrypt będzie działał całkiem nieźle.
źródło
for i in $(awk -F: '{print $1 }' /etc/passwd)
Możesz także użyć
mkhomedir_helper
źródło
sudo /sbin/mkhomedir_helper dka
?/home
katalog należy doroot
użytkownika, a tak to sobie wyobrazić, trzeba by być root, aby stworzyć jego podkatalogu.Konieczne będzie ręczne utworzenie katalogu użytkowników. Wymaga to trzech kroków:
/etc/passwd
, zwykle będzie już wpis / home / login.I wreszcie ustaw odpowiednie uprawnienia:
mkdir /home/YOU
cd /home/YOU
cp -r /etc/skel/. .
chown -R YOU.YOURGROUP .
chmod -R go=u,go-w .
chmod go= .
BTW: Zawsze brakuje mi też
-m
opcji useradd. Przynajmniej systemy oparte na Debianie powinny miećadduser
polecenie, które polecam ponad useradd. Jeśli przegapiłeś-m
opcję, być może warto rozważyć,deluser
a następnie odtworzyć użytkownika z odpowiednimi opcjami.Edycja: Dodano
-r
do kopiowania również katalogów.źródło
public_html
wymaga co najmniejx
bitów, polecamchmod 0711
na każdy dompublic_html
i podobne katalogi jako domyślne.cp -r /etc/skel/.*
wróć do / etc / i skopiuj wszystkie dane stąd (/etc/skel/.* pasuje do / etc / skel / .. Oczekuję). Wydaje się, że działa rozwiązanie superuser.com/a/61619/22153 : cp -r / etc / skel / home / user (/ home / user nie może istnieć przed uruchomieniem polecenia)*
pomocą.
(kropki). Tak..
jest dopasowane. Czy mam rację? Wiele powłok domyślnie wyłącza to z powodu takiego zachowania. Jakiej powłoki używasz?To powinno załatwić sprawę, którą uważam
źródło
usermod: no changes
. a katalog nie został utworzony. nie działa również z-m
opcją.Możesz użyć czegoś takiego jak pam_mkhomedir, aby zapobiec pojawianiu się tego problemu wśród użytkowników w przyszłości. pam_mkhomedir to moduł PAM, który automatycznie tworzy katalog domowy użytkownika przy logowaniu, jeśli nie istnieje, i zapełnia go plikami z / etc / skel (lub dowolnego katalogu skel, który określisz).
Jest to również dobrze skalowalne podejście, ponieważ rozwiąże ono ten problem, jeśli w przyszłości przełączysz repozytorium użytkowników na usługę katalogową, taką jak LDAP.
źródło
W moim przypadku wolumin domowy został uszkodzony i postanowiłem po prostu go odbudować od zera, ponieważ nie było w nim dużo danych, ale chcę zachować dane logowania użytkowników, więc ręcznie utworzyłem katalogi domowe za pomocą tego skryptu:
źródło
Jeśli edytujesz,
/etc/login.defs
aby zawieraćkatalogi domowe zostaną automatycznie utworzone dla przyszłych użytkowników, chyba że powiesz systemowi, aby tego nie robił.
Inną opcją jest użycie PAM do logowania i użycie modułu pam_mkhomedir do automatycznego utworzenia homedir przy pierwszym logowaniu.
źródło
Mój pierwszy krok po zrobieniu
useradd
tosu - <user>
.Tworzy katalogi domowe, kopiuje szkielety itp. - Przynajmniej na polu CentOS 4, na którym najczęściej to robię.
źródło
Zaloguj się przy użyciu użytkownika John i napisz z powłoki:
Otóż to! Nie używaj sudo ani su, nie potrzebujesz dostępu do roota, aby utworzyć katalogi. Z konta root możesz użyć:
W ten sposób wykonasz polecenie jako John, co może być przydatne, jeśli popełnisz błąd z więcej niż jednym użytkownikiem.
źródło
Właśnie to
mkhomedir_helper $USERNAME
robi polecenie.źródło
Możesz po prostu edytować / etc / passwd. Drugim do ostatniego pola jest katalog domowy użytkownika.
źródło
lub
i czytać
;)
źródło