Linux登陆需要用户名、密码。/etc/passwd 文件保存用户名。登录Linux时,Linux 先查找 /etc/passwd 文件中是否有这个用户名,没有则跳出,有则读取用户名的user ID 、 group ID 、用户名对应的根目录路径以及所使用的 shell ,最后在 /etc/shadow 中核对该 UID 对应的 PWD 是否正确,正确则登录到该用户的 shell。
用户账号
超级用户(root,不可被替代)普通用户(自己创建,取用户名)程序用户(人无法登录,是给程序使用的,以使程序可以正常运转)匿名用户(windows的guest,linux的nobody,普通用户中的最低权限用户)组账号(用户权限的集合)
基本组(私有组,伴随着用户的创建而创建,与用户同名)附加组(公有组,直接创建一个空组,可以添加已有用户,给组设置相关权限,该组中的所有用户都具备此权限)UID和GID(标签,标识号)
UID(User IDentity,用户标识号)
GID(group IDentify,组标识号)
保存用户名称、宿主目录、登录Shell等基本信息
文件位置:/tec/passwd每一行对应一个用户的账号记录账号记录用冒号分隔
用户账号:用户名
密码占位符:代表有密码,不会起到密码的个数和内容的属性
用户账号 ID :UID
uid序号:
序号用户0root1-999程序用户1000-60000普通用户99nobody匿名用户组账号ID:GID,GID基本上指私有组,名称与UID基本上是一致
用户说明:描述性信息
宿主目录:家目录
登录shell:是否可以登录系统,/bin/bash /sbin/bash 是可以 /sbin/nologin 无法人为登录
影子文件,shadow,密码记录对应格式解释,用冒号分开
用户名:密码被加密:从1970.1.1日诞生日起过了14374天:0代表密码最短使用期限,代表随时可以修改密码:99999代表最长密码使用期限:7代表会提前7天提醒你修改密码:还有失效时间,过了99999天之后,多少天后账号会失效
bin:*,!,!!代表无法登陆
-u 指定UID
-d 指定家目录
-e 指定失效时间,可以使用年-月-日格式
-g 指定基本组(若指定基本组,则必须先存在基本组)
-G 指定附加组 (组必须要已存在)
-M 指定不创建家目录
-s 指定是否允许从shell 登录
-d 清除密码
-l 指锁定账号密码
-u 指解锁账号密码
-S 查看用户当前状态是否被锁定
vim /etc/passwd vim编辑查看passwd
[root@localhost ~]# vim /etc/passwd #进入passwd查看用户信息,也可以用tail查看 [root@localhost ~]# useradd -d /opt/lisi -s /sbin/nologin lisi #创建lisi用户,根目录在/opt/lisi,-s /sbin/nologin 不可以登录 [root@localhost ~]# tail -2 /etc/passwd # 查看/etc/passwd账号文件的后两行 gsy:x:1000:1000:gsy:/home/gsy:/bin/bash lisi:x:1001:1001::/opt/lisi:/sbin/nologin #刚才新创建的用户 [root@localhost ~]# passwd lisi # 设置李四密码 更改用户 lisi 的密码 。 # linux密码设置时看不到 新的 密码: 无效的密码: 密码是一个回文 重新输入新的 密码: passwd:所有的身份验证令牌已经成功更新。 [root@localhost ~]# su - lisi # 加载lisi This account is currently not available. # 这个账户目前不可用用vim在passwd中修改参数,将lisi行末尾的nologin改为bash,lisi就可以登录
lisi:x:1001:1001::/opt/lisi:/sbin/nologin #之前李四账号信息末尾为nologin lisi:x:1001:1001::/opt/lisi:/bin/bash #修改为/bin/bash,然后保存(lisi不是管理员,不可以用sbin):wq!保存vim编辑
[root@localhost ~]# vim /etc/passwd [root@localhost ~]# su - lisi #加载lisi 上一次登录:五 11月 1 11:32:10 CST 2019pts/0 上 #登陆成功试一试passwd -l 命令
[root@localhost ~]# passwd -S lisi #查看lisi账号密码状态 passwd -S lisi PS 2019-11-01 0 99999 7 -1 (密码已设置,使用 SHA512 算法。) #显示账号密码状态 [root@localhost ~]# passwd -l lisi #锁定lisi密码 passwd -l 锁定用户 lisi 的密码 。 #系统反馈密码已锁定 passwd: 操作成功 [root@localhost ~]# passwd -S lisi # 再次查看lisi账号密码状态 lisi LK 2019-11-01 0 99999 7 -1 (密码已被锁定。) #密码已被锁定 [root@localhost ~]# su - lisi #加载lisi账号 上一次登录:五 11月 1 11:36:07 CST 2019pts/0 上 su: failed to execute /sbin/bash: 没有那个文件或目录 #这里把passwd中的lisi末尾信息改为/bin/bash即可 [root@localhost ~]# vim /etc/passwd [root@localhost ~]# su - lisi #再次加载lisi 上一次登录:五 11月 1 11:42:55 CST 2019pts/0 上 #从最高权限root登录次级用户不需要密码,登录成功 [lisi@localhost ~]$ pwd #查看当前~的绝对路径 /opt/lisi #~也就是用户的根目录 [lisi@localhost ~]$ exit # 注销退出 登出 [root@localhost ~]# su - gsy #加载gsy用户 上一次登录:三 10月 23 13:44:51 CST 2019:0 上 [gsy@localhost ~]$ su - lisi # 同级别用户去加载lisi 密码: 输入密码 su: 鉴定故障 无法登陆小结:
passwd -l 锁定用户密码,导致的结果是本地图形界面登录端不能登陆,但字符界面可以登录,(仅限于高权限用户切换到李四用户)
/sbin/nologin 用户无法直接登陆和被切换登录
system用户权限最大,但是无法人为登录
passwd 后面不指定用户名,就是修改当前密码,即默认用户名为当前用户
-u:修改用户的UID号
-d:修改用户的家目录
-e:修改用户的账户失效时间
-s:指定用户的登录shell
-l 更改用户账号的登录名称
-L 锁定用户账户
-U 解锁用户账户
[gsy@localhost ~]$ exit 把之前的gsy用户登出,回到root #exit 登出 [root@localhost ~]# passwd -S lisi 查看lisi当前密码状态 #passwd -S lisi LK 2019-11-01 0 99999 7 -1 (密码已被锁定。) #系统反馈密码已被锁定,之前是用passwd -l去锁定 [root@localhost ~]# usermod -U lisi #使用usermod -U命令去解锁lisi密码 [root@localhost ~]# passwd -S lisi #查看lisi当前密码状态 lisi PS 2019-11-01 0 99999 7 -1 (密码已设置,使用 SHA512 算法。) #此时反馈密码是可以正常使用的 [root@localhost ~]# usermod -L lisi #用usermod -L 去锁定lisi密码 [root@localhost ~]# passwd -S lisi #此时再用passwd -S 去查看lisi状态 lisi LK 2019-11-01 0 99999 7 -1 (密码已被锁定。) #系统反馈lisi密码已被锁定 [root@localhost ~]# passwd -u lisi #用passwd -u 命令去解锁lisi的密码 解锁用户 lisi 的密码。 #反馈成功解锁 passwd: 操作成功小结:usermod的密码锁定解锁权限和passwd的密码锁定解锁权限一样高,可以相互使用
ls -l 详细信息 ls -d本目录路径
root@localhost ~]# useradd wangwu #创建wangwu用户 useradd [root@localhost ~]# passwd wangwu #创建wangwu密码 passwd 更改用户 wangwu 的密码 。 新的 密码: 无效的密码: 密码是一个回文 #强制执行,回车键 重新输入新的 密码: passwd:所有的身份验证令牌已经成功更新。 [root@localhost ~]# ls /home #查看/home目录下 创建用户时没有指定根目录,就会自动设置到/home下 gsy wangwu #显示/home 中有两个目录,即两个普通用户的根目录 [root@localhost ~]# id wangwu #查看wangwu的id,即UID和GID uid=1002(wangwu) gid=1002(wangwu) 组=1002(wangwu) [root@localhost ~]# id lisi #查看lisi的UID和GID uid=1001(lisi) gid=1001(lisi) 组=1001(lisi) [root@localhost ~]# useradd wangwu useradd:用户“wangwu”已存在 [root@localhost ~]# userdel wangwu #删除wangwu用户 userdel [root@localhost ~]# ls /home #查看被删除wangwu的根目录 gsy wangwu # 依旧存在 [root@localhost ~]# userdel -r gsy #用附加选项-r [root@localhost ~]# ls /home wangwu #被删除的gsy的根目录已被删除 [root@localhost ~]#以隐藏文件存在
~/.bash_profile 指定环境变量,在每次登陆shell时,就会加载其中的参数
~/.bashrc 在用户登录时就会被加载
~/.bash_logout 指注销时会起作用
[root@localhost ~]# id wangwu #这是wangwu用户已被删除,id查看其信息 id: wangwu: no such user #显示没有这个用户 [root@localhost ~]# ls -a /home/wangwu #但是他的根目录还在,ls -a 查看/home/wangwu . .. .bash_logout .bash_profile .bashrc .mozilla #显示隐藏文件 #没啥用了,可以直接rm -rf 删掉wangwu目录与/etc/passwd类似
[root@localhost ~]# tail -3 /etc/group #查看/etc/group 文件末尾三行 stapdev:x:158: tcpdump:x:72: lisi:x:1001: #其中有创建的用户lisi的基本组 [root@localhost ~]# id lisi #查看lisi的id uid=1001(lisi) gid=1001(lisi) 组=1001(lisi) [root@localhost ~]#-g 指定组GID 人可用的组也是从1000开始排序
-M 多用户添加
–stdin 标准性输入,免交互
[root@localhost ~]# tail -5 /etc/passwd #查看/etc/passwd末尾五行 sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin avahi:x:70:70:Avahi mDNS/DNS-SD Stack:/var/run/avahi-daemon:/sbin/nologin postfix:x:89:89::/var/spool/postfix:/sbin/nologin tcpdump:x:72:72::/:/sbin/nologin lisi:x:1001:1001::/opt/lisi:/bin/bash #现在和只有一个普通用户lisi [root@localhost ~]# useradd zhangsan #另外创建zhangsan用户 [root@localhost ~]# tail -5 /etc/passwd #查看/etc/passwd是否更新 avahi:x:70:70:Avahi mDNS/DNS-SD Stack:/var/run/avahi-daemon:/sbin/nologin postfix:x:89:89::/var/spool/postfix:/sbin/nologin tcpdump:x:72:72::/:/sbin/nologin lisi:x:1001:1001::/opt/lisi:/bin/bash #lisi账号信息 zhangsan:x:1002:1002::/home/zhangsan:/bin/bash #zhangsan账号信息 [root@localhost ~]# echo "111111" |passwd --stdin zhangsan #免交互设置张三账号 密码为111111 更改用户 zhangsan 的密码 。 passwd:所有的身份验证令牌已经成功更新。 [root@localhost ~]# useradd wangwu #再创建一个wangwu账号 正在创建信箱文件: 文件已存在 [root@localhost ~]# tail -5 /etc/passwd #查看/etc/passwd是否更新 postfix:x:89:89::/var/spool/postfix:/sbin/nologin tcpdump:x:72:72::/:/sbin/nologin lisi:x:1001:1001::/opt/lisi:/bin/bash #lisi账号信息 zhangsan:x:1002:1002::/home/zhangsan:/bin/bash #zhangsan账号信息 wangwu:x:1003:1003::/home/wangwu:/bin/bash #zhangwu账号信息 [root@localhost ~]# groupadd caiwu #创建组,名字叫caiwu groupadd [root@localhost ~]# tail -5 /etc/group #查看/etc/group 组文件 tcpdump:x:72: lisi:x:1001: #lisi的基本组 zhangsan:x:1002: #zhangsan的基本组 wangwu:x:1003: #wangwu的基本组 caiwu:x:1004: #新建的公有组 [root@localhost ~]# gpasswd -a zhangsan caiwu #把一个zhangsan用户添加到caiwu组中 正在将用户“zhangsan”加入到“caiwu”组中 [root@localhost ~]# id zhangsan #id 查看zhangsanUID,GID信息 uid=1002(zhangsan) gid=1002(zhangsan) 组=1002(zhangsan),1004(caiwu) #这里显示组内多了一个1004(caiwu) [root@localhost ~]# tail -5 /etc/group #相应的,也去查看一下/etc/group组文件的状态 tcpdump:x:72: lisi:x:1001: zhangsan:x:1002: wangwu:x:1003: caiwu:x:1004:zhangsan #后面多了一个用户,就是刚才添加的zhangsan [root@localhost ~]# gpasswd -M lisi,wangwu caiwu #用gpasswd -M 命令添加多个 用户(用户之间用,隔开)到caiwu组中 [root@localhost ~]# id lisi #查看lisi的id信息 uid=1001(lisi) gid=1001(lisi) 组=1001(lisi),1004(caiwu) #多了一个caiwu组 [root@localhost ~]# id wangwu #查看wangwuid信息 uid=1003(wangwu) gid=1003(wangwu) 组=1003(wangwu),1004(caiwu) #多了一个caiwu组 [root@localhost ~]# id zhangsan #此时去查看zhangsan,zhangsan之前就已经被添加到caiwu组中 uid=1002(zhangsan) gid=1002(zhangsan) 组=1002(zhangsan) #发现消失了 [root@localhost ~]# tail -5 /etc/group #此时查看/etc/group组文件信息,后五行 tcpdump:x:72: lisi:x:1001: zhangsan:x:1002: wangwu:x:1003: caiwu:x:1004:lisi,wangwu #caiwu组后面的成员变成用M命令添加的lisi和wangwu,之前添加的lisi不见了 [root@localhost ~]# gpasswd -M lisi caiwu #用gpasswd -M去添加lisi到caiwu组 [root@localhost ~]# tail -5 /etc/group #查看/etc/group组文件信息 tcpdump:x:72: lisi:x:1001: zhangsan:x:1002: wangwu:x:1003: caiwu:x:1004:lisi #此时之前的zhangsan,wangwu不见,只有最新添加的lisi [root@localhost ~]# gpasswd -a wangwu caiwu #用gpasswd -a 一个一个添加用户到caiwu组,此时添加wangwu 正在将用户“wangwu”加入到“caiwu”组中 [root@localhost ~]# gpasswd -a zhangsan caiwu #用gpasswd -a 添加zhangsan到caiwu组 正在将用户“zhangsan”加入到“caiwu”组中 [root@localhost ~]# tail -5 /etc/group #查看/etc/group组文件信息 tcpdump:x:72: lisi:x:1001: zhangsan:x:1002: wangwu:x:1003: caiwu:x:1004:lisi,wangwu,zhangsan #没有把之前的lisi覆盖掉 [root@localhost ~]# gpasswd -d lisi caiwu #gpasswd -d 把lisi用户从caiwu组中三处 正在将用户“lisi”从“caiwu”组中删除 [root@localhost ~]# tail -5 /etc/group #查看组文件信息是否更新 tcpdump:x:72: lisi:x:1001: zhangsan:x:1002: wangwu:x:1003: caiwu:x:1004:wangwu,zhangsan #lisi已经被删除掉小结:
如果用M添加成员,就会对这个组进行覆盖,把之前所在用户全部覆盖-a 不会覆盖,相当于追加含义删除用户只能一个一个删查询用户所属的组
groups 【用户名】查询用户身份标识
id 【用户名】查询用户账户的详细信息
finger 【用户名】查询已登录到主机的用户信息
w who users查询历史用户登录记录
lastb [root@localhost dev]# who #查询已登录主机的历史用户登录时间 root pts/0 2019-11-01 19:24 (192.168.139.1) root :0 2019-11-01 22:03 (:0) root pts/1 2019-11-01 22:04 (192.168.139.1) [root@localhost dev]# w #查询用户登录信息 00:08:51 up 3:05, 3 users, load average: 0.00, 0.01, 0.05 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT root pts/0 192.168.139.1 19:24 3:49m 0.08s 0.08s -bash root :0 :0 22:03 ?xdm? 46.63s 0.09s /usr/libexec/gnome-sess root pts/1 192.168.139.1 22:04 3.00s 0.33s 0.02s w [root@localhost dev]# users #查询登录用户 root root root [root@localhost dev]# lastb #查询尝试登陆用户信息 gsy :0 :0 Fri Nov 1 22:03 - 22:03 (00:00) gsy :0 :0 Fri Nov 1 22:03 - 22:03 (00:00) btmp begins Fri Nov 1 22:03:10 2019文件类型文件下,自己也包含一个子文件,大小,日期,类型
-rw-r--r--. 1 root root 513 11月 5 2016 updatedb.conf1.- 文件类型(数据文件),除了-还有d 目录,l链接文件,c负责输入输出的设备(字符)文件,b负责存储的块设备文件 2.rw- r-- r-- 三个一组,分别代表各个权限 rw- 属主权限,可读可写,r代表读,w代表写,后面的x代表执行,没有相应的权限就在相应的位置用-代替 r-- 属组权限,代表可读,不可写,不可执行 r-- 其他用户(other)权限,代表只读,即可读,不可写,不可执行 第一个root代表属主 第二个root代表属组 513代表容量大小,默认单位为字节 11月 5 2016 代表创建时间 即: 首字符表示文件类型(-数据文件)d 目录 l链接文件 c 字符设备文件(控制输入输出) b块设备文件(控制存储)
权限,三个一组,分为三块,分别是属主,属组,所有人
头一块代表属主权限 最多的是rwx
第二块是属组权限 rw- 能读能写不能执行 r-x 能都能写不能执行
第三块r-- 所有人权限, other 其他 r-- 只读权限
1 子文件,自己
root 属主
root 属组
513 大小 单位:字节
11yue 5 2016 创建时间
这一条目整体叫做元信息
数据文件最高权限666
目录最高权限777
默认创建755或者644或者700.600.
改属主属组用.分隔也可以