Loading

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是你要加入的用户名称

posted @ 2017-06-27 16:48  注销111  阅读(328)  评论(0编辑  收藏  举报