Linux学习 用户管理
0.新建用户
sudo useradd -d /home/zookeeper -m zookeeper
-d 指定用户组目录
-m 如果前面指定的用户组目录不存在,就创建改目录
passwd
1./etc/passwd与文件记录的用户信息
Linux并不直接认识用户名,它仅仅认识ID,用户名与ID的对应关系在/etc/passwd中
以其中两行为例:
root:x:0:0:root:/root:/bin/bash prison:x:1001:1001:prison,prison,prison,priso,prison:/home/prison:/bin/false
解意为:
账号名称:
密码(x表示密码已经移动到/etc/shadow进行管理):
UID(为0表示系统管理员):
GID(这个与/etc/group有关,其概念与/etc/passwd差不多,只是用来管理group而已,例如/etc/group 中的一行 wangx:x:1000: 分别表示组名,组密码,组ID,一共四个字段,最后一个字段表示该组有哪些用户,为空则表示和只有一个用户,这个用户就是wangx):
使用者信息说明栏:
主目录:
Shell(需要注意的是,有一个shell可以用来代替成让账号无法登入的指令,就是/sbin/nologin。而/bin/false是最严格的禁止login选项,一切服务都不能用,而/sbin/nologin只是不允许系统login,可以使用其他ftp等服务,如果想要用false在禁止login的同时允许ftp,则必须在/etc/shells里增加一行/bin/false。
):
可以看出prison用户的UID(用户ID)和GID(组ID)分别为1001、1001
进入prison用户的主目录,ll一下:
可以看到比如.bash_logout文件,所属用户为prison,所属组为sftp-users
如果我vi一下/etc/passwd,将prison的UID修改为3000,然后保存,再ll一下prison用户的主目录:
可以看到原来的所属用户prison变成了1001,这是因为1001在/etc/passwd里面找不到1001的对应的用户名,所以就么有显示用户名,直接显示UID了。可以看出文件本身记录的是UID而不是用户名
2.使用用户名密码登录LINUX的过程
- linux查看/etc/passwd里是否又这个账号,没有则跳出;有则读该账号对应的UID与GID,另外,将该账号的HOME目录与SHELL设定一并读出;
- 核对密码表,linux进入/etc/shadow里面找出对应的账号与UID,然后核对输入的密码与记录的密码是否一致
- 如果一切OK, 就进入Shell控管的阶段
3.使普通用户能使用sudo命令
切换到root用户,运行visudo命令,
在打开的配置文件中,找到root ALL=(ALL) ALL,在下面添加一行
xxx ALL=(ALL) ALL 其中xxx是你要加入的用户名称