chsh

chsh
Originalförfattare Salvatore Valente
Operativ system Unix och Unix-liknande
Typ Kommando

chsh (en förkortning av "change shell") är ett kommando Unix-liknande operativsystem som används för att ändra ett inloggningsskal . Användare kan antingen ange sökvägen för skalet som de vill ändra till på kommandoraden, eller ange inga argument, i vilket fall chsh tillåter användaren att ändra skalet interaktivt.

Användande

chsh är ett setuid -program som modifierar filen /etc/passwd , och bara tillåter vanliga användare att modifiera sina egna inloggningsskal. Superanvändaren vars skal ska modifieras som ett kommandoradsargument. Av säkerhetsskäl begränsas skalen som både vanliga användare och superanvändaren kan ange av innehållet i filen /etc/shells , där sökvägen för skalet måste vara exakt som det visas i den filen. (Denna säkerhetsfunktion kan ändras genom att kompilera om källkoden för kommandot med ett annat konfigurationsalternativ, och är därför inte nödvändigtvis aktiverat på alla system.) Superanvändaren kan dock också modifiera lösenordsfilen direkt och ställa in valfri användares skal till valfri körbar fil på systemet utan referens till /etc/shells och utan att använda chsh .

På de flesta system, när chsh anropas utan kommandoradsalternativet -s (för att ange namnet på skalet), uppmanas användaren att välja ett. På Mac OS X , om den anropas utan alternativet -s, visar chsh en textfil i standardredigeraren (ursprungligen inställd på vim) som tillåter användaren att ändra alla funktioner i sitt användarkonto som de har tillåtelse att ändra, sökvägen av skalet är namnet bredvid "Shell:". När användaren avslutar vim, överförs ändringarna som görs där till filen /etc/passwd som endast root kan ändra direkt.

Att använda alternativet -s (till exempel: % chsh -s /usr/local/bin/bash ) förenklar avsevärt uppgiften att byta skal.

Beroende på systemet kan eller kanske inte chsh frågar användaren om ett lösenord innan du ändrar skalet eller går in i interaktivt läge. På vissa system är användningen av chsh av icke-rootanvändare helt inaktiverad av systemadministratören.

På många Linux-distributioner är kommandot chsh en PAM - medveten applikation. Som sådan kan dess beteende skräddarsys, med hjälp av PAM-konfigurationsalternativ, för enskilda användare. Till exempel kan ett auth- direktiv som specificerar pam_listfile.so -modulen användas för att neka chsh- åtkomst för enskilda användare, genom att specificera en fil med användarnamnen som ska nekas åtkomst till med listfile= -alternativet till den modulen (tillsammans med sense=deny alternativ).

Bärbarhet

POSIX beskriver inte verktyg som chsh , som används för att modifiera användarens inmatning i /etc/passwd . De flesta Unix-liknande system tillhandahåller chsh . SVr4 -baserade system gav en liknande kapacitet med passwd . Två av de tre återstående systemen ( IBM AIX och HP-UX ) tillhandahåller chsh utöver passwd -e . Undantaget är Solaris , där icke-administratörer inte kan ändra sitt skal om inte en nätverksnamnserver som NIS eller NIS+ är installerad. Det föråldrade SGI SVr4-systemet IRIX64 saknade också chsh .

Se även

Vidare läsning

externa länkar