Linux账号管理相关命令
新增和删除用户
我们知道,当登录系统时需要输入帐号与密码,那么创建一个可用的帐号同样的也需要这两个数据。Linux中用useradd 来新建使用者,用passwd创建密码
创建用户:useradd
[root@study ~]# useradd [-u UID] [-g 初始群组] [-G 次要群组] [-mM]\ > [-c 说明栏] [-d 主文件夹绝对路径] [-s shell] 使用者帐号名
选项与参数 | 含义 |
---|---|
-u | 指定账号特定的 UID |
-g | 指定用户的GID |
-G | 后面接的群组名称则是这个帐号还可以加入的群组。会修改 /etc/group 内的相关数据 |
-M | 强制,不要创建使用者主文件夹。(系统帐号默认值) |
-m | 强制,要创建使用者主文件夹。(一般帐号默认值) |
-d | 指定用户的家目录,而不要使用默认值。务必使用绝对路径 |
-r | 创建一个系统帐号 |
-s | 后面接一个shell。没有指定则默认是 /bin/bash |
-e | 后面接一个日期,格式为“YYYY-MM-DD”此项目可写入 shadow 第八字段,帐号失效日期的设置项目 |
-f | 后面接 shadow 的第七字段项目,指定密码是否会失效。0为立刻失效, -1 为永远不失效(密码只会过期而强制于登录时重新设置而已。) |
不知道/etc/shadow内容结构的可以看下用户和用户组-UID和GID,里面有对/etc/shadow结构的详细介绍
范例1:参考默认值创建一个使用者 vbird1
[root@study ~]# useradd vbird1
创建的过程看似只是新增了一个用户,其实对于系统来说,完成这个命令在后台执行很多对用户来说毫无感知的行为
- 首先,系统需要将用户信息记录在 /etc/passwd 和 /etc/shadow 末尾追加一条记录,同时分配给用户一个UID。
- 然后在/home下给用户自动创建一个目录名和用户名一样的家目录。比如上面的例子中,创建的目录将是/home/vbird1
[root@study ~]# ll -d
/home/vbird1 drwx------. 3 vbird1 vbird1 74 Jul 20 21:50 /home/vbird1
# 默认会创建使用者主文件夹,且权限为700。
- 接着,复制/etc/ske(含创建用户时默认配置的文件)下所有的文件至/home/vbird1。用
ls -al
可查看全部文件(包括隐藏文件) - 最后新建一个与该用户名一样的用户组。即在创建了用户vbird1的时候,也创建了一个vbird1的用户组,用户vbird1默认属于用户组vbird1
[root@study ~]# grep vbird1 /etc/passwd /etc/shadow /etc/group
/etc/passwd:vbird1:x:1003:1004::/home/vbird1:/bin/bash
/etc/shadow:vbird1:!!:16636:0:99999:7:::
/etc/group:vbird1:x:1004:
范例2:假设我已知道我的系统当中有个群组名称为 users ,且UID1500 并不存在,请用 users 为初始群组,以及 uid 为 1500 来创建一个名为 vbird2 的帐号
[root@study ~]# useradd -u 1500 -g users vbird2
[root@study ~]# ll -d /home/vbird2
drwx------. 4 vbird2 users 4096 Feb 25 09:59 /home/vbird2
[root@study ~]# grep vbird2 /etc/passwd /etc/shadow /etc/group
/etc/passwd:vbird2:x:1500:100::/home/vbird2:/bin/bash
/etc/shadow:vbird2:!!:14300:0:99999:7:::
看一下,UID 与 initial group 确实改变成我们需要的了。
范例3:创建一个系统帐号,名称为 vbird3
[root@study ~]# useradd -r vbird3
[root@study ~]# ll -d /home/vbird3
ls: cannot access /home/vbird3: No such file or directorya
可以看到,不会主动创建主文件夹
[root@study ~]# grep vbird3 /etc/passwd /etc/shadow /etc/group
/etc/passwd:vbird3:x:100:103::/home/vbird3:/bin/bash
/etc/shadow:vbird3:!!:14300::::::
/