一、每个部分含义
类型、权限 硬链接数 用户 组 大小 月 日 时间 文件名
1.第一个字符就是类型:
(1)d 目录
(2)- 普通文件
b block (buffered) special 块设备(硬盘光驱)
c character (unbuffered) special 字符设备
d directory 查找目录
l symbolic link 软连接:快捷方式
s socket 和应用程序之间通信有关
2.用户
User分类 身份证(唯一标识)
超级用户:root UID:0
普通用户:(例)oldboy UID:随机(1000-60000)
(虚拟用户)傀儡用户 UID:1-499 对应文件和进程,不能登陆
(1)普通用户切可以换到root:
su - root #角色改变,由普通用户变成了root(农民起义,当皇帝。)
(2)oldboy不切换到root,可以使用root的权限去做事,按命令给权限,赋予普通用户一部分权限
sudo useradd oldboy
(3)与用户相关命令
useradd 添加用户
usermod 修改用户
userdel 删除用户
1)useradd 添加用户
-u 指定UID
-g 指定属于的组
-M 不创建家目录
-s 指定登录的解释器
-u 指定uid添加用户
[root@oldboy ~]# useradd -u 1111 test
[root@oldboy ~]# id test #用户信息
uid=1111(test) gid=1111(test) 组=1111(test)
[root@oldboy ~]# tail -1 /etc/passwd #查看用户文件
test:x:1111:1111::/home/test:/bin/bash
-g 指定用户属于哪个组
[root@oldboy ~]# groupadd tech
[root@oldboy ~]# tail -1 /etc/group
tech:x:1002:
[root@oldboy ~]# useradd littleboy -g tech #添加一个littleboy 属于tech组
[root@oldboy ~]# id littleboy
uid=1002(littleboy) gid=1002(tech) 组=1002(tech)
#
[root@oldboy ~]# ls -l /home
总用量 0
drwx------. 2 littleboy tech 62 8月 30 01:14 littleboy
drwx------. 2 oldboy oldboy 99 8月 30 00:59 oldboy
drwx------. 2 oldgirl oldgirl 62 8月 30 01:11 oldgirl
drwx------. 2 test test 62 8月 30 01:19 test
-M 不生成家目录
[root@oldboy ~]# useradd test1 -M
[root@oldboy ~]# ls /home/
littleboy oldboy oldgirl test #无text1家目录
-s 指定解释器
[root@oldboy ~]# useradd test2 -s /sbin/nologin -M #用于给应用软件运行提供用户,只给个用户,不让其登陆,并且不给他家目录
[root@oldboy ~]# tail -1 /etc/passwd
test2:x:1113:1113::/home/test2:/sbin/nologin #不能登陆
[root@oldboy ~]# su - test2
su: 警告:无法更改到 /home/test2 目录: 没有那个文件或目录
This account is currently not available.
查看解释器:
[root@oldboy ~]# cat /etc/shells
/usr/bin/sh
/usr/bin/bash
2)usermod 修改用户
-u 指定UID
-g 指定属于的组
-M 不创建家目录
-s 指定登录的解释器
例1:test2解释器改成bash
[root@oldboy ~]# grep -w test2 /etc/passwd #-w 相当于按单词过滤
test2:x:1113:1113::/home/test2:/sbin/nologin
[root@oldboy ~]# usermod -s /bin/bash test2
[root@oldboy ~]# grep -w test2 /etc/passwd
test2:x:1113:1113::/home/test2:/bin/bash
例2:更改littleboy用户,属于oldboy组
[root@oldboy ~]# grep littleboy /etc/passwd
littleboy:x:1002:1002::/home/littleboy:/bin/bash
[root@oldboy ~]# id littleboy
uid=1002(littleboy) gid=1002(tech) 组=1002(tech)
[root@oldboy ~]# usermod -g oldboy littleboy #让littleboy属于oldboy组
例3:修改uid为6666
[root@oldboy ~]# id littleboy
uid=1002(littleboy) gid=1000(oldboy) 组=1000(oldboy)
[root@oldboy ~]# usermod -u 6666 littleboy
[root@oldboy ~]# id littleboy
uid=6666(littleboy) gid=1000(oldboy) 组=1000(oldboy)
3)userdel 删除用户
-r 连带家目录一起删除
[root@oldboy ~]# userdel -r test #一般不用该项
[root@oldboy ~]# ls /home
littleboy oldboy oldgirl #text家目录已删除
[root@oldboy ~]# userdel oldgirl #删oldgirl用户
[root@oldboy ~]# ls /home
littleboy oldboy oldgirl #未删除家目录
3.组
唯一标识:GID(Group Identify)
组名:oldboy
用户的用户组 类似于【人】的家庭,学校等组织
1个用户可以在多个组里。
1个组可以有多个用户。
用户组怎么产生的?
1)创建用户的时候默认产生的,创建一个oldboy,默认情况就会生成oldboy组,
用户和组同名,且UID和GID相同
[root@oldboy ~]# useradd oldgirl #添加用户
[root@oldboy ~]# tail -1 /etc/passwd #存放用户的文件
oldgirl:x:1001:1001::/home/oldgirl:/bin/bash
[root@oldboy ~]# tail -1 /etc/group #存放用户组的文件
oldgirl:x:1001: #创建oldgirl用户的时候,同时创建oldgirl用户组
2)由root用户直接创建用户组
[root@oldboy ~]# groupadd tech
[root@oldboy ~]# tail -1 /etc/group
tech:x:1002:
[root@oldboy ~]# useradd littleboy -g tech #添加一个littleboy 属于tech组
[root@oldboy ~]# id littleboy
uid=1002(littleboy) gid=1002(tech) 组=1002(tech)
4.用户和组相关的配置文件
直接相关的有4个
/etc/passwd #用户主配置文件,用户的各种属性(UID,GID,家目录,登录SHELL)
/etc/shadow #用户密码文件,存放密码及密码的属性(失效时间,修改密码时间等)
/etc/group #组文件,存放用户组及属性
/etc/gshadow #用户组的密码文件(废弃)
详细说明:
用户文件:
/etc/passwd
[root@oldboy ~]# tail -1 /etc/passwd
littleboy: x: 1002:1002: :/home/littleboy :/bin/bash
用户 密码(此处隐藏,在shadow文件里) UID GID 说明 家目录 登录解释
5.用户组相关命令
1)创建用户组:groupadd
[root@oldboy ~]# groupadd tech
[root@oldboy ~]# tail -1 /etc/group
tech:x:1002:
[root@oldboy ~]# useradd littleboy -g tech #添加一个littleboy 属于tech组
[root@oldboy ~]# id littleboy
uid=1002(littleboy) gid=1002(tech) 组=1002(tech)
2)删除用户组:groupdel
[root@oldboy ~]# groupadd abc
[root@oldboy ~]# tail -1 /etc/group
abc:x:1114:
[root@oldboy ~]# groupdel abc
6.密码相关:passwd
(一)修改指定用户密码:
root用户:可以改任何用户密码
[root@oldboy ~]# passwd oldboy
普通用户:只能改自己的密码
[oldboy@oldboy ~]$ passwd ##更改用户oldboy的密码
(二)非交互式修改密码:- - stdin
echo 123456|passwd --stdin root #将root密码改为123456
[root@oldboy ~]# echo 123456|passwd --stdin root
更改用户 root 的密码 。
passwd:所有的身份验证令牌已经成功更新。
[root@oldboy ~]# history
231 echo 123456|passwd --stdin root #历史记录可以查到要改的密码,留痕迹
232 history
[root@oldboy ~]# history -d 231 #按编号把带密码的命令删除
[root@oldboy ~]# history #已经删除了痕迹
批量设置密码而且不留痕迹
[root@oldboy ~]# cat /tmp/a.txt
oldboy:123456
test1:890
以下命令相同
[root@oldboy ~]# chpasswd </tmp/a.txt
[root@oldboy ~]# cat /tmp/a.txt|chpasswd