系统相关
首页 > 系统相关> > linux用户相关

linux用户相关

作者:互联网

在linux中, 一个用户属于一个组, 用户信息和组信息分别存在于etc/passwd/etc/group文件中, 一个用户至少属于一个组.

执行useradd或者adduser命令的时候, 会在/etc/passwd中添加一条新的记录:

# 添加一个用户, 分配指定的组, 用户id和shell环境以及主目录用户名
root@0aa88e669e5f:/# useradd -g chifan -u 2212 -s /bin/bash -d /home/chifan -m hahaha
# 提示该组不存在
useradd: group 'chifan' does not exist
# 新建chifan组
root@0aa88e669e5f:/# groupadd chifan
# 重新执行添加用户命令
# 这里注意, 添加的用户是hahaha, 但是根目录是/home/chifan
root@0aa88e669e5f:/# useradd -g chifan -u 2212 -s /bin/bash -d /home/chifan -m hahaha 
# 查看/home目录
root@0aa88e669e5f:/# ll /home/
total 20
drwxr-xr-x 1 root   root   4096 Aug  1 05:26 ./
drwxr-xr-x 1 root   root   4096 Aug  1 04:48 ../
drwxr-xr-x 2 hahaha chifan 4096 Aug  1 05:26 chifan/
drwxr-xr-x 2 kaka   kaka   4096 Aug  1 04:49 kaka/
# 查看新添加这个用户的元信息
root@0aa88e669e5f:/# stat /home/chifan
  File: '/home/chifan'
  Size: 4096        Blocks: 8          IO Block: 4096   directory
Device: 8bh/139d    Inode: 3199080     Links: 2
Access: (0755/drwxr-xr-x)  Uid: ( 2212/  hahaha)   Gid: ( 1004/  chifan)
Access: 2019-08-01 05:26:05.573243420 +0000
Modify: 2019-08-01 05:33:20.335230696 +0000
Change: 2019-08-01 05:33:20.335230696 +0000
 Birth: -
# 查看/etc/passwd文件最后两行
root@0aa88e669e5f:/# tail -n 2 /etc/passwd
akkk:x:1003:1003:akakddd,kdkdkdkd,kslsld,djsdkjjsdjksd,sdsdjjssfjksf:/home/akkk:/bin/bash
hahaha:x:2212:1004::/home/chifan:/bin/bash

这时候去`/etc/shadow`下面查看认证信息:

root@0aa88e669e5f:/# grep hahaha /etc/shadow
hahahaa:!:18109:0:99999:7:::

这时候注意, :的第二个是!号, 也就是未设置密码, 然后设置hahaha的密码:

# 设置密码
root@0aa88e669e5f:/# passwd hahaha
Enter new UNIX password: 
Retype new UNIX password: 
passwd: password updated successfully
# 查看
root@0aa88e669e5f:/# grep hahaha /etc/shadow
hahaha:$6$tb1762VD$9z9KzZ04QkelFU8R3t88P7WAD2.jDF7NseuZoJrDQVyNvgGXTcYq6dTwqcUnnb1GJWMIfoFaQ9qzhJLc5A3Tj1:18109:0:99999:7:::

 设置用户的组和有效组

# 添加一个新用户
adduser admin
# 设置对应的账号密码

# 如果还没有 docker group 就添加一个:
sudo groupadd docker
# 将用户加入该 group 内。然后退出并重新登录就生效啦。
sudo gpasswd -a ${USER} docker
# 重启 docker 服务
sudo service docker restart
# 切换当前会话到新 group 或者重启 X 会话
newgrp - docker

文件解释

用户登录的时候, 先去/etc/passwd中查看对应的用户信息, 读取对应的uid和gid, 然后再去/etc/shadow中确认密码是否正确, 最后确认用户登录成功

linux中一个用户是用uid来确认的, 用户名只是一个别称, 类似于账户表中用户的登录名和实际表中存储的主键一样

/etc/passwd

akkk:x:1003:1003:akakddd,kdkdkdkd,kslsld,djsdkjjsdjksd,sdsdjjssfjksf:/home/akkk:/bin/bash
hahaha:x:2212:1004::/home/chifan:/bin/bash

这里通过:将各种信息分隔开, 其中有:

/etc/shadow

root@0aa88e669e5f:/# grep hahaha /etc/shadow
hahaha:$6$tb1762VD$9z9KzZ04QkelFU8R3t88P7WAD2.jDF7NseuZoJrDQVyNvgGXTcYq6dTwqcUnnb1GJWMIfoFaQ9qzhJLc5A3Tj1:18109:0:99999:7:::

同样, 都是:分隔开

目录和文件权限

hahahaa@0aa88e669e5f:~$ ll
total 24
drwxr-xr-x 2 hahaha chifan 4096 Aug  1 06:05 ./
drwxr-xr-x 1 root   root   4096 Aug  1 05:35 ../
-rw------- 1 hahaha chifan  239 Aug  1 06:13 .bash_history
-rw-r--r-- 1 hahaha chifan  220 Aug 31  2015 .bash_logout
-rw-r--r-- 1 hahaha chifan 3771 Aug 31  2015 .bashrc
-rw-r--r-- 1 hahaha chifan  655 Jul 12 19:26 .profile
-rw-r--r-- 1 hahaha a         0 Aug  1 06:04 kaka.text
-rw-r--r-- 1 hahaha b         0 Aug  1 06:05 kakaaaa.text

前面分开的格式是1, 3, 3, 3

总结

用到的命令

# 添加用户
useradd aaa
adduser akaka
# 添加组
groupadd kkk
# 设置用户密码
passwd root
# 切换用户的激活组
newgrp + 组名
# 切换权限
chmod +x ./hahaa.text
# 切换用户
chown aha.text
# 查看用户的信息
hahahaa@0aa88e669e5f:~$ id hahaha
uid=2212(hahaha) gid=1004(chifan) groups=1004(chifan),1005(a),1006(b)
# 查看用户的组
hahahaa@0aa88e669e5f:~$ groups hahaha
hahaha : chifan a b
# 或者
cat /group | grep 用户名
# 组的最后一个对应的就是该组的用户名
# 查看所有组
cat /etc/grroup

写在最后

摘抄linux的启动流程

# http://cn.linux.vbird.org/linux_basic/0510osloader.php#startup_intro
加载 BIOS 的硬件资讯与进行自我测试,并依据配置取得第一个可启动的装置;
读取并运行第一个启动装置内 MBR 的 boot Loader (亦即是 grub, spfdisk 等程序);
依据 boot loader 的配置加载 Kernel ,Kernel 会开始侦测硬件与加载驱动程序;
在硬件驱动成功后,Kernel 会主动呼叫 init 程序,而 init 会取得 run-level 资讯;
init 运行 /etc/rc.d/rc.sysinit 文件来准备软件运行的作业环境 (如网络、时区等);
init 运行 run-level 的各个服务之启动 (script 方式);
init 运行 /etc/rc.d/rc.local 文件;
init 运行终端机模拟程序 mingetty 来启动 login 程序,最后就等待使用者登陆啦;

标签:home,linux,用户,etc,chifan,hahaha,相关,root
来源: https://www.cnblogs.com/quehuitou/p/11282435.html