Linux用户账号管理


Linux是典型的多用户多任务操作系统,在使用linux操作系统之前,需要先通过帐号登录系统。 默认情况下,系统中所有账号信息都记录在/etc/passwd文件中,用户的口令密码记录在/etc/shadow文件中,用户组信息纪录在/etc/group文件内!
管理员的一项重要工作就是管理账号。主要有如下几个方面:

1.用户账号的添加、修改和删除。
2.用户密码口令的管理。
3.用户组的管理。

用户账号的管理工作主要涉及到用户账号的添加、修改和删除。
useradd、usermod、userdel这些都是系统管理员root进行账号管理要用到的重要命令, 也只有root有权限使用,普通用户无权限使用的。

一.useradd命令

回到顶部

使用useradd命令添加新账号:

              [peter@initroot ~]$ sudo useradd 选项 账号名
            
选项参数说明:
-c (comment)指定一段注释性描述;
-d (derectory)指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录;
-g (group) 指定用户所属的用户组;
-G 用户组,指定用户所属的附加组;
-s (shell) 指定用户的登录Shell;
-u 用户号 指定用户的用户号,如果同时有-o选项,则可以重复使用其他用户的标识号。
添加账号就是在系统中创建一个新账号,然后为新账号分配用户号、用户组、主目录和登录Shell等资源。 刚添加的账号无法使用,需要用passwd设置密码后才可登录。
1.创建账号initroot,-d和-m选项指定账号主目录为/home/initroot(/home为默认的用户主目录所在的父目录):
              [peter@initroot ~]$ sudo useradd -d /home/initroot -m initroot
            
2.新建账号initroot,指定登录Shell为/bin/sh,主用户组为group,附加组为adm和root:
              [peter@initroot ~]$ sudo useradd -s /bin/sh -g group -G adm,root initroot
            
这里可能新建组:#groupadd group及groupadd adm
增加用户账号就是在/etc/passwd文件中为新用户增加一条记录,同时更新/etc/shadow, /etc/group等系统文件。
Linux提供了集成的系统管理工具userconf,它可以用来对用户账号进行统一管理。

useradd与adduser都是创建新的用户
在CentOs下useradd与adduser是没有区别的都是在创建用户,在home下自动创建目录,没有设置密码,需要使用passwd命令修改密码。
而在Ubuntu下useradd与adduser有所不同
1、useradd在使用该命令创建用户是不会在/home下自动创建与用户名同名的用户目录,而且不会自动选择shell版本,也没有设置密码,那么这个用户是不能登录的,需要使用passwd命令修改密码。
2、adduser在使用该命令创建用户是会在/home下自动创建与用户名同名的用户目录,系统shell版本,会在创建时会提示输入密码,更加友好。

二.passwd命令

回到顶部

使用passwd命令设置用户口令密码,passwd用于变更用户口令密码。
用户管理的一项重要内容是用户口令的管理。账号刚创建时没有口令,无法正常登录系统,必须为其指定口令后才可以使用,即使是指定空口令。
超级用户可以为自己和其他用户指定口令,普通用户只能修改自己的口令。 命令的格式如下:

              [peter@initroot ~]$ sudo passwd 选项 用户名
            
可使用的选项:
-l (lock)锁定口令,即禁用账号。
-u (unlock)口令解锁。
-d 使账号无口令。
-f 强迫用户下次登录时修改口令。
不加任何参数,passwd默认修改当前用户的口令。
假设当前用户是peter,则下面的命令修改peter自己的口令:
              [peter@initroot ~]$ passwd
              Old password:******
              New password:*******
              Re-enter new password:*******
            
如果是超级用户,可以设置任何用户的口令:
              [root@initroot ~]# passwd initroot
              New password:*******
              Re-enter new password:*******
            
普通用户修改自己的口令时,passwd命令会先询问原口令,验证后再要求用户输入两遍新口令,如果两次输入的口令一致,则将这个口令指定给用户;
而超级用户为用户设置口令时,就不需要知道原口令。
为了系统安全起见,用户应该选择比较复杂的口令,最好使用8位长的口令,口令中包含有大写、小写字母和数字,并且应该与姓名、生日等不相同。
为用户设置空口令:
              [root@initroot ~]# passwd -d initroot
            
此命令将用户initroot的口令删除,这样用户initroot下一次登录时,系统就不再允许该用户登录了。
passwd命令还可以用-l选项锁定账号,使其不能登录:
              [root@initroot ~]# passwd -l sam
            

三.userdel命令

回到顶部

删除用户账号就是要将/etc/passwd等系统文件中的该用户记录删除,必要时还会删除用户的主目录。
删除账号命令是userdel,其格式如下:

              [peter@initroot ~]$ sudo userdel 选项 用户名
              常用的选项是-r,把用户的主目录一起删除。
            
删除账号initroot,同时删除用户的主目录:
              [peter@initroot ~]$ sudo userdel -r peterpiki
              删除/etc/passwd, /etc/shadow, /etc/group等文件中该账号相应的记录
            

四.usermod命令

回到顶部

使用usermod命令修改帐号属性. 修改用户账号就是根据实际情况更改用户的有关属性,如用户号、主目录、用户组、登录Shell等。
usermod命令格式如下:

              [peter@initroot ~]$ sudo usermod 选项 用户名
            
常用的选项包括-c, -d, -m, -g, -G, -s, -u以及-o等,这些选项的意义与useradd命令中的选项一样,可以为用户指定新的资源值。
有些系统可以使用选项:-l 新用户名,这个选项指定一个新的账号,即将原来的用户名改为新的用户名。
例如将用户peter的登录Shell修改为ksh,主目录改为/home/z,用户组改为developer:
              [peter@initroot ~]$ sudo usermod -s /bin/ksh -d /home/z –g developer peter
            

initroot编辑整理,转载请注明www.initroot.com

100次点赞 100次阅读