语法:useradd [选项] 用户名 选项:
-d<登录目录> 指定新用户登录的起始目录,默认为/home
-e<有效期限> 指定用户的有效期限,格式为 YYYY-MM-DD
-g<用户组> 指定用户所属的组
-p<密码> 为新用户设置密码
-r 创建系统用户
PS:
1.建立一个新用户 frisen,设定登陆起始目录为/home/guest,密码 123456:
useradd -d /home/guest -p 123456 frisen
2.建立一个指定目录、有效期和归属组的帐户 frisen2:
useradd -d /home/guest -e 2017-01-01 -g guest frisen2linux
在linux中系统中,它并不认识账号名称。它认识的是咱们的账号ID,账号ID保存在/etc/passwd文件中。咱们在登陆linux主机时,在输入完账号和密码时,linux会先查找/etc/passwd文件中是否有这个账号,若是没有则跳出,若是有的话,他会读取该账号的userID和groupID同时该账号的根目录和shell也读了出来。而后在去核对密码表,在/etc/shadow中找出咱们刚刚输入的账号和userID,核对咱们输入密码是否正确。一切正确咱们能够登陆到当前用户shell。那么,咱们首先了解一下用户账号文件。
用户管理通常须要知道 /etc/passwd /etc/shadow /etc/group
1./etc/passwd咱们使用cat查看一下这个文件
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
dingn:x:501:501::/home/dingn:/bin/bash
咱们首先看第一行root这一行,一共有七项,每一项使用:分开,他们表明的意思以下:
账号名称:账号名称因为对应用户ID,这个是系统默认用户root超级管理员,在同一个系统账号名称是惟一的,长度根据不一样的linux系统而定,通常是8位。
密码: 因为系统中还有一个/etc/shadow文件用于存放加密后的口令,因此在这里这一项是“x”来表示,若是用户没有设置口令,则该项为空。
用户ID(UID):这个是系统内部用于来识别不一样的用户的,不一样的用户识别码不一样,其中用户ID有如下几种:
0表明系统管理员,若是你想创建一个系统管理员的话,能够创建一个普通账户,而后将该帐户的用户ID改成0便可。
1-500系统预留的ID,500以上是普通用户使用。
组ID(GID):其实这个和用户ID差很少,用来规范群组,他与/etc/group有关。
描述信息:这个字段几乎没有什么做用,只是用来解释这个账号的意义。
用户根目录:就是用户登陆系统的起始目录,用户登陆系统后将首先进入该目录。root用户默认的是/root,普通用户的是/home/用户名。
用户登陆shell:就是用户登陆系统时使用的shell,关于shell咱们会在之后专门的研究一下。shell
2./etc/shadow
在早期的unix操做系统中,用户的账号信息和口令信息都保存在passwd文件中,尽管系统已经对口令进行了加密,而且以密文的方式保存在passwd文件中,可是因为passwd文件对于系统中的全部用户是可读的,口令比较容易破解,存在较大的安全隐患。如今使用“shadow”文件保存密文的用户口令,使用passwd文件保存用户账号其它信息。“shadow”文件只有管理员用户才能够读取其中的内容。因为这个文件可能被破解,因此必定不要将该文件内容泄露给他人,保证系统安全。
一样,咱们仍是分析第一行,一共有九项,分别说明一下:
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
dingn:x:501:501::/home/dingn:/bin/bash
账户名称:和passwd对应,和passwd的意思相同。
密码:这才是真正的密码,而且已经加密过了,只能看到一些特殊符号。须要注意的是这些密码很难破解,可是不等于不能。还有密码栏的第一个字符为“*”表示这个用户不用来登陆,若是那个用户不想让他登陆了,能够在他前面加个星。
上次改动密码的日期:这段记录了改动密码的最后日期,为何是13798呢?这是由于linux计算日期的方法是以1970年1月1日做为1,1971年1月1日就是366,依次类推到我修改密码的日期表示为13798了。
密码不可被改动的天数:因为惧怕密码被人盗取而危害到整个系统的安全,因此安排了这个字段,你必须在这个时间内从新修改密码,不然这个账号将暂时失效。上面的99999,表示密码不须要从新输入,最好设定一段时间修改密码。确保系统安全。
密码变动期期限快到前的警告期:当账号的密码失效期限快到时,系统依据这个字段的设定发出警告,提醒用户“再过n天您的密码将过时,请尽快从新设定密码。默认的是七天。
账号失效期:若是用户过了警告期没有从新输入密码,使得密码失效,而该用户在这个字段限定的时间内又没有向管理员反映,让账号从新启用,那么这个账号将暂时失效。
账号取消日期:这个日期跟第三个字段同样,都是使用1970年以来的日期设定方法。这个字段表示:这个账号在此字段规定的日期以后将没法再使用。这个字段一般用于收费服务系统中,能够规定一个日期让该账号不能再使用。
保留:最后一个字段是保留的,看之后有没有新功能加入。安全
3. /etc/group查看一下这个文件
咱们仍是分析第一行,一共有四项,依次为:
root:x:0:
bin:x:1:bin,daemon
daemon:x:2:bin,daemon
sys:x:3:bin,adm
dingn:x:501:
群组名称:就是群组的名称了。
群组密码:一般不需设定,由于咱们不多使用群组登陆。不过这个密码也被记录在/etc/gshadow中了。
群组ID:也就是组ID了。
支持账号的名称:这个群组的全部账号。若是你想让用户qiuri也属于root这个群组,就在第一行最后加上“,qiuri”注意添加的时候没有空格。bash
4. useradd添加用户
若是没有特殊的要求,一般咱们使用useradd 用户名称直接建立用户账号。例如咱们建立qiuri账户:
因为通常新建立的账号都会在刚才咱们说的三个文件的最后一行添加一行内容,咱们验证一下:
咱们使用这条命令是经过/etc/login.defs和/etc/default/useradd这两个默认账号设定文件来实现建立用户的。
这个文件中咱们有必要了解一下,SKEL这个选项,用户的根目录内容是从/etc/skel这个目录下复制过去的。在手动添加用户的时候有用。查看一下这个目录下的内容:
这条命令还有好多的参数举例几个,供你们参考一下:
useradd [-u uid][-g group][-d home][-s shell]
-u:直接给出userID
-g:直接给出GID
-d:直接将根目录创建在已存在目录
-s:定义shell
5.passwd设置用户密码
默认的状况下,在添加完用户后并无设置用户的密码,所以创建的用户账号即便存在也不能登录系统。须要使用passwd命令对用户账号设置密码才能够用于登录系统。这条命令分为管理员给用户修改密码和用户本身登陆系统本身修改密码。
管理员root给用户修改密码,例如:建立用户qiuri,而后设置密码
管理员给用户设置密码以命令passwd [用户名]来设置密码,在输入密码的过程当中为了不输入错误,将连续输入两次。若是两次输入的密码相同,表示输入的密码正确,同时将密码以加密的方式保存到了shadow文件中。设置完之后咱们可使用用户qiuri登陆。qiuri用户本身修改一下密码。ui
6. 增长一个新用户
如下是操做一些具体的语法,能够经过man useradd 查看帮助命令
在Linux系统中,只有root用户才可以建立一个新用户,以下的命令将新建一个登陆名user1的用户。
# useradd user1
可是,这个用户还不可以登陆,由于还没给它设置初始密码,而没有密码的用户是不可以登陆系统的。在默认状况下,将会在/home目录下新建一个与用户名相同的用户主目录。若是须要另外指定用户主目录的话,那么可使用以下命令:
# useradd -d /home/xf user1
同时,该用户登陆时将得到一个Shell程序:/bin/bash,而假如你不想让这个用户登陆,也就能够指定该用户的Shell程序为:/bin/false,这样该用户即便登陆,也不可以执行Linux下的命令:
# useradd -s /bin/false user1
在Linux中,新增一个用户的同时会建立一个新组,这个组与该用户同名,而这个用户就是该组的成员。若是你想让新的用户归属于一个已经存在的组,则可使用以下命令:
# useradd -g user user1
这样该用户就属于user组的一员了。而若是只是想让其再属于一个组,那么应该使用:
# useradd -G user user1
完成了这一操做后,你还应该使用passwd命令为其设置一个初始密码。
2. 删除一个用户
删除用户,只需使用一个简单的命令“userdel 用户名”便可。不过最好将它留在系统上的文件也删除掉,你可使用“userdel -r 用户名”来实现这一目的。
3. 修改用户属性
在前面咱们看到了在新建一个用户的时候如何指定它的用户主目录,如何指定它的Shell,如何设置它所属的组…等等。在Linux中提供了一个命令来实现: usermod -g组名 -G 组名 -d 用户主目录 -s 用户Shell
还有一种直接的方法,那就是修改/etc/passwd文件,在这个文件中每一个用户占用一行,它的内容为:
用户名:密码:用户ID:组ID:用户全名:用户主目录:用户Shell
不过值得注意的是,密码这一项一般是用一个*号代替的,你是看不到的。 加密
用户组的管理
groupadd 选项 用户组
-g GID 指定新用户组的组标识号(GID)。
-o 通常与-g选项同时使用,表示新用户组的GID能够与系统已有用户组的GID相同。
1. 增长一个组
还记得Linux的文件能够为同组的人、非同组的人设置不一样的访问权限吗?咱们能够根据本身的须要建立用户组:
groupadd 组名
2. 删除一个组
一样的,咱们有时会须要删除一个组,它的命令就是groupdel 组名。
3. 修改组成员
若是咱们须要将一个用户加入一个组,只需编辑/etc/group文件,将用户名写到组名的后面。例如将newuser用户加入到softdevelop组,只需找到softdevelop这一行:
softdevelop:x:506:user1,user2
而后在后面加上newuser,造成:
softdevelop:x:506:user1,user2,newuser spa