User & Group
0. 核心文件与概念
/etc/passwd
账号:密码:UID:GID:注释:用户主目录:默认Shell
root:x:0:0:root:/root:/bin/bash daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin bin:x:2:2:bin:/bin:/usr/sbin/nologin pzdn:x:1000:1000:DotnetCore,,,:/home/pzdn:/bin/bash/etc/shadow
账号:密码:更改日期:密码不可被改动的天数:重新更改的天数:警告天数:失效日:失效日期:保留
daemon:*:16365:0:99999:7::: bin:*:16365:0:99999:7::: pzdn:$1$8U/0HIzpPMY1ICVXvIY.dObw1:17030:0:99999:7:::/etc/group
用户组名称:用户组密码:GID:此用户组支持的账号名称
root:x:0: daemon:x:1: bin:x:2: sambashare:x:125:pzdn- /etc/gshadow
初始用户组:GID。initial group。用户一登录,就获得这个组的权限。
有效用户组:使用newgrp来切换,那么创建的文件所属的用户组就属于切换之后的组。
newgrp:用户的环境配置(例如环境变量等等其他数据)不会有影响,但是使用者的『用户组权限』将会重新被计算
eg:
$ groups
pzdn adm cdrom sudo dip plugdev lpadmin sambashare docker
$ newgrp docker
$ mkdir tes2
$ ll tes2
drwxrwxr-x 2 pzdn pzdn 4096 Nov 5 04:07 tes/
drwxrwxr-x 2 pzdn docker 4096 Nov 5 04:08 tes2/
1. 用户User
用户:查看,新增,修改,删除更改密码
查看用户
w
who
who am i
whoami
last #show listing of last logged in users
lastlog #打印每个账号的最近登录时间
id #打印真实和有效用户、用户组IDs
创建用户(Debian的管理员工具,比useradd更高级)
sudo adduser username
ls /home #view the newuser's home
su -l username #switch to the new user.
useradd——create a new user or update default new user information
默认行为:
- 建立一个新目录作为家目录
- 建立同名新组
- 把用户的主要组设为该组(除非命令选项覆盖以上默认动作,比如–disall-homdirecry之类)
- 从\/etc\/skel目录下拷贝文件到家目录,完成初始化
- 建立新用户的密码
- 如果其存在的话,还会执行一个脚本。
useradd -D #查看useradd的默认值信息
useradd pzdn #按照默认值创建一个用户
grep pzdn | /etc/passwd /etc/shadow /etc/group
useradd -u 700 -g users pzdn2 #将pzdn2加到users组,且UID为700
grep pzdn2 | /etc/passwd /etc/shadow /etc/group
useradd -r pzdn3 #创建一个系统账户,不会创建主文件夹
passwd——change user passwd
passwd #修改自己的密码
passwd username #修改他人的密码
usermod——modify a user account
usermod -aG myGroup pzdn #将pzdn添加到myGroup
usermod -u 578 pzdnnew # 修改UID
usermod -g 100 pzdn#修改初始用户组
usermod -L pzdn #冻结账户
usermod -l pzdnnew pzdn #修改用户名
删除用户
sudo deluser username --remove-home
userdel [-r] pzdn #删除用户,r表示连同主目录
2. 用户组Group
查看用户组
groups pzdn
用户组:新增,修改,删除
groupadd——create a new group
-g 指定GID
-r 新建_系统_用户组。
groupadd group1
grep group1 /etc/group etc/gshadow
groupmod——modify a group definition on the system
-g GID
-n name
groupmod -g 201 -n mygroup group1
grep mygroup /etc/group /etc/gshadow
groupdel——delete a group
groupdel mygroup
groupdel pzdn #如果有用户的话,则删除不了。
3. SU
su
su——change user id or become super user
su #切换到root,以non-login shell方式登录
id #目录为pzdn
env | grep pzdn
exit
su - #以login shell 方式切换为root
env | grep root
exit
su -l pzdn #切换到pzdn
su - -c “head -n 3 /etc/shadow”
4. 其他管理工具
4.1 密码管理
chage——change user password expiry information,change aging,维护一个用户账户的秘密过期限制。
选项:
- -d LAST_DAY,set date of last password change to LAST_DAY
- -E EXPIRE_DATE,set account expiration date to EXPIRE_DATE
- -I DAY,密码过期后,账户被锁定前,不活动的天数。
- -l 显示账户的过期密码过期信息
chage -l root #列出root的密码过期信息
chage -l pzdn #列出pzdn的密码过期信息
chage -d 0 pzdn # 下次登录必须修改密码
4.2 finger指纹
finger ——user information lookup program
$ finger root
$ finger -l #显示当前登录的用户信息,多行显示
$ finger -s #显示当前登录的用户信息,单行显示
$ finger pzdn #查询指定用户的信息
Login: pzdn Name: DotnetCore
Directory: /home/pzdn Shell: /bin/bash
On since Sat Nov 5 04:23 (PDT) on pts/3 from 192.168.2.105
7 seconds idle
No mail.
No Plan.