一 基于账号的访问控制:
账户类别:用户账号、组账号
识别方式:UID、GID
用户账号分类 超级用户:0 ; 系统用户:UID范围1~499 ; 普通用户UID范围500~60000 ;
组账号:用来区分权限,不用于登陆
基本组(私有组)
附加组(公共组)
二 本地账号的数据文件
/etc/passwd 、/etc/shadow
/etc/group 、/etc/gshadow
1、用户账号文件 /etc/passwd,保存用户的基本信息,以:分割为7个字段
字段1:用户账号的名称
字段2:密码字串或占位符
字段3:用户的UID
字段4:用户的GID
字段5:用户的全名
字段6:用户的宿主目录(相当于用户家目录)
字段7:登陆shell程序的路径
2、用户账号密码文件 /etc/shadow 共9个字段 (不太需要记住,第二个字段为单向密码加密字段,好破解)
3、id 用户名
4、useradd -e 用户名
可指定账号失效时间,平时可用于临时借出账号的作用
5、useradd -g 用户组 用户名 指定创建用户的基本组
useradd -G 用户组 用户名 指定创建用户的附加组
6、useradd -M 用户名 不为用户创建宿主目录,无法登陆系统,可以访问服务器验证一下,但是无法登陆系统(ftp就是个例子)
7、useradd -s 用户登录的shell 用户名
注意:/sbin/nologin下也是一个shell,这个shell下的账号禁止登陆系统。
8、passwd -l 用户名 锁定用户
passwd -S 用户名 查看用户是否锁定
passwd -u 用户名 给用户解锁
passwd -d 用户名 清楚用户密码,可让用户无密码登陆
9、非交互式设置密码
echo 密码 | passwd --stdin 用户名
三 创建用户的配置文件
1、 默认配置文件,useradd行为设置 /etc/default/useradd
2、/etc/skel 里面的隐藏文件,它是一个模板目录,这三个文件被称作一个用户的环境
~/.bash_profile:每次登陆执行,可用source命令刷新该命令。
~/.bashrc:每次进入新的bash环境时执行,可更改别名,重新打开终端即可刷新。
~/.bash_logout:每次退出登录时执行,
每创建一个目录,系统会mkdir /home/创建那个用户的文件夹;然后cp /etc/skel/* 到新创建的用户目录中
3、全局配置文件 : /etc/bashrc 、 /etc/profile
4、当我们想创建众多用户,每个用中都想添加一个相同文件时候,可以先将该文件复制到模板目录中(/etc/skel),往后再新建用户,它的家目录都会多出该文件。
四 登陆定义文件 /etc/login.defs
对新建账号起作用
五 问:当执行 useradd 用户名,系统都更改了哪些文件?
答:1、根据/etc/skel模板,在/home下新建一个用户文件
2、在/etc/passwd、/stc/shadow、/etc/group、/etc/gshadow分别增加一行
3、 /var/spool/mail会touch一个邮件文件
六 usermod 修改用户
usermod -l 更改用户登录的新名称 原名称
七 chage密码有效控制
userdel [-r] 删除用户 : -r选项,宿主目录/用户邮件一并删除